Košík je prázdný

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í.