# Webové stránky KITTV Stránky jsou postavené na generátoru [Zola](https://www.getzola.org/). ## Instalace generátoru Instalaci generátoru lze provést z oficiálních repozitářů systému, nebo manuální kompilací. Ke kompilaci je třeba mít připravený rust toolchain, respektive nainstalované `cargo`. ``` git clone https://github.com/getzola/zola cd zola cargo build --release cp target/release/zola /usr/local/bin/ ``` ## Vývoj a generování Pro testování a vývoji na lokálním web serveru stačí spustit `zola serve`. Ke stránkám pak lze přistupovat na adrese `http://127.0.0.1:1111/` nebo `http://localhost:1111/`. Zola sleduje změny a automaticky provádí regeneraci obsahu. Pro vygenerování statického obsahu (pro nasazení na web server) je třeba spustit `zola build`. Výsledný obsah je uložen do složky `public`. ## Deployment Z tohoto repozitáře (master branch) je nastaven automatický deployment na webserver. V tuto chvíli neprobíhá kontrola kódu a spoléhá se na to, že commitnutý kód je validní. Repozitář má nastaven *post-receive* hook: ```sh #!/bin/sh nohup ash -c ' \ eval "$(ssh-agent -s)" && \ ssh-add -t 60 ~/.ssh/id_repository && \ ssh gitea@it-new.pedf.cuni.cz "/home/gitea/deployment.sh" && \ trap "ssh-agent -k" EXIT \ ' > /dev/null 2>&1 & echo "Automatic deployment started." ``` Ten na serveru spouští skript `deployment.sh`: ```sh #!/bin/sh eval "$(ssh-agent -s)" && \ ssh-add -t 60 ~/.ssh/id_deploy && \ git clone gitea@git.microlab.space:kittv/web.git kittv-web && \ zola -r ~/kittv-web/ build && \ rsync -r ~/kittv-web/public/* /home/www/web-kittv/ && \ trap "ssh-agent -k" EXIT date >> ~/deployment_log.txt rm -rf ~/kittv-web ``` Přístup do repozitáře je ověřován pomocí tzv. *deploy keys*, tedy SSH klíčem. ## Dokumentace - [Zola](https://www.getzola.org/documentation/) (generátor) - [Tera](https://tera.netlify.app/docs/) (template engine) - [CommonMark](https://commonmark.org/help/) (markdown syntax) ### Odkazy na použité technologie - [Zola](https://github.com/getzola/zola/releases/) (releases in GitHub) - [Remix Icon](https://remixicon.com) - [Remix Icon](https://github.com/Remix-Design/RemixIcon) (GitHub)