Auf der Suche nach Möglichkeiten, meine Seite noch etwas zu verschnellern, habe ich mich dazu entschlossen von einer PHP basierten Software weg zu gehen. Kirby ist zwar ganz cool, aber ich brauche einfach so vieles davon gar nicht, außerdem muss man es warten und sicherstellen, dass Sicherheitslücken ausgenutzt werden.

Also, was ist schneller als ein dynamisches CMS? Eine statische Seite!

Ich habe mir also einige Generatoren für Static Sites angesehen und bin am Ende bei Hexo angelangt. Was mir besonders gefallen hat: es ist in Javascript geschrieben und verwendet Nodejs. Heißt, dass alle Abhängigkeiten in einem Ordner bei der Seite liegen können, ohne nun wieder irgendwelche globalen Scripte / Programme zu installieren. Außerdem kenne ich mich mit Javascript besser aus als mit Ruby wie z.B. bei Jekyll.

Es ist zwar nicht so “bekannt” wie man andere Tools, aber dennoch hat es eine ausreichend große Community, um eine einfache Dokumentation zu haben, mit der ich binnen weniger Stunden meine alte Seite so umbauen konnte, dass sie mit Hexo funktioniert.

Neben der Generierung der statischen Seiten inkl. Pagination & Co, kümmert es sich auch direkt um meine CSS Dateien (Minify) und dank einer Vielzahl an Plugins, könnte es noch sehr viel mehr. Die Hauptsache für mich war schon mal, dass es Markdown zu HTML konvertiert.

Zusätzlich gab es paar kleinere optische Anpassungen hier und da.

Auf dem Server sind auch kleinere Dinge geschehen, die die Performance hoffentlich noch etwas verbessern. Sofern man bei rein statischem Content überhaupt noch etwas verbessern kann. Darunter fällt die Aktivierung von GZIP für den gesamten Inhalt. Caching für CSS Files und paar “Finetuning” Optionen, die Nginx dazu bringen, Daten direkt auszuliefern und nicht erst in den Buffer zu schreiben. Bei HTML Dateien und gerade bei Nginx wird dies wohl völlig egal sein.

Für Letsencrypt verwende ich derweil acme.sh, was mir einfach viel Arbeit abnimmt und den Prozess wesentlich vereinfacht. Die Überprüfung geschieht nun einfach über DNS und nicht mehr über ein Webroot, was ich erst manuell aktivieren muss und den Webserver x-mal neu starten muss.