Audit TODO 2026-05-25
Quelle: docs/AUDIT_2026-05-25.md
Status: Arbeitsliste fuer die Umsetzung. Authelia-2FA/OIDC bleibt bewusst spaet, weil die Ziel-Policy noch nicht final entschieden ist.
Leitplanken
- Keine Authelia-2FA-ACL-Aenderungen in den ersten Sprints.
- Keine Live-riskanten Bind-/Port-Aenderungen ohne vorher erfasste Host-Werte, insbesondere Tailscale-IP.
- Erst Inventar und Baseline, dann Aenderungen.
- Jede produktive Aenderung bekommt Validierung und Rollback-Hinweis.
Naechster Startpunkt 2026-05-26
Kontext bewusst gesichert, bevor weitere Live-Aenderungen passieren:
- USV-Entscheidung treffen: aktuell ist keine funktionierende USV-Abschaltung nachgewiesen.
- Borg-Passphrase-Offsite-Sicherung und USV-Entscheidung mit Operator treffen.
- Authelia 2FA/OIDC weiterhin nicht anfassen; das bleibt bewusst der letzte Block.
Sprint 0 - Inventar und Baseline
| Status |
Aufgabe |
Ergebnis |
| erledigt |
Hardware-Inventar ausfuellen |
CPU, RAM, Mainboard, BIOS, NIC, Controller, Disks, SMART und Capacity-Baseline erfasst; USV ist als nicht validiert dokumentiert |
| in Arbeit |
Netzwerk-Inventar ausfuellen |
Host-IP, Gateway, Tailscale-IP und AdGuard-Bind erfasst; Router-/VLAN-Details offen |
| erledigt (Baseline) |
Externe Abhaengigkeiten dokumentieren |
docs/EXTERNAL_DEPENDENCIES.md enthaelt bekannte Provider, Kritikalitaet, Ausfallplaene; Account-Recovery-Codes/Zahlungswege bleiben Off-Repo-Operatorcheck |
| erledigt (Baseline) |
Services-Recovery-Pfade beschreiben |
docs/SERVICES_RECOVERY.md enthaelt Gitea-/Komodo-/Secrets-Sonderpfade; Gitea-Bundle-/Mirror-Mechanik bleibt als Umsetzungsentscheidung offen |
| erledigt |
Baseline-Tag setzen |
audit-2026-05-25-baseline ist lokal und remote vorhanden |
| erledigt |
Policy-Check neu ausfuehren |
SEC001-Warnings aus altem Report sind nicht mehr aktuell |
Sprint 1 - Nicht-kontroverse Sicherheits- und Repo-Hygiene
| Status |
Aufgabe |
Ergebnis |
| offen |
Borg-Passphrase analog sichern |
Passphrase ist ohne Host/Vaultwarden wiederherstellbar |
| erledigt (repo) |
AdGuard Admin-Bind vorbereiten |
Tailscale-IP 100.80.98.33 erfasst, Compose-Soll geaendert |
| erledigt |
AdGuard Admin-Port auf Tailscale-IP binden |
Live validiert: ss -ltnp zeigt 100.80.98.33:8082, DNS auf Port 53 funktioniert, LAN-Zugriff auf 192.168.178.58:8082 schlaegt fehl |
| erledigt |
Alte Monitoring-Verzeichnisse entfernen |
ops/grafana-influxdb/ und ops/loki/ sind aus dem aktiven Repo entfernt; Rollback erfolgt ueber Git-Historie |
| erledigt |
Komodo/Gitea-Restdrift bereinigen |
alter Komodo-Stack grafana ist inert und ohne Repo-Pfad/Webhook; Gitea-Hook 35 und komodo-Self-Hook 11 sind inaktiv; aktive Gitea-Hooks haben keine Fehlstatus |
| erledigt |
Policy-Warnings triagieren |
Plex Host-Netz und digest-gepinnte mutable Tags sind dokumentierte Info-Ausnahmen; monitoring-influxdb3-core als Root-Ausnahme bleibt bewusst als Warning sichtbar |
Sprint 2 - Storage und Recovery verbindlich machen
| Status |
Aufgabe |
Ergebnis |
| offen |
docs/STORAGE_LAYOUT.draft.md finalisieren |
Datei wird als docs/STORAGE_LAYOUT.md Active gefuehrt |
| offen |
Disk- und Share-TBDs eintragen |
Modelle, Groessen, Seriennummern, Filesysteme und Cache-Settings sind dokumentiert |
| erledigt (Skript) |
Gitea-Repo-Mirror-Mechanik definieren |
ops/borg-ui/scripts/gitea-bundle-mirror.sh erzeugt verifizierte Bundles unter /mnt/user/backups/git-bundles/gitea; Host-Schedule/Trockenlauf bleibt offen |
| offen |
Komodo-Bootstrap-Pfad beschreiben |
Kaltstart ohne laufendes Komodo ist dokumentiert |
| offen |
Immich-Restore-Test planen |
Testumfang, Datenpfade und Smoke-Test-Kriterium stehen fest |
Sprint 3 - Restore und Monitoring
| Status |
Aufgabe |
Ergebnis |
| offen |
Immich-Restore-Test implementieren |
Restore-Report landet unter /mnt/user/backups/restore-reports/ |
| offen |
Borg-Stale-Alert bauen |
Alarm feuert, wenn Borg-Archiv zu alt ist |
| offen |
TLS-Cert-Expiry-Alert bauen |
Alarm feuert bei Restlaufzeit unter Schwellwert |
| offen |
Container-Down-Alert bauen |
Unerwartet fehlende Container werden sichtbar |
| offen |
Family-View Dashboard definieren |
Uptime, Backup-Frische, Cert-Tage, Disk-Fuellung auf einer Seite |
Sprint 4 - Familien- und Betriebsdoku
| Status |
Aufgabe |
Ergebnis |
| offen |
Familien-Onboarding schreiben |
Nextcloud, Immich, Vaultwarden, 2FA-Verlust, Ausfallverhalten kurz erklaert |
| erledigt (Baseline) |
Capacity-/Lifecycle-Review erstellen |
Cache 6 %, Array/User-Shares 33 %, lokale Backups 2.2G; externe Backup-/Cold-Storage-Groessen bleiben offen |
| offen |
USV-Test oder USV-Entscheidung |
Power-Loss-Verhalten ist bekannt und dokumentiert |
Sprint 5 - Auth und Frontdoor, bewusst zuletzt
| Status |
Aufgabe |
Ergebnis |
| geparkt |
Authelia 2FA fuer Operator-UIs erweitern |
Erst nach finaler Policy-Entscheidung |
| geparkt |
Authelia OIDC fuer Apps pruefen |
Erst nach Familien-/Client-Auswirkungsanalyse |
| geparkt |
CrowdSec vor Traefik pruefen |
Nach stabiler Auth-/Monitoring-Basis |
Offene Host-Werte
Diese Werte muessen am Unraid-Host erhoben werden, bevor die entsprechenden Aenderungen sauber umgesetzt werden: