Web server Caddy: statické weby snadno a rychle

Michal Halenka 13. 5. 2016

Vytvoření jednoduchého webu na vlastním stroji je stále ještě náročnější, než by si někteří představovali. Změnit se to snaží hned několik projektů. Jedním z nich je i webový server Caddy.

minulém článku byly představeny základní vlastnosti netradičního webového serveru Caddy. Ten se od ostatních odlišuje svým zaměřením na jednoduchou konfiguraci a snadné rozšíření. Jedním z těchto rozšíření je například git addon, díky kterému lze snadno Caddyho propojit s repozitářem, a s pomocí některého generátoru statických webů pak tvořit jednoduchý web za pár okamžiků.

CMS a ti druzí

Přestože je v dnešní době moderní používat pro správu webu content management systémy, ani staromódní způsob vytvoření obsahu na jiném stroji a jeho nakopírování na web server ještě neřekl své poslední slovo. V tomto případě se budeme věnovat právě druhému zmíněnému. Konkrétně se tedy pokusíme nastolit model, kdy obsah vytváříme i editujeme na lokálním stroji, a pak prostřednictvím verzovacího systému nahrajeme na správné místo.

Pro účely tohoto článku bude dále použit generátor statických webů Hugo, který generuje statické HTML soubory ze zdrojových dat ve značkovacím jazyce (např. Markdown). Pro reálné nasazení je samotná volba generátoru statických webů natolik nepodstatná, a instalace a používání generátoru Hugo je natolik triviální, že v tomto článku nebude zahrnuta.

Caddyfile

Konfiguraci základního zabezpečení jsme shrnuli v minulém článku. Na tomto základě by tedy konfigurace webu mohla vypadat nějak takto:

http://caddy.halenka.eu {
    redir https://caddy.halenka.eu/
}
https://caddy.halenka.eu {
    header / Strict-Transport-Security "max-age=1814400; includeSubDomains; preload"
    root ./blog/public/
} 

Git modul

Jak již bylo zmíněno, pro stahování dat využijeme git addon, který nasměrujeme na náš veřejný Git repozitář s obsahem webu. S příslušnou konfigurací pak vypadá takto:

http://caddy.halenka.eu {
    redir https://caddy.halenka.eu/
}
https://caddy.halenka.eu {
    header / Strict-Transport-Security "max-age=1814400; includeSubDomains; preload"
    root ./blog/public/
    git github.com/HalisCz/test-web {
        path ../
        branch master
        hook /webhook super-tajny-pristupovy-token
        then hugo --theme=base16
    }
    shutdown rm -r blog
} 

Kromě samotného zavolání modulu git, a předání cesty ke vzdálenému repozitáři, obsahuje konfigurace také cestu, do které bude repozitář naklonován. V tomto případě je klonován obsah repozitáře o úroveň výše, než je nastavený kořenový adresář webu. Díky tomu pak bude webový server zobrazovat HTML soubory z odpovídajícího adresáře. Dále je v konfiguraci nastavena volba větve repozitáře, webhook s přístupovým tokenem pro notifikaci o nových commitech ze vzdáleného repozitáře a volání příslušného příkazu pro vygenerování HTML stránek ze zdrojových dat. Na konec konfiguračního souboru byl doplněn příkaz pro smazání obsahu repozitáře při vypnutí webového serveru.

widgety

Posledním chybějícím střípkem konfigurace je pak nastavení Git repozitáře tak, aby při obdržení nových commitů notifikoval server na adrese https://caddy.halenka.eu/webhook s autorizačním tokenem  super-tajny-pristupovy-token.

Závěr

Caddy se snaží nechovat jen jako web server, ale i jako jednoduchá webová aplikace. Zatímco podobné chování by u jiných serverů vyžadovalo zapojení externích skriptů, Caddy přichází s modulem, díky kterému je zapotřebí jen konfigurace o desítce řádků. Ačkoliv je Caddy ještě velmi mladý, je zde vidět touha autorů po jednoduchosti, kterou se jejich výtvor rozhodně snaží naplnit, a bude přinejmenším zajímavé, kam dál se bude tento projekt ubírat.

Našli jste v článku chybu?
Vitalia.cz: Jak Ondra o astma přišel

Jak Ondra o astma přišel

Lupa.cz: Jak levné procesory změnily svět?

Jak levné procesory změnily svět?

Vitalia.cz: Voda z Vltavy před a po úpravě na pitnou

Voda z Vltavy před a po úpravě na pitnou

Podnikatel.cz: Insolvence LevneElektro.cz? Začíná boj o peníze

Insolvence LevneElektro.cz? Začíná boj o peníze

Podnikatel.cz: Byla finanční manažerka, teď cvičí jógu

Byla finanční manažerka, teď cvičí jógu

DigiZone.cz: Rapl: seriál, který vás smíří s ČT

Rapl: seriál, který vás smíří s ČT

120na80.cz: Hrbatá prsa aneb mýty o implantátech

Hrbatá prsa aneb mýty o implantátech

Podnikatel.cz: Babišovi se nedá věřit, stěžovali si hospodští

Babišovi se nedá věřit, stěžovali si hospodští

120na80.cz: 3 preventivní vyšetření na odhalení rakoviny

3 preventivní vyšetření na odhalení rakoviny

Vitalia.cz: Tohle jsou nejlepší česká piva podle odborníků

Tohle jsou nejlepší česká piva podle odborníků

Podnikatel.cz: Znáte už 5 novinek k #EET

Znáte už 5 novinek k #EET

Podnikatel.cz: Chystá se smršť legislativních novinek

Chystá se smršť legislativních novinek

Vitalia.cz: 5 důvodů, proč jet na výlov rybníka

5 důvodů, proč jet na výlov rybníka

Vitalia.cz: 5 pravidel proti infekci močových cest

5 pravidel proti infekci močových cest

Vitalia.cz: dTest odhalil ten nejlepší kečup

dTest odhalil ten nejlepší kečup

DigiZone.cz: Světový pohár v přímém přenosu na ČT

Světový pohár v přímém přenosu na ČT

DigiZone.cz: Funbox 4K v DVB-T2 má ostrý provoz

Funbox 4K v DVB-T2 má ostrý provoz

Podnikatel.cz: EET pro e-shopy? Postavené na hlavu

EET pro e-shopy? Postavené na hlavu

DigiZone.cz: DVB-T2 ověřeno: seznam TV zveřejněn

DVB-T2 ověřeno: seznam TV zveřejněn

Podnikatel.cz: Dva měsíce na EET. Budou stačit?

Dva měsíce na EET. Budou stačit?