Watchtower
Auto-Updater für die fremden Container-Images — Postgres, Redis, MinIO bekommen Sicherheits-Updates über Nacht.
Postgres, Redis, MinIO, Stalwart, SearXNG — das sind fremde Images, die wir nicht selbst bauen. Watchtower checkt regelmäßig, ob es ein neues Image gibt, zieht es nachts, startet den Container neu.
Warum nur fremde Images? Vereins-eigene Images (mana-auth, mana-credits, alle Apps) sind explizit ausgeschlossen — sie werden über die eigene CI/CD deployed, nicht über Auto-Pull. Das verhindert, dass ein versehentlich gepushtes Image die ganze Plattform durchschüttelt.
Was Watchtower nicht macht:
- Major-Version-Upgrades. Wir folgen Tags wie
postgres:16-alpine, nichtpostgres:latest. Ein Postgres-17-Upgrade ist eine bewusste Entscheidung, kein nächtlicher Hintergrund-Job. - Rollbacks. Wenn ein Patch-Release ein Image kaputt macht, geht das manuell zurück. Das ist die Achtsamkeits-Kosten der Auto-Updates-Bequemlichkeit.
Cron-Notify: Wenn Watchtower beim Update auf einen Fehler stößt,
landet das als Forgejo-Issue über monitoring in till/mana-ops.
Konsumenten
Was Watchtower für den Verein verkörpert
- LanglebigkeitBewährte Stacks, gute Doku.
- EigenbetriebEigene Infrastruktur, quelloffener Stack.
Weitere Infrastruktur dieser Art
Selbst betriebener Dienst — Container auf Vereins-Hardware, statt SaaS-Vertrag.
- ForgejoEigenes Git-Hosting für alle Vereins-Repos — Quellcode, Issues, Pull-Requests.
- VerdaccioEigene npm-Registry für die @mana/*-Pakete der Plattform.
- StalwartEigener Mail-Server für transaktionale Emails und Vereins-Korrespondenz — SMTP, IMAP, JMAP.
- MinIOS3-kompatibler Object-Storage für alle Vereins-Dateien — Buckets pro App, Signed URLs mit Ablauf.
- PostgresEine Postgres-Datenbank pro Service — schema-isoliert, mit Drizzle-Migrationen, keine geteilten Tabellen.
- RedisCache, Session-Store und BullMQ-Worker-Queues — klein, schnell, dort wo Postgres zu schwerfällig wäre.
Watchtower ist ein Baustein der Vereins-Infrastruktur — eine von drei Schichten unter den Plattform-Services und Apps.