./deploy

Kürzlich habe ich über die „Definition of Done“ geschrieben. Es ist natürlich schön, wenn eine Aufgabe von „Doing“ zu „Done“ wandert. Aber was dann? In meinem Beispiel ist das Ergebnis oft ein Text, so wie dieser hier. Wie kommt der aber nun online?

Ich bin ein WordPresser der ersten Generation und früher war mein erster Weg zu WordPress. Du willst einen Blog? Ich suche Dir ein Template aus, passe es an und Du kannst es mit WordPress recht komfortabel füllen. Mit der Zeit kommen verschiedene Plug-ins hinzu und jeden Tag gibt es mehrere Updates. Oft kam es da zu Kompatibilitätsproblemen und der Blog funktionierte nicht mehr. Ich habe so viel Zeit damit verbracht vernünftige Back-up-Lösungen zu finden, da rückte die Kreativität komplett in den Hintergrund.

Besser und schneller bloggen mit Kirby, Grav, Jeckyll und Hugo

Vor etwa sieben Jahren bin ich dann auf statische Website-Generatoren umgestiegen. Die Idee: Die Website braucht keine Datenbank (ein weiteres Problem: angenommen, Deine Website raucht ab, kannst Du Deine alte Datenbank wieder anschließen und wie lange dauert das alles?). Stattdessen liefert der Generator nur HTML5-Dateien in einem Verzeichnis aus, dass Du dann auf den Server legst. Der große Vorteil ist, dass Du Deine Website jederzeit wiederherstellen kannst, sollte es mal Probleme geben oder Du zu einem anderen Provider umziehst.

Über die Jahre habe ich verschiedene statische Website-Generatoren ausprobiert (Kirby, Grav und Jeckyll). Letztlich bin ich bei Hugo hängengeblieben. Hugo ist eher etwas für technisch interessierte und versierte Nutzer. Du musst es erst auf Deinem Rechner oder Server installieren und arbeitest dann nur noch auf der Shell. Das Schöne dabei ist, dass ich alle generierten Seiten offline testen kann, bevor ich sie auf meinen Server spiele.

Mein Hugo-Git-Workflow

Soweit so gut. Die nächste Aufgabe war meine Texte auf jedem Gerät schreiben und für den Upload vorbereiten zu können. So kam für mich Git ins Spiel. Ich schiebe und ziehe meine Hugo-Website per Git auf Bitbucket. Meine Inhalte liegen also auf meinen Geräten und in der Cloud. Sollte mein Raspberry oder auch der Webserver abrauchen, dann ist das kein Problem. Für einige meiner Website nutze ich Netlify zum Ausliefern (anderes Thema), aber für die Veröffentlichung von reinergaertner.de gehe ich einen direkteren Weg über rsync.

/images/hugo.jpg

Wie funktioniert das also nun? Ich starte meinen Computer schreibe meinen Text per Markdown, füge minimale Beschreibungen hinzu und speichere den Text (also die Webseite) auf meinen Computer. Dann prüfe ich, ob später dann auch alles angezeigt wird. Wenn alles passt, dann tippe ich „./deploy“ ein. Hugo generiert die neue Website und lädt den Inhalt per rsync automatisch auf ein vordefiniertes Verzeichnis im Web hoch (bei mir auf einen Uberspace-Server). Wie das Synchronisieren geht, könnt Ihr auf der Hugo-Site nachvollziehen.

Unkompliziert, schnell und zukunftssicher - worauf wartest Du?

Zugegeben, es hört sich recht kompliziert an. Aber einmal aufgesetzt, funktioniert es wunderbar geschmeidig und rasant. Und das Beste: Ich muss mir nie mehr Sorgen machen, dass ich in große Probleme gerate, sollte meine Website gehackt werden. Updates brauche ich nicht.

Und noch besser: Da meine Texte in lesbaren einfachen Text-Dateien abgespeichert sind, werden die auch in vielen Jahren noch da sein. Wie kommst Du an Deine Texte ran, wenn sich Dein WordPress aufhängt? Ich kann nur empfehlen, den einfachen Weg zu gehen, auch wenn der Start etwas komplizierter ist. Also: ./deploy!