Hugo muutosten julkaisu

Tämä on oma muistio siitä, miten kehityksessä oleva Hugo-projekti julkaistaan staattisena HTML-sivustona web-palvelimen käyttöön.

Julkaisun perusidea:

  1. Kirjaudu palvelimelle SSH:lla
  2. Generoi sivusto komennolla hugo
  3. Peilaa valmis kansio public/ nginxin näyttämään hakemistoon rsyncillä
  4. Poistu palvelimelta.

1) Sivuston generointi

cd ~/sites/diary
hugo

Mitä komento hugo tekee

Lukee projektin lähdetiedostot:

  • content/

  • layouts/

  • static/

  • asetustiedosto config.toml

  • Rakentaa niistä valmiit staattiset sivut kansioon: public/

Tämä vastaa täsmälleen sitä sisältöä, jonka selain lopulta näyttää.

2) Tiedostojen siirto tuotantohakemistoon

rsync -a --delete public/ /var/www/diary

Parametrien merkitys

  • rsync: ohjelma tiedostojen synkronointiin
  • -a (archive): kopioi:
    • alikansiot
    • aikaleimat
    • tiedostojen rakenteen
  • –delete tekee kohteesta tarkan peilin: jos tiedosto on poistettu projektista, se poistuu myös /var/www/diary

public/ → /var/www/diary siirtää juuri sen version, joka äsken generoitiin.

3) Palautus toiselle koneelle

Jos palvelin hajoaa, sama kehitysversio saadaan pystyyn näin:

git clone git@github.com:USERNAME/diary.git
cd diary
hugo
rsync -a --delete public/ /var/www/diary