Die Installation kann in einem beliebigen Verzeichnis erfolgen, wir nehmen ~/kred und installieren dort das aktuelle Hugo-Release und das kollegen-hugo/Repository, jeweils in ein Unterverzeichnis:
>$ mkdir ~/kred
>$ cd ~/kred
>$ mkdir hugo
```console
$ mkdir ~/kred
$ cd ~/kred
$ mkdir hugo
```
### Hugo-Release installieren
Das aktuelles hugo-Release für seine Zielplattform findet man auf gitHub: [https://github.com/gohugoio/hugo/releases/latest] (die extended Version wird nicht benötigt).
Wenn das aktuelle Hugo-Relase 0.78.1 ist, gilt für Linux:
archetypes config.toml data layouts LICENSE README.md resources static themes
```
Als Theme wird Ananke verwendet (wurde einmalig als Submodul eingebunden mit 'git submodule add https://github.com/budparr/gohugo-theme-ananke.git themes/ananke').
@ -54,7 +62,9 @@ Als Theme wird Ananke verwendet (wurde einmalig als Submodul eingebunden mit 'gi
Für die Post-Bearbeitung und ggf. auch zur Web-Entwicklung benötigt man noch den Content. Dieses Repository wird neben das Web-Repository installiert:
@ -62,52 +72,101 @@ Damit ist das Setup abgeschlossen.
Die Pflege des Servers erfolgt über ssh:
>$ ssh kollegen@despina.uberspace.de
>Password:
>...
>[kollegen@despina ~]$
```console
$ ssh kollegen@despina.uberspace.de
Password:
...
[kollegen@despina ~]$
```
### Subdomain
Die Seite soll unter der Subdomain `kollegenrunde.kollegen.uber.space` erreichbar sein (und nicht unter kollegen.uber.space/kollegenrunde). Der Grund liegt darin, dass Hugo problemlos generiert, wenn seine Base-URL kein Unterverzeichnis hat.
Einrichten der Subdomain:
```console
[kollegen@despina ~]$ uberspace web domain add kollegenrunde.kollegen.uber.space
```
Der Webcontent für diese Subdomain muss in einem gleichnamigen Verzeichnis neben dem html-Verzeichnis liegen. Dieses wird per Skript `generate.sh` angelegt. Zum einfacheren Zugriff wird einmalig das leere Verzeichnis angelegt und ein symbolischer Link im Home-Verzeichnis erstellt:
hugo v0.117.0-b2f0696cad918fb61420a6aff173eb36662b406e linux/amd64 BuildDate=2023-08-07T12:49:48Z VendorInfo=gohugoio
```
>**🛈 Hinweis**
>Hugo wird auf dem Server für die Ausführung der Git-Hooks benötigt.
>[kollegen@despina ~]$ ~/bin/hugo version
Hugo Static Site Generator v0.74.3-DA0437B4 linux/amd64 BuildDate: 2020-07-23T16:22:34Z
Das Skript **generate.sh** zum automatischen Generieren beim git-update muss im Verzeichnis 'kollegengen' liegen. Das Skript ist aus dem Verzeichnis 'admin' des Repositories kollegen-hugo zu kopieren.
Zur Erfolgskontrolle kann die Website nun generiert und gepublished werden:
>[kollegen@despina ~]$ ~/kollegengen/generate.sh
```console
[kollegen@despina ~]$ ~/kollegengen/generate.sh
```
Es sollte die Ausgabe "Ready, Blog created in /var/www/virtual/kollegen/html/kollegenrunde!" erfolgen.
### Git-Hook einrichten ###
Per **Gitea-Hook** wird das Skript generate.sh nun in das git-update-Event der beiden Repositories eingebunden. Damit wird die Website mit jeden Push neu erzeugt.
Per Hook-Skript `post-receive` wird das Skript `generate.sh` nun in das git-update-Event der beiden Repositories eingebunden. Damit wird die Website mit jeden Push neu erzeugt.
Das Hook Skript ist für beide Repositories das gleiche und wird im admin-Verzeichnis von kollegen-hugo gepfelgt. Die Aktivierung erfolgt auf dem Server.
> **🛈 Hinweis**
> Die Hooks sollte ebenfalls in der Gitea-Webkonsole von kollegen-posts[^posts-hooks] bzw. kollegen-hugo[^hugo-hooks] angezeigt werden, was aber nicht der Fall ist
Das Hook Skript ist für beide Repositories das gleiche und wird ebenfalls im admin-Verzeichnis von kollegen-hugo gepfelgt. Die Aktivierung kann entweder mit der Gitea-Webkonsole oder auf dem Server erfolgen.
***Serverseitig*** installiert man das Script durch kopieren in die Hooks (darauf achten, dass die Skripte ausführbar sind - 0775):
Hinweis: Das Hook-Skript starten das generate.sh mit 'env -i' in einer neuen Umgebung, damit nicht GIT_DIR gesetzt ist (vom ausführenden git). Ansonsten scheitert der pull innerhalb der Skripts.
In der Web-Konsole von Gitea kann man nun sehen, dass die post-receive-Hooks aktiv sind (grüner Punkt), s.
(https://kollegen.uber.space/gitea/kollegenrunde/kollegen-hugo/settings/hooks/git) bzw. (https://kollegen.uber.space/gitea/kollegenrunde/kollegen-posts/settings/hooks/git).
In der Web-Konsole von Gitea sollte man nun sehen, dass die post-receive-Hooks aktiv sind (grüner Punkt), was aber leider nicht funktioniert :o(