Vorbereitung
Hugo Website erstellen
Mit nur wenigen Befehlen kann man eine Hugo Webseite erstellen, sofern man den Befehl Hugo bereits installiert hat
hugo new site quickstart
cd quickstart
git init
git submodule add https://github.com/theNewDynamic/gohugo-theme-ananke themes/ananke
echo "theme = 'ananke'" >> hugo.toml
Webseite testen
hugo server
Der interne Hugo Webserver wird gestartet und folgende Log Zeilen erscheinen
Start building sites …
hugo v0.111.3+extended linux/amd64 BuildDate=unknown
| EN
-------------------+------
Pages | 104
Paginator pages | 5
Non-page files | 2
Static files | 23
Processed images | 0
Aliases | 32
Sitemaps | 1
Cleaned | 0
Built in 62 ms
Watching for changes in /home/michael/Entwicklung/bakermanlp.de/{archetypes,assets,content,data,layouts,static,themes}
Watching for config changes in /home/michael/Entwicklung/bakermanlp.de/config.yml
Environment: "development"
Serving pages from memory
Running in Fast Render Mode. For full rebuilds on change: hugo server --disableFastRender
Web Server is available at http://localhost:1313/ (bind address 127.0.0.1)
Im Browser http://localhost:1313/ aufrufen und seine neue Seite geniesen :)
Webseite mit Git Hooks veröffentlichen
Die Datei .git/hooks/post-commit anlegen mit folgendem Inhalt
#!/bin/bash
HOST='FTBHOST
USER='FTBUSER
PASS='FTBPASSWORD
TARGETFOLDER='/public_html/bakermanlp.de'
SOURCEFOLDER='/home/michael/Entwicklung/bakermanlp.de/public'
cd $SOURCEFOLDER/.. && hugo
lftp -f "
open $HOST
user $USER $PASS
lcd $SOURCEFOLDER
mirror --reverse --delete --verbose --exclude=backup/ --exclude=.htaccess $SOURCEFOLDER $TARGETFOLDER
bye
"
Dieses Skript erzeugt die Webserver Dateien mit dem Befehl hugo und lädt diese anschliessend mit ftb zum Webserver hoch.
Da wir das Skript im .git/hooks Ordner angelegt haben und wollen, dass das Skript läuft, wenn wir einen "git commit" ausführen, müssen wir dem noch die Ausführungsrechte geben
chmod +x .git/hooks/post-commit
Jedes mal, wenn wir nun "git commit" ausführen, wird im Anschluss (post-commit) das Skript ausgeführt und automatisch der aktualisierte public Ordner auf euren Webspace per FTP hochgeladen.
Diese Methode kann für alle möglichen "Hochladeoptionen" angepasst werden.