Web Workflow 2026
Durch den voramschreitenden Abschied von Windows bei mir zu Hause stelle ich auch meinen Webworkflow auf Linux um. Insgesamt läuft die Erzeugung und auch das Debugging/die Build Umgebung viel schneller und deutlich stabiler.
Mein Workflow grob skizziert:
graph LR;
A(Hugo baut die Webseite) --> B(git add .) --> C(git commit -m Zeit) --> D(git push origin main) --SSH auf den Webserver--> E(git pull)
Hochladen
Für das Hochladen der Webseite habe ich in der Hugo Dateistruktur zwei git Repositories. Eines direkt im obersten Ordner für alle meine Rohdaten.
Und ein weiteres für den Workflow, das nur im public Unterordner von Hugo angelegt ist.
Das git Repository im public Ordner hat als remote das SSH Ziel meines GitHub Repositories. Dies fügt man dem Repository mit dem folgenden Befehl hinzu.
git remote add origin git@github.com:USER/Webseite.git
Github verwendet nach dem aktuellen Stand nicht einen master, sondern einen main Branch. Dazu finden sich auch Anleitungen - jedoch sollte das Skript damit kein Problem haben.
Zum Hochladen verwende ich das folgende Skript:
cd "$HOME/Dokumente/Webseite" || exit
echo -e "\e[34mWebseite bauen...\e[0m"
hugo --cleanDestinationDir --minify --gc
find . -type f -name "Thumbs.db" -delete
echo -e "\e[34mWebseite hochladen...\e[0m"
cd "$HOME/Dokumente/Webseite/public" || exit
echo -e "\e[34git add, commit und push...\e[0m"
Write-Host "" -ForegroundColor Blue
git add .
git commit -m "Webseite $(date +"%d.%m.%Y %H:%M:%S")"
git push origin main
echo -e "\e[34SSH und git pull...\e[0m"
ssh hosting@my.web.space "cd webseite/web/ ; git pull origin main"
Herunterladen und Ausrollen
Der Trick besteht besteht in der Verwendung von git pull und dem git-credential manager. Beim Ersten Abruf meines GitHub Webseiten Repository wird mein GitHub Benutzername und der AuthToken gespeichert.
Der erste Schritt ist jedoch auf dem Webseiten Server mit einer chroot SSH Verbindung das git Repository einzurichten.
ssh hosting@my.web.space
# In der SSH Sitzung
cd webseite/web
# entfernen unerwünschter Dateien - bspw. index.htm, index.php
rm index.*
git config --global init.defaultBranch main
git init
git remote add https://github.com/USER/Webseite.git
git pull
# Hier benötigt man die Anmeldedaten (GitHub Benutzername und AuthToken - siehe weiter unten)
Der Auth Token besitzt nur die beiden Berechtigungen und ist unbegrenzt gültig:
- Read access to code (Contents)
- Read access to metadata (Metadata)
Die Einrichtung des AuthToken erfolgt nach der Anmeldung am GitHub Konto durch klicken auf das Benutzer Bild rechts oben und dann auf Settings. Dort dann unten links auf Developer Settings/Personal access tokens/Fine-grained tokens. Bei der Einrichtung muss man sich erneut durch MFA oder Passwort legitimieren.
Den Token erstellt man mit Generate new token:
