Kontakt →

Persönlichere Notizen: was ich beim Basteln an meiner Infra, beim Pflegen meiner Open-Source-Projekte und beim Aufspüren eines Bugs bis zum Schluss lerne.

Die eigene Infra im Blick behalten

Uptime Kuma und CrowdSec laufen auf meinem Homelab, seit ich aufgehört habe, einem SaaS-Dashboard zu vertrauen, um zu wissen, ob meine Dienste wirklich laufen. Der Unterschied ist nicht nur der Preis: Wenn ein Alarm ausgelöst wird, weiß ich genau, welcher Container, welcher Node, welches Log zu prüfen ist, weil ich jede Komponente selbst eingerichtet habe. Am Ende habe ich einen Fix für Uptime Kuma (ein überlaufender Statistik-Spalten-Bug) und für CrowdSec (eine fehlende Heartbeat-Metrik) eingereicht, zwei Kleinigkeiten, die mich nur störten, weil ich sie täglich benutze.

Ein Go-Kern, jede Plattform

FLACidal läuft auf dem Desktop (Wails, eine einzige Binary für Windows, macOS und Linux) und auf Mobilgeräten (Flutter, über FFI), mit derselben Geschäftslogik in Go im Zentrum. Die eigentliche Arbeit bestand nicht darin, diese Logik zweimal zu schreiben, sondern sie einmalig zu halten: ein einziges Go-Modul, kompiliert als Shared Library, aufgerufen von zwei völlig unterschiedlichen Frontends. Das erfordert eine strikte Schnittstelle zwischen beiden Welten, verhindert aber, dass zwei Implementierungen entstehen, die schon beim ersten einseitig behobenen Bug auseinanderdriften.

Software reparieren, die man wirklich nutzt

Jellyswarrm ist der Proxy, der meine zwei Jellyfin-Server zusammenspielen lässt, und ich habe am Ende drei PRs beigesteuert: Geräteabgleich, eine Umgehung der Authentifizierung, das Remapping virtueller Künstler-IDs. Für sich genommen nichts Weltbewegendes, aber jedes Mal derselbe Impuls: statt ein Issue zu öffnen und zu warten, den Code öffnen, genau verstehen, warum es an dieser Stelle bricht, und einen getesteten Fix einreichen. Die Werkzeuge, die man täglich benutzt, verdienen diese Aufmerksamkeit, sie sind nie wirklich fertig.