You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Chris 93a9e047b3 „README.md“ ändern 6 years ago
admin added post-receive hook script 6 years ago
data hugo without theme 6 years ago
layouts Fixed empty header_image param 6 years ago
resources/_gen/images/posts hugo without theme 6 years ago
static/images hugo without theme 6 years ago
themes added theme ananke 6 years ago
.gitignore ignoring resources/_gen 6 years ago
.gitmodules added theme ananke 6 years ago
LICENSE hugo without theme 6 years ago
README.md „README.md“ ändern 6 years ago
config.toml moved editorial stuff to post repro 6 years ago

README.md

kollegen-hugo

Die Kolleenrunden-Website besteht aus statischen Webseiten, die mittels dem Hugo-Framwork generiert werden. Es gibt zwei Repositories: kollegen-posts für die Inhalte der Blog-Beiträge und kollegen-hugo, was die Generierungsgrundlage beinhaltet. Um redaktionell mitzubloggen, benötigt man nur das Posts- Repository. Die Anleitung dazu findet man dort.

Dieses Repository wird für Website-Bearbeitung benötigt, was im Folgenden beschrieben ist.

Lokales Setup

Klappt auf Linux, Windows und Mac. Beschrieben ist es hier für Linux.

Voraussetzungen:

Verzeichnis anlegen

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

Hugo-Release installieren

Das aktuelles hugo-Release für seine Zielplattform findet man auf gitHub: [https://github.com/gohugoio/hugo/releases/latest].

Wenn das aktuelle Hugo-Relase 0.76.4 ist, gilt für Linux:

$ wget https://github.com/gohugoio/hugo/releases/download/v0.76.4/hugo_0.76.4_Linux-64bit.tar.gz
...
hugo_0.76.4_Linux-64bit.tar. 100%[============================================>] 13,31M 1,54MB/s in 25s
2020-10-13 21:09:43 (547 KB/s) - »hugo_0.76.4_Linux-64bit.tar.gz« gespeichert [13953675/13953675]

$ tar -xvf hugo_0.76.4_Linux-64bit.tar.gz --directory hugo
$ rm hugo_0.76.4_Linux-64bit.tar.gz

Nach erfolgreicher Installation sollte Hugo seine Version ausgeben können:

$ hugo/hugo version
Hugo Static Site Generator v0.76.4-50DFE40B linux/amd64 BuildDate: 2020-10-12T08:36:20Z

Web-Repository holen

Das Repository wird geklont und installiert sich im Unterverzeichnis:

$ git clone https://kollegen.uber.space/gitea/kollegenrunde/kollegen-hugo.git
$ ls kollegen-hugo
archetypes config.toml data layouts LICENSE README.md resources static themes

Als Theme wird Ananke verwendet. Dieses wurde einmalig als Submodul eingebunden:

$ git submodule add https://github.com/budparr/gohugo-theme-ananke.git themes/ananke

Content/Repository holen (Posts)

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:

$ git clone https://kollegen.uber.space/gitea/kollegenrunde/kollegen-posts.git

Damit ist das Setup abgeschlossen.

Setup des Servers auf uberspace

Die Pflege des Servers erfolgt über ssh:

$ ssh kollegen@despina.uberspace.de
Password:
...
[kollegen@despina ~]$

Gitea wird im im Lab beschrieben installiert: (https://lab.uberspace.de/guide_gitea.html). Einzige Abweichung ist die Root-Url in der app.ini:

[kollegen@despina ~]$ cat gitea/custom/conf/app.ini | grep ROOT_URL
ROOT_URL = https://%(DOMAIN)s/gitea/

Im Gitea ist die Organisation 'kollegenrunde' mit die beiden Repositories kollegen-hugo und kollegen-posts anzulegen.

Hugo wird ebenfalls wie im Lab beschrieben installiert: (https://lab.uberspace.de/guide_hugo.html). Es wird lediglich ~/bin/hugo 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.

[kollegen@despina ~]$ mkdir ~/kollegengen
[kollegen@despina ~]$ git clone https://kollegen.uber.space/gitea/kollegenrunde/kollegen-hugo.git ~/kollegengen/kollegen-hugo
[kollegen@despina ~]$ cp ~/kollegengen/kollegen-hugo/admin/generate.sh ~/kollegengen/

Zur Erfolgskontrolle kann die Website nun generiert und gepublished werden:

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

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:

[kollegen@despina ~]$ cp ~/kollegengen/kollegen-hugo/admin/post-receive ~/gitea-repositories/kollegenrunde/kollegen-hugo.git/hooks/post-receive.d/
[kollegen@despina ~]$ cp ~/kollegengen/kollegen-hugo/admin/post-receive ~/gitea-repositories/kollegenrunde/kollegen-posts.git/hooks/post-receive.d/

In der Web-Konsole von Gitea kann man nun sehen, dass die post-receive-Hooks aktiv sind s. (https://kollegen.uber.space/gitea/kollegenrunde/kollegen-hugo/settings/hooks/git) bzw. (https://kollegen.uber.space/gitea/kollegenrunde/kollegen-posts/settings/hooks/git).