Hogy is van ez az új Kir-Dev blog?
2014. január 6.
by tmichel
Már az első bejegyzésben is említettem, hogy az új blogunkat a Jekyll blog "motor" hatja.
A statikus oldalakat generáló eszközök a fénykorukat élik manapság. Ahogy nevük is utal rá, ezek az eszközök egy statikus HTML-ekből álló oldalt generálnak. Képesek sablonokat és bejegyzéseket is kezelni (ha nem tudnának, akkor nem sok értelmük lenne...). Elég ha a mi blogunk repoját nézzük. Pár HTML fájl és egy kitüntettet _posts
mappa. Ennyi az egész, a dolgok nehezét pedig rábízzuk pár automatizált eszközre.
Ötlettől a publikálásig
Ha belenéztek a README fájlunkba, akkor láthatjátok, hogy egy új bejegyzést nem sokkal bonyolultabb megírni és publikálni, mint egy klasszikus blog esetén.
A történet azután kezd érdekes lenni, hogy egy bejegyzés bekerül a master
branch-re. Léteznek úgynevezett hookok githez is. Miután a reponk a Githubon van, így nincs közvetlen hozzáférésünk a ezekhez, de szerencsére a Github ezt is elegánsan megoldotta.
Egy webhook beregisztrálásával minden push
-ról értesülünk. A webhooknak egy URL-t kell megadni, amit meg tud hívni (a részletek ez előző linken találhatóak). Itt jön képbe egy újabb kis eszköz. A gohub nevű mini webszerver, ami figyeli a beérkező hívásokat (nyugi, csak bizonyos IP-kről:) és egy shell parancsot futtat le. Esetünkben ez az oldal teljes újragenerálása, amit aztán Apache-on keresztül szolgálunk ki.
Lényegében tehát a következő történik:
- megszületik az új bejegyzés
- a
master
branch-be push-oljuk - a szerverünkre beesik egy kérés a Githubtól, jelezve, hogy valami történt
- lehúzzuk a változtatásokat
- automatikusan újra legeneráljuk az oldalt
- profit
De mégis miért jó ez?
A statikus HTML-eknek több előnye is van. A kiszolgálásuk minimális erőforrást igényel és egy Apache-ot beállítani sem túl bonyolult. Nem kell adatbázisokkal és biztonsági mentésekkel bajlódni. Az utóbbiról a git és a Github gondoskodik számunkra. Ezen kívül a blogmotor frissítésével sem kell bajlódni. Nem kell HTTPS és a támadási felületet is minimalizáljuk.
Tagadhatatlan, hogy egy ilyen blog beállítása több kezdeti ráfordítást igényel, de hosszú távon sokkal kevesebb karbantartási munka van vele.
Az már csak hab a tortán, hogy az új bejegyzések átnézése és javítása sokkal könnyebbé vált. Az előző Wordpress nem biztosított semmilyen eszközt az együttműködésre a git pedig pont erre van. :)