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:

  1. megszületik az új bejegyzés
  2. a master branch-be push-oljuk
  3. a szerverünkre beesik egy kérés a Githubtól, jelezve, hogy valami történt
  4. lehúzzuk a változtatásokat
  5. automatikusan újra legeneráljuk az oldalt
  6. 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. :)