Monitoring
Eigene Prometheus-Metriken für Container, Node, Postgres, Redis — Forgejo-Issue als Notify bei Auffälligkeiten.
Ein gebündeltes Monitoring-Pattern, das aus mehreren Bausteinen besteht:
- cAdvisor misst Container-Metriken (CPU, RAM, Network, FS-IO) für alle ~100 Container.
- node-exporter misst die Host-Metriken des Mac Mini selbst (CPU, RAM, Disk-Usage, Load).
- postgres-exporter misst alle 17 Postgres-Datenbanken (Connections, Slow Queries, Bloat, Replication-Lag wo relevant).
- redis-exporter misst Redis (Memory, Hit-Rate, Queue-Längen).
- Prometheus scrapt diese Exporters, hält die Zeitreihen vor, rendert ad-hoc Graphen.
Was wir bewusst nicht haben: Datadog. Wir kaufen kein Observability-as-a-Service — die Metriken zu jedem Verein-Container sollen nicht in einem US-SaaS landen, dessen Geschäftsmodell darauf basiert, möglichst viele Spans aufzusaugen.
Notify-Kanal: Wenn ein Cron-Job ausfällt oder ein Container neu
startet, kommt die Notification als Forgejo-Issue im internen
Ops-Repo till/mana-ops (Phase 1 live seit 2026-05-20). Das ist
schlicht, durchsuchbar, und braucht keinen weiteren SaaS-Account.
Was Monitoring für den Verein verkörpert
- EigenbetriebEigene Infrastruktur, quelloffener Stack.
- OffenheitCode und Mittelverwendung öffentlich.
- LanglebigkeitBewährte Stacks, gute Doku.
Was offen ist
- Alerting-Regeln für Disk-Voll-Warnung und Container-OOM-Kill ausweiten.
- Long-Term-Storage (Thanos/Mimir) prüfen, sobald Retention > 30 Tage gewünscht.
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.
Monitoring ist ein Baustein der Vereins-Infrastruktur — eine von drei Schichten unter den Plattform-Services und Apps.