11 KiB
11 KiB
Audit-Restliste 2026-05-25
Status: kompakte Restliste. Die erledigten Sprint-Tabellen und langen Audit-Snapshots wurden aus der Arbeitskopie entfernt; Detailhistorie liegt in Git.
Letzter Sync mit docs/MASTER_TODO.md: 2026-06-05. Offene Punkte sind deckungsgleich;
neue Restore-Runbook-Stubs (Unraid Flash / AdGuard / Tailscale / Redis 8) wurden
in docs/RESTORE_MATRIX.md ergaenzt.
Aktuell offene Punkte
| Prioritaet | Punkt | Naechster Schritt |
|---|---|---|
| P1 | DR-Workstation Bare-Metal-Kit: Borg-Client + Hetzner-Smoke abschliessen | Readiness-Check 2026-06-06: WSL2 Ubuntu 24.04 ist vorhanden, SSH/Git sind vorhanden, Gitea-SSH-Smoke aus WSL ist erfolgreich, ~/dr-smoke.sh wurde bereitgestellt. Verbleibend: Operator muss in Ubuntu per sudo apt install borgbackup openssh-client den Borg-Client installieren, den offline gesicherten Hetzner-DR-Key als Arbeitskopie nach ~/.ssh/dr-hetzner legen und den Borg-Smoke fahren. Beleg: docs/audit/dr-workstation-readiness-2026-06-06.md |
| P2 | Family-Onboarding praktisch starten | Fokus: Vaultwarden als Passwortbasis, Immich-Mobile-Backup auf jedem Handy, Mealie mit erstem Rezept/Einkaufsliste; Ablauf steht in docs/FAMILY_ONBOARDING.md |
Restore-Audit Backlog (Stand 2026-06-03)
Ergebnis des Restore-Skills-Audits (Session 2026-06-02/03). Die kritischen Bugfixes (Cron-OR-Semantik, ntfy-Race, Cleanup-Trap, Pfad-Inkonsistenz, Vaultwarden-Token, Paperless-Retry, Header-Validierung, Authelia-Test) sind erledigt und committed. Die folgenden Punkte sind bewusst offener Backlog:
| Prioritaet | Punkt | Status | Naechster Schritt |
|---|---|---|---|
| P1 | Nextcloud-Restore-Test | erledigt 2026-06-03 | Borg-Extract + pg_restore (126 Tabellen) + HTTP 200 + occ status maintenance:false. Quelle: hetzner_borg_appdata_critical, Archiv Taegliche-Sicherung-2026-06-03T04:30:41.432. Zwei Skript-Bugs im Zuge des Laufs gefixt (check_data_directory_permissions: false patchen, .ncdata-Marker anlegen). Report /mnt/user/backups/restore-reports/nextcloud-2026-06-03.md. |
| P1 | Shared PostgreSQL 18 Cluster Restore Drill | erledigt 2026-06-03 | Globals + 5 DBs (paperless 72t, mailarchiver 1t, authelia 25t, nextcloud 126t, mealie 66t), data_checksums=on, Report /mnt/user/backups/restore-reports/shared-pg-cluster-2026-06-03.md |
| P1 | Komodo-Mongo-Daten-Restore | erledigt 2026-06-03 | 86904 Dokumente erfolgreich restored, Report /mnt/user/backups/restore-reports/komodo-mongo-restore-2026-06-03.md. Nebenbefund: Dump von Mongo 8.0.23, Test auf 7.0.32 — Cross-Version-Warning, fuer Lesetest harmlos |
| P2 | Mailarchiver-Restore-Test | erledigt 2026-06-03 | Data-Protection-Keys + 645M pg_restore + HTTP 200. Report /mnt/user/backups/restore-reports/mailarchiver-2026-06-03.md |
| P2 | Mealie-Restore-Test | erledigt 2026-06-03 | Borg-Data + pg_restore + HTTP 200, 3 Rezepte. Report /mnt/user/backups/restore-reports/mealie-2026-06-03.md |
| P2 | Traefik-Restore-Test | erledigt 2026-06-03 | dynamic/ + letsencrypt/ aus Borg, File-Provider + Ping 200. CF-Token bewusst nicht im Smoke. Report /mnt/user/backups/restore-reports/traefik-2026-06-03.md |
| P3 | Negativ-Test fuer Frische-Check | offen | Einmal pro Quartal bewusst kaputten Dump einfuettern und pruefen ob homelab-alerts feuert |
| P3 | End-to-end-DR-Drill | offen | Komplett-Bootstrap Phase 1-5 auf einem Wegwerf-Host; realistisch nur mit zweiter Hardware |
Bewusst geparkt
| Punkt | Entscheidung |
|---|---|
| Authelia 2FA fuer Operator-UIs (Rest) | Tier-1-Operator-UIs sind 2026-06-03 auf two_factor gehoben (files, scrutiny, borg, code). Restliche Admin-UIs (monitoring, glances, glance, speedtest, paperless-gpt, pdf, mail, hermes, sp) bleiben bewusst auf one_factor, bis die finale Auth-Policy steht. |
| Authelia OIDC fuer Apps | Geparkt bis klare Familien-/SSO-Entscheidung |
| CrowdSec vor Traefik | Bewusst nicht umgesetzt: einzige WAN-Tuer ist 443/tcp, Operator-Pfad ist Tailscale, Authelia-regulation: deckt Auth-Brute-Force ab. Neu bewerten bei breiterer Attack Surface. |
| Nextcloud 2FA/Brute-Force-Haertung | UI-Schritt fuer Operator-Account (twofactor_totp aktivieren) bleibt offen. App-weite Familien-Policy gemeinsam mit OIDC entscheiden. |
| Hermes-Agent | NAS-Stack bleibt deaktiviert; Review-Deadline 2026-07-25 |
| USV | Anschaffung verschoben; Power-Loss-Risiko bewusst akzeptiert |
| Zweites Off-site-Ziel | Bewusst nicht umgesetzt; neu bewerten bei Hetzner-Problemen, stark wachsendem Datenwert oder geaenderter Betreiber-Praeferenz |
Borg append-only auf Hetzner |
Operator-Entscheidung 2026-06-01: nicht umgesetzt. Der forced-command-Test auf der Storage Box brach Key-Auth und wurde per Passwort-Recovery zurueckgesetzt; Nutzen steht fuer dieses Homelab nicht im Verhaeltnis zum Betriebsrisiko. |
Zuletzt geschlossen
- Nextcloud-Restore-Test 2026-06-03 erfolgreich (Tier-2 damit komplett belegt). Drei Laeufe noetig: Lauf 1 schlug an
chmod()der data-Dir auf shfs fehl (OC_Util.php:486), Lauf 2 an fehlender.ncdata-Marker-Datei, Lauf 3 sauber durch. Beide Bug-Fixes ins Skriptops/restore-tests/nextcloud-restore-test.shintegriert. Endresultat: HTTP 200 auf/status.php,occ statusok, 126 Tabellen in der DB. Source:hetzner_borg_appdata_critical, ArchivTaegliche-Sicherung-2026-06-03T04:30:41.432. Report unter/mnt/user/backups/restore-reports/nextcloud-2026-06-03.md. - Hetzner Storage Box DR-SSH-Key
dr-hetzner-2026-06-03(ed25519, Passphrase-frei) angelegt: Pubkey viainstall-ssh-keyauf der Storage Box autorisiert, passwortloser Login erfolgreich (Borg-Reposbackup,backup2,hetzner_borg_appdata,hetzner_borg_appdata_criticalsichtbar), Private-Key offline neben KOMODO_*-Notiz und GitHub-Deploy-Key abgelegt, Arbeitsplatz-Kopie geloescht. Damit ist Bare-Metal-Borg-Zugang von der DR-Workstation moeglich, sobald WSL2+Borg installiert sind. - Fix Common Problems Plugin (FCP) 2026-06-03 deinstalliert. Befund: drei
grep -R ... /usr/local/emhttp-Prozesse aus einem FCP-Daily-Scan hingen seit ~7 Tagen in einem Symlink-Loop (/usr/local/emhttp/mnt -> /mnt, gesamte Array). 3 Cores dauerhaft 100 %, IOWAIT bis 55 %, USB-Flash unter Dauer-IO. Plugin viaplugin removeentfernt, Cron + /tmp-Reste sauber, Load von 14.6 auf 1.08 gefallen. FCP wird bewusst nicht wieder installiert (Begruendung sieheHOMELAB_ARCHITECTURE_MASTER_V2.mdSektion 13). Bekannte Risiken decken Scrutiny, Monitoring, Posture-Check und Critical-Events-Watcher bereits ab. - GitHub-Mirror Read-Only Deploy-Key
DR Read-Only 2026-06-03(ed25519, Passphrase-frei) angelegt: GitHub Repo Settings -> Deploy Keys ohne Write-Access, Smokegit ls-remoteerfolgreich (HEADd947c7f= master), Private-Key offline neben der KOMODO_*-Notiz abgelegt, Arbeitsplatz-Kopie nach USB-Transfer geloescht. Damit ist der DR-Read-Pfad zum privaten Mirror ohne Operator-Browser-Login moeglich. - KOMODO_*-Notiz offline gesichert (Operator-Bestaetigung 2026-06-03). Quelle bleibt host-seitige
.envunter/mnt/user/services/stacks/komodo/.envbzw. die Drift-Recovery-Kopie unter/mnt/user/appdata/secrets/_komodo_stack_env_recovery_2026-05-04.env. Damit ist der Bare-Metal-Komodo-Bootstrap ohne Vaultwarden moeglich. Eintrag indocs/EXTERNAL_DEPENDENCIES.mdReviews und Pflichtbestandteil im DR-Workstation-Kit nachgezogen. - DR-Tabletop 2026-06-03 durchgelaufen, Findings in
docs/DR_DRILL_2026-06-03.md(23 Befunde: 1 CRITICAL, 11 HIGH, 8 MED, 3 LOW). Reine Doku-Fixes in DR.md (Phase 0 Mirror-Klarstellung, neue Phase 4 Stufe 0 Docker-Netze, LE-Staging-Hinweis, Komodo-Stolperfallen, App-DB-Verify in Phase 5) und inEXTERNAL_DEPENDENCIES.md(DR-Workstation-Kit, KOMODO_*-Notiz und GitHub-Read-PAT als offene Bootstrap-Bloecke) sind im selben Aenderungsblock erledigt. Operator-Aufgaben (Notiz/PAT/WSL-Setup) wandern als P1 in die offenen Punkte. - Authelia ACL:
borg.kaleschke.infoundcode.kaleschke.info2026-06-03 in dentwo_factor-Block der Repo-Baseline aufgenommen. Beide UIs haben effektiv Host-/Backup-Zugriff (Borg-Restore-Scope inkl./local/secrets, code-server mit Workspaces). Wirkung erst nach manuellem Merge in/mnt/user/appdata/authelia/config/configuration.yml,docker restart autheliaund Smoke-Test auf einer der vier 2FA-Domains;services/authelia-diff.shmussexit 0liefern. TOTP-Enrollment des Operator-Accounts ist Voraussetzung, sonst Login-Sperre. - Alt-Volumes nach Burn-in freigegeben und reversibel archiviert: Shared PG17, Mealie PG17, Nextcloud PG17 und Immich pgvecto.rs liegen seit 2026-06-02 unter
/mnt/user/appdata/_archive/pg18-immich-rollback-volumes-20260602; Manifest auf dem Host:/mnt/user/appdata/_archive/pg18-immich-rollback-volumes-20260602/MANIFEST.txt. Keine harte Loeschung, keine aktiven Container-Mounts auf die alten Pfade. - Externer Betreibercheck vorbereitet:
docs/EXTERNAL_OPERATOR_RUNBOOK.mdundops/maintenance/check-external-operator.sh; Live-Baseline am 2026-06-01: FRITZ!OS154.08.25, keine Public-AAAA-Records fuer*.kaleschke.info, Host ohne globale Provider-IPv6, WAN443/tcpoffen und80/tcp/222/tcpgeschlossen. - FRITZ!Box-Servicefenster UI-seitig abgeschlossen: FRITZ!Box-Dienste aus dem Internet sind aus (HTTPS auf FRITZ!Box-UI, FTP/FTPS auf Speichermedien), aktive WAN-Freigabe bleibt nur
443/tcp -> 192.168.178.58, keine aktive IPv6-Freigabe sichtbar, UPnP-Selbstfreigaben aus. - FRITZ!Box-Konfig-Backup exportiert und extern/off-system in Vaultwarden abgelegt:
Einstellungen_FRITZ.Box_7590_154.08.25_01.06.26_1318.export; Kennwort und Datei bleiben ausserhalb des Repos. - Hetzner-Account-Hygiene erledigt: externe Kontakt-/Rechnungs-Mail bestaetigt, Zahlung ok, 2FA mit Google Authenticator aktiv, Recovery Key offline ausgedruckt.
- Hetzner Storage Box geprueft:
storage-box-1,u565255.your-storagebox.de, SSH-Port23, SSH aktiv, SMB/WebDAV aus, 64,94 GB / 1 TB belegt; Borg-UI-Key und separater Maintenance-Key funktionieren wieder nach Passwort-Recovery. Borgappend-onlyist bewusst nicht umgesetzt. - Family-View Dashboard ist repo-seitig gebaut:
monitoring/grafana/dashboards/family-status.jsonzeigt Family-App-Uptime, Backup-Alter, TLS-Restlaufzeit, Critical-Container und Image-Drift. - Borg-Nachlauf nach dem 2026-05-31-Sprint ist belegt: Archiv
Taegliche-Sicherung-2026-06-01T04:30:26.913, 101669 Dateien,rc=0; Freshness-Check am 2026-06-01: Critical 0, Warnings 0. - H:/ Nearline-Pull am 2026-06-01 repariert und manuell validiert: kuratierte Borg-Dumps Exit 0, Gitea-Bundles Exit 1 (Robocopy-Erfolg mit Kopien), Report
nearline-pull-2026-06-01-082553.md. - Immich-, Paperless-, Gitea- und Vaultwarden-Restore-Pfade sind belegt.
- H:/ Nearline-Pull laeuft seit 2026-05-28 als Windows Scheduled Task.
- FRITZ!Box-Portfreigaben sind bereinigt: WAN-seitig bleibt
443/tcp. - InfluxDB 3 Core ist effektiv nur auf
127.0.0.1:8181gebunden. - Renovate ist produktiv, Major-Updates werden bewusst manuell entschieden.
- Policy-Check bleibt ohne Criticals; bekannte Root-Ausnahmen sind dokumentiert.