So lange ist es gar nicht her, dass ich von Joomla auf Ghost umgestiegen bin.

Doch mittlerweile entwickelt sich Ghost immer mehr in die falsche Richtung. Höhepunkt war nun das Upgrade auf Version 4, welches allen Nutzern eine Mitgliederverwaltung aufgezwungen hat. Die Reaktionen auf Github und im Forum waren entsprechend, da dieses neue Feature nicht von allen gewünscht ist und es sich nur durch Hacks abschalten lässt (und wer weiss, wie lange noch).

Die Reaktion des Ghost Teams war enttäuschend. Es gab durchweg nur dünnhäutige bis arrogante Antworten auf die berechtigte Forderung der Community, das neue Feature abschaltbar anzubieten. Na denn, goodbye Ghost!

Bleibt die Frage, was denn?

Ein richtiges Content Management System ist für diesen Blog eh überdimensioniert, ich brauche weder eine Datenbank, noch einen schicken Editor zum Schreiben von Artikeln. Da ich mit Markdown vertraut bin, fiel meine Wahl schliesslich auf Jekyll.

Mit diesem Projekt verwaltet man seine Artikel in einfachen Markdown-Dateien, die einen speziellen Header mit den Metadaten haben. Mehr brauche ich nicht. Es folgt ein Build Prozess, der daraus eine statische Website erzeugt, die man dann mit einem klassischen Webserver wie etwa Apache oder Nginx hostet. Für das Layout werden zig Themes angeboten, hier habe ich mich für Minimal Mistakes entschieden.

Für die Migration gab es schon einen Exporter, der aus der Ghost Datenbank die Markdown-Dateien erzeugt. Allerdings hat mich der Wechsel doch viel Zeit gekostet, weil sich mit den Jahren arg viel Müll angesammelt hatte. So gab es praktisch kein einheitliches Vorgehen um Bilder anzuzeigen, so dass ich jeden Artikel noch von Hand kontrollieren und anpassen musste wollte. Somit sehen die Beiträge nun einheitlicher aus.

Der Inhalt der Website wird in Git verwaltet, der o.a. Build-Prozess erfolgt automatisch mit dem Pushen neuer Versionen in Git. Neben dem schon angesprochenen Jekyll-Build, welches die statischen Dateien für die Website erzeugt, gibt es noch einen zweiten Build Schritt, der diese Dateien in ein Docker Image auf Basis von Nginx packt. Nach diesem voll automatisiertem Build muss ich nur noch das Docker Image austauschen.

Das Ganze mag keine Lösung für typische WordPress Anwender sein, für Leute mit Entwickler-Hintergrund ist dies aber eine gute Alternative. Bisher bin ich sehr zufrieden, die Antwortzeiten sind (erwartbar) fix und auf Mobile Devices sieht das Ganze besser aus als vorher mit Ghost.

Aktualisiert: