V dnešní době je automatizace nasazování webů klíčová pro efektivitu a spolehlivost vývojových procesů. V tomto článku se zaměříme na konfiguraci virtuálního privátního serveru (VPS) pro automatizované nasazování statických stránek vytvořených pomocí generátorů statických stránek jako jsou Hugo a Jekyll. K dosažení tohoto cíle využijeme Git hooks, což jsou skripty spouštěné Git repozitářem při různých událostech, jako je push nebo commit.
Předpoklady
Než začneme, ujistěte se, že máte:
- Přístup k VPS s Linuxem (např. Ubuntu).
- Nainstalovaný Git a generátor statických stránek (Hugo nebo Jekyll) na VPS.
- Git repozitář pro váš statický web, preferováně na GitHubu nebo GitLabu.
1. Konfigurace VPS
Nejprve se přihlašte na svůj VPS a vytvořte složku pro váš projekt, pokud již neexistuje. Tato složka bude sloužit jako lokální repozitář na vašem serveru.
mkdir -p /var/www/mujweb
cd /var/www/mujweb
git init --bare
2. Nastavení Git Hook
V repozitáři na vašem serveru přejděte do složky hooks
a vytvořte soubor post-receive
. Tento hook se spustí po každém úspěšném přijetí změn do repozitáře na serveru.
cd /var/www/mujweb/hooks
nano post-receive
Do souboru post-receive
vložte následující skript (pro Hugo nebo Jekyll podle vaší potřeby), který zajistí vygenerování statických stránek a jejich kopírování do veřejného adresáře webového serveru.
Pro Hugo:
#!/bin/bash
GIT_REPO=/var/www/mujweb
TMP_GIT_CLONE=/tmp/mujweb
PUBLIC_WWW=/var/www/HTML/mujweb
git clone $GIT_REPO $TMP_GIT_CLONE
cd $TMP_GIT_CLONE
hugo
rsync -av --delete public/ $PUBLIC_WWW
rm -rf $TMP_GIT_CLONE
Pro Jekyll:
#!/bin/bash
GIT_REPO=/var/www/mujweb
TMP_GIT_CLONE=/tmp/mujweb
PUBLIC_WWW=/var/www/html/mujweb
git clone $GIT_REPO $TMP_GIT_CLONE
cd $TMP_GIT_CLONE
jekyll build
rsync -av --delete _site/ $PUBLIC_WWW
rm -rf $TMP_GIT_CLONE
Nastavte skriptu spustitelná práva:
chmod +x post-receive
3. Konfigurace na straně klienta
Na vašem lokálním stroji přidejte vzdálený repozitář odkazující na VPS.
git remote add vps [uživatel]@[adresa-serveru]:/var/www/mujweb
Nyní, kdykoliv chcete nasadit změny na produkční server, stačí poslat změny (push) do vzdáleného repozitáře na vašem VPS.
git push vps master
Automatizace nasazování statických stránek pomocí Git hooks na VPS umožňuje vývojářům snadno a rychle publikovat změny bez nutnosti manuálního zásahu. S pomocí Hugo nebo Jekyll můžete generovat aktuální verze vašich stránek přímo na produkčním serveru, což zjednodušuje proces nasazování a udržuje váš web neustále aktuální.