Projekt

Obecné

Profil

Podání #10508

uzavřený

Sepsání specifik deploymentu pirátských webů

Přidáno uživatelem Filip Vařecha před asi 6 roky(ů). Aktualizováno před asi 5 roky(ů).

Stav:
Dokončen
Priorita:
Normální
Přiřazeno:
-
Kategorie:
-
Začátek:
18.04.2018
Uzavřít do:
29.04.2018
% Hotovo:

100%

Odhadovaná doba:
32.00hod

Popis

Při zakládání webu pro nově vzniklou pardubickou buňku jsme narazili na komplikaci v podobě toho, že nikde není sepsáno, jak přesně probíhá nasazování webu a jaká jsou omezení.

Víme, že weby jsou postaveny na Jekyllu, ale to je veskrze všechno. Bylo by vhodné k tomu sepsat nějakou dokumentaci, která by se jistě hodila nejen nám, ale i dalším buňkám, které budou web zakládat. Konkrétně by bylo vhodné zmínit minimálně následující věci:

  • Jak nasazení probíhá?
  • Jakým způsobem probíhá nastavení DNS a kdo to má na starost?
  • Jaký je cílový OS?
  • Jaká verze Jekyllu a Ruby je k dispozici?
  • Je možné přidávat do Gemfile další závislosti? Pokud ano, je zde nějaké omezení?
  • Je vůbec nutné používat celý Jekyll vzhledem k tomu, že ve výsledku servírujeme statický web??? Konkrétně pro nás by bylo skvělé mít možnost publikovat jen vybuilděný site, protože bychom s cílem jednoduššího vývoje rádi celý projekt lokálně provozovali na Dockeru, kde nás nelimituje druh OS atd.

Čím kompletnější dokumentace bude, tím samozřejmě lépe.

Díky!

Aktualizováno uživatelem Filip Vařecha před asi 6 roky(ů)

Ještě mě napadla další věc: existuje nějaká pirátská CDN, kam se dají publikovat statické assety (např. fotky k článkům)? Momentálně je to všechno v GITu, což mi přijde jako poměrně nešťástné řešení, které příliš době s narůstajícím počtem příspěvků neškáluje. Každý, kdo si repo clonuje, pak musí stahovat desítky MB dat... Rozhodně to neodpovídá GIT best practices :)

Aktualizováno uživatelem Martin Rejman před asi 6 roky(ů)

  • Stav změněn z Nový na V řešení (diskutuje se)

Obecně jsou různé možnosti podle toho, co komu vyhovuje. Např. něco beží jen přes proxy na GitHUB pages, něco je přímo u nás. V zásadě je možnost spravovat celý web samostatně, a pak TO zajišťuje jen zastřešení pod doménu Pirátů. Pokud se servíruje z našeho serveru, pak je potřeba se držet především bezpečnostních zásad (tedy např. nelze bez konzultace přidávat neověřené moduly, ... ).

Nastavení a žádosti o ně probíhají výhradně pomocí podání do Podatelny TO, tedy na Redmine - nehledě na to, kdo to následně realizuje.

Pokud chcete publikovat statický web, nahrajte do Gitu statický web, a pokud bude ověřitelné, že je to bezpečná instalace (např. verze JS knihoven ...), asi nebude problém to pustit tak. Vždy se ale lépe audituje zdroj, než statický výsledek s např. minifikovaným JS.

Ad CDN: o žádném centrálním zatím nevím. Jistě je to dobrá věc. I šablony webu by se měly nahrávat od někud společně, protože s více a více klony bude potíž udržet aktuální části webů, jako např. odkaz na "Připoj se", který se bude aktualizovat v nejbližší době.

Toliko můj názor, možná se vyjádří i ostatní.

Aktualizováno uživatelem Zdeněk Kubala před téměř 6 roky(ů)

Pokusim se odpoveded na nektere nezodpovezene technicke veci.
Filip Vařecha napsal:

  • Jakým způsobem probíhá nastavení DNS a kdo to má na starost? Jedna-li se o dom pirati.cz 2+ radu , tak TO.
  • Jaký je cílový OS? hostovane weby jsou hostovane na Debianu Jessie nebo Stretch(z hlavy si nejsem jist) a pres nginx
  • Jaká verze Jekyllu a Ruby je k dispozici? ruby v. 2.4.1 a s tim spojena verze jekyllu 3.4.2
  • Je možné přidávat do Gemfile další závislosti? Pokud ano, je zde nějaké omezení? viz popsane Martinem
  • Je vůbec nutné používat celý Jekyll vzhledem k tomu, že ve výsledku servírujeme statický web??? Konkrétně pro nás by bylo skvělé mít možnost publikovat jen vybuilděný site, protože bychom s cílem jednoduššího vývoje rádi celý projekt lokálně provozovali na Dockeru, kde nás nelimituje druh OS atd. Druhe casti s "site" a "docker" uplne nerozumim. Prosim vysvetleni. Hostuje se jen sestaveny web.

Čím kompletnější dokumentace bude, tím samozřejmě lépe.

Díky!

Aktualizováno uživatelem Filip Vařecha před téměř 6 roky(ů)

Zdenek Kubala napsal:

Pokusim se odpoveded na nektere nezodpovezene technicke veci.
Filip Vařecha napsal:

  • Jakým způsobem probíhá nastavení DNS a kdo to má na starost? Jedna-li se o dom pirati.cz 2+ radu , tak TO.
  • Jaký je cílový OS? hostovane weby jsou hostovane na Debianu Jessie nebo Stretch(z hlavy si nejsem jist) a pres nginx
  • Jaká verze Jekyllu a Ruby je k dispozici? ruby v. 2.4.1 a s tim spojena verze jekyllu 3.4.2
  • Je možné přidávat do Gemfile další závislosti? Pokud ano, je zde nějaké omezení? viz popsane Martinem
  • Je vůbec nutné používat celý Jekyll vzhledem k tomu, že ve výsledku servírujeme statický web??? Konkrétně pro nás by bylo skvělé mít možnost publikovat jen vybuilděný site, protože bychom s cílem jednoduššího vývoje rádi celý projekt lokálně provozovali na Dockeru, kde nás nelimituje druh OS atd. Druhe casti s "site" a "docker" uplne nerozumim. Prosim vysvetleni. Hostuje se jen sestaveny web.

Čím kompletnější dokumentace bude, tím samozřejmě lépe.

Díky!

Díky za opovědi. A teď co se Dockeru týče:

Docker je platforma pro bundlování aplikací do containerů. Výhodou Dockeru je, že daný container obsahuje image OS a vlastně celého prostředí, které aplikace vyžaduje pro spuštění. V našem případě to má ty výhody, že pro vygenerování výsledné statické podoby webu nepotřebujeme na konkrétním počítači mít danou verzi Linuxu atd., protože veškeré závislosti jsou součástí containeru. Vzhledem k tomu, že se ve výsledku hostuje sestavený web (jak sám píšeš), bylo by pro nás nejsnazší vám dodávat jen tu sestavenou podobu (klidně může zůstat v GITu v _site) bez toho, aby se to buildilo u vás. Tím nebudeme závislí na verzi Ruby/Jekyllu, kterou máte nainstalovanou na cílovém OS, můžeme klidně používat latest a jako bonus můžeme stejně pohodlně web buildit i z Windows (díky Dockeru, který běží na všech podstatných OS).

Samozřejmě bychom mohli buildit i u vás, ale to by předpokládalo, že na cílovem OS je Docker nainstalovaný, do čehož vás samozřejmě nechceme nutit. Právě proto bychom si to rádi vyřešili sami a vám dodali už jen hotový statický web.

https://www.docker.com/what-docker

Stačí to takhle?

Aktualizováno uživatelem Filip Vařecha před téměř 6 roky(ů)

Každopádně by bylo dobré veškeré zde zmíněné závěry někde publikovat veřejně, aby nemusely další místní sdružení psát dotazy na TO v případě, že budou chtít založit vlastní lokální web. Prostě sepsat dokumentaci, nebo alespoň FAQs. To bylo ostatně hlavním předmětem tohoto podání.

Aktualizováno uživatelem Zdeněk Kubala před téměř 6 roky(ů)

Filip Vařecha napsal:

Díky za opovědi. A teď co se Dockeru týče:

Docker je platforma pro bundlování aplikací do containerů. Výhodou Dockeru je, že daný container obsahuje image OS a vlastně celého prostředí, které aplikace vyžaduje pro spuštění. V našem případě to má ty výhody, že pro vygenerování výsledné statické podoby webu nepotřebujeme na konkrétním počítači mít danou verzi Linuxu atd., protože veškeré závislosti jsou součástí containeru. Vzhledem k tomu, že se ve výsledku hostuje sestavený web (jak sám píšeš), bylo by pro nás nejsnazší vám dodávat jen tu sestavenou podobu (klidně může zůstat v GITu v _site) bez toho, aby se to buildilo u vás. Tím nebudeme závislí na verzi Ruby/Jekyllu, kterou máte nainstalovanou na cílovém OS, můžeme klidně používat latest a jako bonus můžeme stejně pohodlně web buildit i z Windows (díky Dockeru, který běží na všech podstatných OS).

Samozřejmě bychom mohli buildit i u vás, ale to by předpokládalo, že na cílovem OS je Docker nainstalovaný, do čehož vás samozřejmě nechceme nutit. Právě proto bychom si to rádi vyřešili sami a vám dodali už jen hotový statický web.

https://www.docker.com/what-docker

Stačí to takhle?

Nejsem si jist, zda-li se chapeme stejne.
Verze ruby + jekyllu je v github repo v souboru dockeru, ne? Tzn. verze ruby+jekyllu je dana.

Pro kontrolu syntaxi a buildu je nastaven Travis job. Pouziti dockeru pro lokalni upravy nic nebrani a diky tomu, ze jsou zdrojaky na githubu lze snadno pracovat s kodem a muzeme vyuzivat GH propojeni s travisem.

Nevim, kde beres to, ze na cilovem stoji musi byt docker(jak jsem psal vyse).

EDIT: Pokud bys chtel kolaborovat, tak stejne musis mit nekde dockerfile a aktualni verzi webu(coz mi prijde jako duplikovani) a v pripade, ze nekdo nechce pouzivat docker, tak pri odebrani zdrojaku z GITHUB repa bude v riti.

Aktualizováno uživatelem Filip Vařecha před téměř 6 roky(ů)

Zdenek Kubala napsal:

Filip Vařecha napsal:

Díky za opovědi. A teď co se Dockeru týče:

Docker je platforma pro bundlování aplikací do containerů. Výhodou Dockeru je, že daný container obsahuje image OS a vlastně celého prostředí, které aplikace vyžaduje pro spuštění. V našem případě to má ty výhody, že pro vygenerování výsledné statické podoby webu nepotřebujeme na konkrétním počítači mít danou verzi Linuxu atd., protože veškeré závislosti jsou součástí containeru. Vzhledem k tomu, že se ve výsledku hostuje sestavený web (jak sám píšeš), bylo by pro nás nejsnazší vám dodávat jen tu sestavenou podobu (klidně může zůstat v GITu v _site) bez toho, aby se to buildilo u vás. Tím nebudeme závislí na verzi Ruby/Jekyllu, kterou máte nainstalovanou na cílovém OS, můžeme klidně používat latest a jako bonus můžeme stejně pohodlně web buildit i z Windows (díky Dockeru, který běží na všech podstatných OS).

Samozřejmě bychom mohli buildit i u vás, ale to by předpokládalo, že na cílovem OS je Docker nainstalovaný, do čehož vás samozřejmě nechceme nutit. Právě proto bychom si to rádi vyřešili sami a vám dodali už jen hotový statický web.

https://www.docker.com/what-docker

Stačí to takhle?

Nejsem si jist, zda-li se chapeme stejne.
Verze ruby + jekyllu je v github repo v souboru dockeru, ne? Tzn. verze ruby+jekyllu je dana.

Pro kontrolu syntaxi a buildu je nastaven Travis job. Pouziti dockeru pro lokalni upravy nic nebrani a diky tomu, ze jsou zdrojaky na githubu lze snadno pracovat s kodem a muzeme vyuzivat GH propojeni s travisem.

Nevim, kde beres to, ze na cilovem stoji musi byt docker(jak jsem psal vyse).

EDIT: Pokud bys chtel kolaborovat, tak stejne musis mit nekde dockerfile a aktualni verzi webu(coz mi prijde jako duplikovani) a v pripade, ze nekdo nechce pouzivat docker, tak pri odebrani zdrojaku z GITHUB repa bude v riti.

Tak zjevně se pořád nechápeme. Moje jediná snaha je: neřešit na straně serveru pirátské strany build webu (přepokládám, že tam pouštíte bundle exec jekyll build). To nám rozváže ruce, protože nebudeme závislí na verzích jekyllu a ruby, které vy tam máte. Jediné na co se ptám je to, jestli je pro vás OK jen vzít _site a nasadit to bez toho abyste to buildili. Travis a spol si pořeším jak budu potřebovat, klidně to můžu testovat v Dockeru, nebo bez něj, to už je šumák.

Aktualizováno uživatelem Filip Vařecha před téměř 6 roky(ů)

Já nechci odebírat zdrojáky z repa. Jen chci abyste místo buildu na straně pirátskýho webu prostě vzali co je v _site a hotovo :)

Aktualizováno uživatelem Filip Vařecha před téměř 6 roky(ů)

Případně, pokud je to moc složité u vás udělat, tak bych volil cestu si celý deployment řešit po svém přes GH pages a jen bych vás pak poprosil o nastavení proxy jak psal v prvním komentáři Martin Rejman.

Aktualizováno uživatelem Zdeněk Kubala před téměř 6 roky(ů)

Filip Vařecha napsal:

Já nechci odebírat zdrojáky z repa. Jen chci abyste místo buildu na straně pirátskýho webu prostě vzali co je v _site a hotovo :)

A ja pisu, udelej co potrebujes, po mergnuti se to zbuildi u nas a kdyz ne, tak pripadne pridame moduly nebo se najde jiny zpusob. Aktualne je ten repozitar prazdny. :)
Zatim tu resime neco co vlastne ani nevime jak vypada. :)
Je tohle schudne reseni?

Aktualizováno uživatelem Filip Vařecha před téměř 6 roky(ů)

Zdenek Kubala napsal:

Filip Vařecha napsal:

Já nechci odebírat zdrojáky z repa. Jen chci abyste místo buildu na straně pirátskýho webu prostě vzali co je v _site a hotovo :)

A ja pisu, udelej co potrebujes, po mergnuti se to zbuildi u nas a kdyz ne, tak pripadne pridame moduly nebo se najde jiny zpusob. Aktualne je ten repozitar prazdny. :)
Zatim tu resime neco co vlastne ani nevime jak vypada. :)
Je tohle schudne reseni?

Klidně to tak můžeme udělat, ale například už teď vím, že abych vyřešil autoresize obrázků, bude potřeba zvednout verzi Jekyllu. Jestli jste s tím OK tak opravdu řešíme virtuální problém :)

Aktualizováno uživatelem Zdeněk Kubala před téměř 6 roky(ů)

Filip Vařecha napsal:

Zdenek Kubala napsal:

Filip Vařecha napsal:

Já nechci odebírat zdrojáky z repa. Jen chci abyste místo buildu na straně pirátskýho webu prostě vzali co je v _site a hotovo :)

A ja pisu, udelej co potrebujes, po mergnuti se to zbuildi u nas a kdyz ne, tak pripadne pridame moduly nebo se najde jiny zpusob. Aktualne je ten repozitar prazdny. :)
Zatim tu resime neco co vlastne ani nevime jak vypada. :)
Je tohle schudne reseni?

Klidně to tak můžeme udělat, ale například už teď vím, že abych vyřešil autoresize obrázků, bude potřeba zvednout verzi Jekyllu. Jestli jste s tím OK tak opravdu řešíme virtuální problém :)
Super konecne neco konkretniho. :)
Co mas presne namysli s tim autoresize?

Aktualizováno uživatelem Filip Vařecha před téměř 6 roky(ů)

Zdenek Kubala napsal:

Filip Vařecha napsal:

Zdenek Kubala napsal:

Filip Vařecha napsal:

Já nechci odebírat zdrojáky z repa. Jen chci abyste místo buildu na straně pirátskýho webu prostě vzali co je v _site a hotovo :)

A ja pisu, udelej co potrebujes, po mergnuti se to zbuildi u nas a kdyz ne, tak pripadne pridame moduly nebo se najde jiny zpusob. Aktualne je ten repozitar prazdny. :)
Zatim tu resime neco co vlastne ani nevime jak vypada. :)
Je tohle schudne reseni?

Klidně to tak můžeme udělat, ale například už teď vím, že abych vyřešil autoresize obrázků, bude potřeba zvednout verzi Jekyllu. Jestli jste s tím OK tak opravdu řešíme virtuální problém :)
Super konecne neco konkretniho. :)
Co mas presne namysli s tim autoresize?

Mám na mysli to, aby lidi nemuseli nahrávat obrázky ořezaný podle toho jak chce web. Místo toho si to nahrajou jak uznaj za vhodný a o crop/resizing se postará Jekyll při buildu. Aby to šlo udělat na úrovni, chci s tím zároveň vyřešit cache busting a další věci co to teď nedělá (i když by mělo), prostě použít https://github.com/envygeeks/jekyll-assets a ten ve své aktuální verzi už neběží nad Jekyllem 3.4.x, ale potřebuje 3.5.x. Navíc, aby šlo používat resizy tak je samořejmě nutné mít i nainstalovaný ImageMagick, což by byla další závislost v cílovém OS, kterou byste museli splnit. A tam už se jedná o závislost nad rámec standardního Ruby, protože je to normální balíček co byste museli instalovat.

Aktualizováno uživatelem Martin Rejman před téměř 6 roky(ů)

Filipe, měl bys zájem se webům věnovat více ? Pokud najdeme ještě pár dalších lidí, budeme schopni sjednotit požadovaná řešení celorepublikově ... :-)

Aktualizováno uživatelem Filip Vařecha před téměř 6 roky(ů)

Martin Rejman napsal:

Filipe, měl bys zájem se webům věnovat více ? Pokud najdeme ještě pár dalších lidí, budeme schopni sjednotit požadovaná řešení celorepublikově ... :-)

Martine, nemám problém se tomu klidně pověnovat více, ale je samozřejmě otázka, co přesně by to znamenalo :) Pokud by šlo o to vytvořit nějakou up-to-date šablonu základního webu, který bude mít všechny podstatné funkce vyřešené tak, aby přidávání nových článků bylo co možná nejjednodušší, tak tomu jsem ochoten se pověnovat, protože to primárně byl můj záměr ve vztahu k pardubickému webu. Myslím, že jsem schopen to pročistit a udělat nějaký pirate-web-starter repository (klidně vč. nějakého Yeoman generátoru).

Jediné, co v tuhle chvíli vidím jako zásadní problém je absence CDNky, protože mít assety v GITu je fakt humáč. Ale to si žádá nějaké koncepčnější řešení...

Aktualizováno uživatelem Martin Rejman před téměř 6 roky(ů)

To by bylo fajn. Vytvořil jsem k tomu souhrnný úkol zde : https://redmine.pirati.cz/issues/10598 .

Udělal bych tam tedy "knihu přání potřeb a návrhů", najdeme další lidi ... a pak se to zrealizuje.

Můžeš tedy tam okomentovat, co myslíš, že je potřeba, případně jak to realizovat ?

Aktualizováno uživatelem Stanislav Štipl před téměř 6 roky(ů)

Jekyll 3.5 je zcela OK, např. MSK používá jekyll 3.7:
https://github.com/pirati-web/moravskoslezsky.pirati.cz

Instalovat nějaký ověřený Gem je teoreticky možné, stejně jako případná instalace distribučního balíčku, ovšem je lepší to předem konzultovat. Na serveru kde se to generuje je Debian Jessie a Ruby 2.4.1 z RVM.

Pokud bys Filipe byl ochoten se Jekyll webům věnovat, zvaž prosím, zda by mohlo být vhodným prvním krokem vytvoření vlastního gem-based theme pro oblastní weby:
https://jekyllrb.com/docs/themes/
Chystám se k tomu už dlouho, ale nedostal jsem se k tomu.

Aktualizováno uživatelem Filip Vařecha před téměř 6 roky(ů)

Stanislav Štipl napsal:

Jekyll 3.5 je zcela OK, např. MSK používá jekyll 3.7:
https://github.com/pirati-web/moravskoslezsky.pirati.cz

Instalovat nějaký ověřený Gem je teoreticky možné, stejně jako případná instalace distribučního balíčku, ovšem je lepší to předem konzultovat. Na serveru kde se to generuje je Debian Jessie a Ruby 2.4.1 z RVM.

Pokud bys Filipe byl ochoten se Jekyll webům věnovat, zvaž prosím, zda by mohlo být vhodným prvním krokem vytvoření vlastního gem-based theme pro oblastní weby:
https://jekyllrb.com/docs/themes/
Chystám se k tomu už dlouho, ale nedostal jsem se k tomu.

Zkusím se tomu během víkendu pověnovat.

Aktualizováno uživatelem Martin Rejman před téměř 6 roky(ů)

Variantou je poskytnou několik "build" prostředí - dle verze ruby, jekyllu a dalších .

Aktualizováno uživatelem Andrej Ramašeuski před téměř 6 roky(ů)

Zporovoznene docker build prostredi, Pro kazdy web se da nastavit jina verze jekyll, Jjakekoliv gemy a systemove nastroje, samostatny gem template a t.d.

Aktualizováno uživatelem Andrej Ramašeuski před téměř 6 roky(ů)

  • Odhadovaná doba nastaven na 32.00hod
  • % Hotovo změněn z 0 na 70

Aktualizováno uživatelem Martin Rejman před více než 5 roky(ů)

Asi již můžeme uzavřít, vše potřebné vyřešeno ?

Aktualizováno uživatelem Filip Vařecha před více než 5 roky(ů)

Řekl bych, že ano.

Aktualizováno uživatelem Martin Rejman před asi 5 roky(ů)

  • % Hotovo změněn z 70 na 100
  • Stav změněn z V řešení (diskutuje se) na Dokončen

Deployment byl přenesen na nový HW.

Také k dispozici: Atom PDF