Bis vor kurzem war mein Blog bei meinem Domain Registrar gehosted. Ich hatte mehrere Gründe dafür:

  • Es war einfach: Es gab einen Webspace mit FTP Zugang. Ich musste nur meine Files auf diesen Webspace schieben, und der Registrar hat mir die ganze Hosting-Magie abgenommen.
  • Es hat mir Sorgen abgenommen: Ich war ziemlich besorgt, ob ich meine eigenen hohen Datenschutz-Ansprüche umsetzen könnte. Also lieber out-sourcen.
  • Und schlussendlich musste ich mich nicht mit verschiedenen technischen Problemen herumschlagen: Verfügbarkeit, TLS Zertifikate und andere Dinge wurden für mich erledigt. Und wie ich mit meinem Blog begonnen habe, war das eine wirkliche Erleichterung für mich; ich wollte mich nicht damit herumschlagen.

Seit damals hat sich aber einiges verändert, und es war Zeit, meinen Blog tatsächlich selbst zu betreiben.

Deployment

Die ersten paar Deployments von meinem Blog habe ich noch per Hand durchgeführt. Das wurde mir aber schnell zu blöd, und ich wollte das automatisieren. ALso habe ich ein CI/CD System (damals Drone) aufgesetzt und eine Pipeline erzeugt, die mir meinen Blog automatisch deployed hat. Das war damals nicht allzu kompliziert - Drone hatte bereits ein Image, das ich einfach direkt nutzen konnte, und das hat auch gut funktioniert. Überraschenderweise ist es nicht schwer, etwas auf einen FTP Server zu schieben.

Mit der Zeit habe ich begonnen, Drone nicht zu mögen. Ich hatte sowieso nur zwei Use Cases dafür, und beide haben öfter nicht funktioniert als funktioniert, so dass ich am Ende doch immer manuell eingreifen musste. Mir ist klar dass das auf fehlerhafte Konfiguration zurückzuführen ist, aber Drone war mir nicht mehr zuverlässig genug.
Zusätzlich wurde Drone plötzlich von einer Firma gekauft, und Dinge wurden hinter einer Paywall versteckt. Das ist für mich ein No Go in open source Apps, also habe ich mich nach einer Alternative umgeschaut.

An dieser Stelle kommt Forgejo ins Spiel. Aus ähnlichen Gründen hatte ich bereits von Gitea auf Forgejo gewechselt, und kürzlich habe ich erstmals einen Forgejo Runner aufgesetzt. Mir ist bewusst dass der Runner noch nicht bereit für einen produktiven Einsatz ist, aber fürs Homelab geht er durchaus gut genug. Ich hatte bereits begonnen, den Runner zu mögen, und jetzt darf er auch meinen Blog deployen.
Zusätzlich ist der Runner weitgehend kompatibel mit Github Actions, wodurch eine wirklich große Anzahl an Tutorials und Blogs bereits existiert.

Schlussendlich war dann klar, dass Drone gehen muss und durch Forgejo Actions ersetzt wird. Der eine Use Case war schnell migriert, und auch der Blog wird inzwischen damit gebaut.

Datenschutz

Als ich mit meinem Blog begonnen habe, war Datenschutz ein wesentliches Ding für mich. Ich hatte die DSGVO im Kopf, und wollte generell keine Daten durch meinen Blog sammeln (abgesehen von Plausible).

Mir war damals nicht klar wie das gehen könnte. Mein Hoster gab mir eine simple Lösung dafür: Unterschreibe den Datenverarbeitungs-Vertrag, und wir machen alles für dich. So einfach war das.

Aber realistisch betrachtet benötigst du keinen Datenverarbeitungs-Vertrag, wenn du keine Daten verarbeitest. Wenn ich also die Access Logs von meinem Server ausschalte, habe ich kein Problem!

Notiz über Plausible: Hier sammle ich zwar Daten, aber in einem Datenschutz-freundlichem Weg. Ein User wird nicht mehr getrackt als notwendig, und das ist in meinem Kopf in Ordnung.

Hosting

nginx ist wirklich beeindruckend. Ich habe die Website konfiguriert, unattended-upgrades eingeschaltet, und damit bleibt eigentlich nicht viel zu tun. Einen Server bei Hetzner hatte ich bereits seit einiger Zeit, und jetzt lebt auf diesem Server eben auch mein Blog.

Uptime

Als Privatperson mit einem Homelab kann ich keine Verfügbarkeits-Zeiten garantieren. Ich dachte aber, dass die sehr wichtig sind. Entsprechend konnte ich das also nicht selbst übernehmen.

Über die Zeit habe ich dann festgestellt: Warum eigentlich? Ich spreche von einem persönlichen Blog, nicht von einer prozess-kritischen Website die hochverfügbar sein muss.

Zusätzlich habe ich seit einiger Zeit Uptime Kuma am Laufend und stelle fest, dass meine Uptimes garnicht so schlecht sind. Ich schaffe zwar keine vier Neuner, aber zwei Neuner (also 99% Uptime) sind durchaus realistisch.

TLS

TLS war lange Zeit eine Challenge für mich, weil ich mir alle drei Monate ein Wildcard TLS Zertifikat für meine Website klicken musste. Das wollte ich nicht noch einmal machen müssen.

Kürzlich habe ich aber acme.sh kennengelernt, inklusive der Möglichkeit, DNS Aliase zu nutzen. Dadurch habe ich jetzt ein brauchbares Konzept um auch weitere TLS Zertifikate auszustellen, und dieses Problem hat sich also auch gelöst.

Fazit: Erfahrung!

Mein Learning ist daher recht einfach: Starte mal klein, und nutze Angebote die zur Verfügung stehen. Mit der Zeit lernst du neue Dinge, und kannst Herausforderungen selbst meistern. Irgendwann kommt es dann dazu dass die Angebote die du genutzt hast dich nur noch frustrieren; dann ist die Zeit gekommen zu wechseln!