Wordpress, Ghost und jetzt Hugo - eine Reise durch die CMS

Wordpress, Ghost und jetzt Hugo - eine Reise durch die CMS
Page content

Am Anfang war WordPress

Zu meiner Anfangszeit habe ich Wordpress verwendet. Wordpress ist, wie ich finde, ein sehr solides und einfaches CMS, um eine Webseite oder Blog zu betreiben. Wenn man sich verschiedene Statistiken anschaut, dann hat Wordpress über die Zeit einen großen Marktanteil übernommen.

Laut Tooltester liegt der Marktanteil von Wordpress im Januar 2022 bei knapp 65 %.

Der Marktanteil der Top 10 CMS (Quelle: tooltester.com)

Der Marktanteil der Top 10 CMS (Quelle: tooltester.com)

Persönlich denke ich, dass vor allem die Plugins, Themes und die Erweiterungen einen großen Einfluss auf die Popularität haben. Zudem lässt sich Wordpress sehr einfach benutzen. Wer schonmal mit Drupal, Joomla oder Typo3 gearbeitet hat, kann das bestimmt bestätigen. Der zweite Faktor ist sicherlich, dass viele Hoster ein günstiges Wordpress-Hosting für wenige Euro im Monat anbieten. Diesen Blog habe ich auch so gestartet. Das Paket lag damals bei 3-4 €/Monat und es war alles drin:

  • Online-Speicherplatz
  • MySQL Datenbank
  • Domäne (URL)
  • E-Mail-Account mit eigener Domäne

Warum ich von dem gehosteten Wordpress-Paket weggeangen bin habe ich hier und hier relativ kurz beschrieben. Der Hauptgrund damals war vor allem die Einschränkungen, die ein Wordpress-Standardpaket mit sich bringt.

Wenn man nur eine einfache Webseite/Blog betreiben möchte, ist das vollkommen ausreichend. Will man etwas mehr, kostet jeder Kram extra oder geht nicht. Was mich persönlich gestört hat, war das Erstellen oder Anpassen eines eigenen Themes. Ich habe mir den Code mal angeschaut und auch ein paar kleinere Änderungen durchgeführt, aber gefühlt ist das Anpassen sehr aufwändig.

Dann kam Ghost

Durch einen Artikel von Troy Hunt wurde ich auf Ghost aufmerksam. In Summe macht Ghost einen soliden Eindruck. Da mir der Preis allerdings recht hoch erschien, habe ich mich für self-hosting entschieden. Ja, mir war bewusst, dass ich mich selbst um die Installation, Updates, Backups etc. kümmern muss.

In kurz: Was hat mir an Ghost gefallen?

  • Eine mächtige Ghost-CLI
  • Automatisches SSL (Let’s Encrypt)
  • Einfache Bedienung
  • Werkzeuge für den Import von Wordpress
  • Handlebars als Template-Engine

Handlebars ist einfach zu lernen und die Struktur der Dateien ist sehr einfach aufgebaut. Ich habe mich hier etwas heimischer gefühlt als bei Wordpress-Themes. Anfangs habe ich die Ghost-CLI auch als sehr großen Pluspunkt gesehen, da diese alle Aufgaben übernimmt.

Mit hilfe der CLI ist es möglich eine neue Seite anzulegen, upzudaten, auf Fehler zu prüfen, usw. Auch das automatische Einrichten eines reverse Proxy war sehr praktisch.

Leider kamen mit den Updates die Fehler. In der Dokumentation steht einfach nur “führe ghost update aus und der macht alles für dich” (sinngemäß 😉). Die Praxis sah anders aus: Fast jedes Update sorgte dafür, dass ich mehrere Stunden lang versuchen konnte, die Webseite wieder zum Laufen zu kriegen. Auch für Rollbacks brauchte ich teilweise 1-2 Stunden. Eine Lösung war sehr oft, eine spezifische Version mit dem --force-Parameter zu installieren und verschiedene Minor- und Bug-Versionen auszutesten, bis die Webseite wieder startet.

Nach dem 3. oder 4. Update war danach die Entscheidung: Nach einem Update fasse ich das erstmal nicht an. Normalerweise gehöre ich zu den Nutzern, die Updates zeitnah installieren. Wenn ich allerdings mit jedem Update mehrere Stunden verbringe, um es irgendwie zum Laufen zu kriegen, ist das nicht Sinn der Sache. Die Ghost-CLI nimmt mir an der Stelle leider auch keine Arbeit ab. Vielleicht habt ihr bessere Erfahrung gesammelt als ich.

Dann habe ich gesehen, dass es ein Docker-Image (aus der Community) gibt. Wenn ich ein Update machen will, konnte ich einfach die Versionsnummer vom Image ändern. Mit dem Image hatte ich keinerlei Schwierigkeiten und war sehr zufrieden. Da ich an der Webseite etwas ändern wollte und sie mir genauer angeschaut habe, habe ich gemerkt, dass das Docker-Image teilweise CDN-Daten von fremden Seiten einbindet. Aus diversen Gründen versuche ich immer alle Daten selbst bereitzustellen, sodass der Browser nicht auf unterschiedliche Domänen zugreifen muss.

Jetzt ist Hugo da

Hugo ist ein Werkzeug, um statische Webseiten zu erzeugen. Das bedeutet: Ich schreibe meine Artikel nun in Markdown, lasse Hugo mit einer Konfiguration über die Artikel laufen und erhalte am Ende eine statische Webseite. Diese HTML-Dateien muss ich nur auf einem Server bereitstellen und fertig bin ich. Alternativ gibt es Plattformen wie Github Pages oder Gitlab Pages , welche die statische Webseite bereitstellen.

Einige Sachen sind auf den ersten Blick einfacher geworden:

Die Artikel sind klassische Textdateien und ich habe ein Git-Repository angelegt, wo ich die Daten speichere. Das Git-Repository dient gewissermaßen als Backup und ich kann alle Dateien mit einem klassischen Texteditor bearbeiten. Auch ohne Internet (z.B. auf Reisen) ist es mir möglich Artikel zu schreiben. Bei Wordpress oder Ghost muss ich immer auf die Webseite zugreifen, mich anmelden, und im Browser meine Texte verfassen. Eine Alternative wäre, die Artikel lokal zu schreiben und online nur noch zu formatieren. Doch beides ist relativ aufwändig.

Das Wiederherstellen der Webseite ist ebenfalls einfacher geworden: Es reicht, wenn ich die Webseite erstelle, die Daten auf dem Server hochlade und den reverse Proxy einrichte. Vorher musste ich die Webseite installieren und die Datenbank in den ursprünglichen Zustand bringen.

Die relativ instabilen Updates fallen weg und die einzige involvierte Anwendung ist der Webserver.

Nichtsdestotrotz gibt es auch Nachteile:

Zum einen war die Migration von Ghost zu Hugo relativ aufwändig und ich muss mich in Zukunft selbst um die Aktualisierung der Webseite kümmern. Da vorher alles online war, reichte es den Artikel zu speichern und ein Veröffentlichungsdatum anzugeben. Da ich statische Webseiten ohne Programmlogik im Hintergrund habe, muss ich selbst die Daten erstellen und hochladen. Aber wozu gibt es denn Buildserver und Automatisierung?

Ausblick

In Summe ist es immer so, dass bei einem Wechsel der Software einige Funktionen wegfallen und neue hinzukommen. Ob das die richtige Entscheidung war, wird sich wahrscheinlich erst in einigen Monaten zeigen. Aktuell sehe ich viele Vorteile in der einfacheren Bearbeitung der Artikel. Das Automatisieren wird (hoffentlich) nicht zu aufwändig.

Was ich immer noch gerne hätte, wären Kommentare auf der Webseite. Ich mag es, verschiedene Aspekte zu diskutieren und durch Hinweise und neue Sichtweisen dazuzulernen. Hugo hat keine native Funktion für Kommentare, da es eine rein statische Webseite ist. Ich habe allerdings gesehen, dass es Programme gibt, um Kommentare auf statischen Websites einzubinden. Vermutlich muss ich mich in die Anwendungen einarbeiten und auch ein Konzept erarbeiten, wie ich mit Kommentaren in Zukunft umgehen möchte. Bei kleineren Webseiten ist es überschaubar, aber ab einer gewissen Größe kommen auch “schlechte” Kommentare (z.B. Spam…) und dann muss eine Moderation stattfinden, welche wiederum zusätzliche Zeit in Anspruch nimmt.

Zusammenfassend lässt wohl sagen, dass ich positive Erwartungen an die Umstellung habe und die Zeit wird zeigen, ob es richtig war. Da ich Lösungen mag, die einfach und stabil funktionieren, werde ich vorerst meine Freude mit Hugo haben. Vielleicht ist Hugo auch etwas für euch, probiert es gerne mal aus.


Bildnachweis: Pixabay.com