bc9ace315a
Findings aus dem Backup-/Restore-Audit 2026-06-18 umgesetzt: - Dump-Frische als Prometheus-Metrik (homelab_borg_dump_present / homelab_borg_dump_age_seconds) im Host-Exporter; schliesst den Blindfleck, dass Borg weiterlaeuft und stale Dumps archiviert, ohne Job-Fehler. - Neue Alerts HomelabBorgDumpMissing / HomelabBorgDumpStale (critical) plus ALERT_RULES.md. - Freshness-Gate (.sh + .ps1) und H:-Nearline-Pull um n8n.sqlite.dump und postgresql17-globals.sql ergaenzt. - Critical-Container-Watch um mail-archiver, n8n, homeassistant, smarthome-mosquitto erweitert. - BACKUP_SCOPE: /mnt/user/projekte und sonstige User-Shares ausserhalb App-Scope als bewusste offene Operator-Entscheidung dokumentiert; Hermes-data-Pfad als geparkt klargestellt. - MASTER_TODO: Nearline-Pull-Ueberwachung, Host-Pull-Nachzug und projekte-Scope-Entscheidung aufgenommen. Enthaelt ausserdem die zuvor vorbereiteten Scope-Erweiterungen (nextcloud html+data, n8n, filebrowser, influxdb3) und Scope-Drift-/ Retention-/Compact-/Check-Alerts. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
7.5 KiB
7.5 KiB
Master To-do - KalliLab CORE
Typ: Status/To-do · Stand: 2026-06-18 · Status: aktiv
Diese Liste ist die einzige Arbeitsliste fuer offene operative Punkte im
Homelab. Detailablaeufe stehen in den verlinkten Runbooks; Entscheidungen mit
Begruendung stehen in docs/DECISIONS.md; Belege fuer Erledigtes liegen in
Host-Reports (/mnt/user/backups/restore-reports/) und in der Git-Historie.
Status-Kategorien
- Aktiv - soll vorankommen; konkreter naechster Schritt steht.
- Operator-Entscheidung - wartet auf eine bewusste Entscheidung (ja/nein/Option).
- Geparkt - bewusst nicht jetzt, mit klarem Review-Trigger.
- Extern blockiert - wartet auf ein externes Ereignis oder eine Abhaengigkeit.
Aktiv
| Thema | Owner | Naechster konkreter Schritt | Quelle |
|---|---|---|---|
| Family-Onboarding erster Termin | Operator | Checkliste ist fertig (docs/FAMILY_ONBOARDING.md Abschnitt "Erster Onboarding-Termin"). Personen/Geraete festlegen, Reihenfolge Vaultwarden -> Immich -> Mealie pro Person abarbeiten |
docs/FAMILY_ONBOARDING.md |
| Restore-Test Unraid OS Flash (Stick-Boot) | Operator | Artefakt-Validierung 2026-06-05 erledigt (ops/maintenance/check-unraid-flash-backup.sh). Verbleibt: physischer Ersatzstick-Boot-Test, wenn ein Wegwerf-Stick bereitliegt |
ops/restore-tests/unraid-flash-runbook.md |
| Restore-Test Tailscale | Operator | State-Validierung + Reconnect nur auf Wegwerf-Host/VM, danach Geraet in Tailscale-Admin entfernen | ops/restore-tests/tailscale-runbook.md |
| Authelia OIDC fuer Apps | Operator/Codex | Live: Grafana + Mealie login-verifiziert; Paperless Secret verdrahtet und Service-Smoke am 2026-06-17 gruen, finaler Browser-Login mit Operator-Account offen. Immich + Nextcloud bewusst geparkt bis Family-Onboarding (siehe docs/DECISIONS.md 2026-06-06) |
docs/AUTHELIA_OIDC_PLAN.md |
| Home Assistant Tibber | Operator/Codex | Tibber per HA-UI-Config-Flow verbinden. Danach Energy-Dashboard um echte Kosten/Preisquelle ergaenzen; SolarEdge-PV, Netz und Speicher sind bereits konfiguriert und validiert | docs/runbooks/smart-home-bootstrap.md, docs/DECISIONS.md |
| Nearline-Pull Ueberwachung | Operator | H:-Pull war 2026-06-04 bis 2026-06-18 still gestoppt (kein Scheduled Task, kein Alarm). Am 2026-06-18 Lauf manuell nachgeholt + Task neu registriert. Naechster Schritt: externen Dead-Man's-Switch (Healthchecks.io-Ping am Ende von pull-critical-backups.ps1 und ops/borg-ui/scripts/pre-borg.sh), da Prometheus auf Unraid den baerchen-Pull nicht sieht |
ops/h-drive-nearline/README.md |
| Host-Pull nach Backup-Hardening | Operator | Auf /mnt/user/services/homelab-infra git pull, damit der aktualisierte export-prometheus-textfile.sh (Dump-Frische-Metriken) und die Freshness-Checks live greifen. Borg-UI-Live-Quellen auf neue Pfade (nextcloud/html, nextcloud/data, n8n, filebrowser, influxdb3) angleichen, bis homelab_borg_scope_missing_sources_total 0 ist |
services/posture-check/export-prometheus-textfile.sh, ops/borg-ui/all-important-sources.txt |
Operator-Entscheidung
Getroffene Entscheidungen mit Begruendung und Review-Trigger: docs/DECISIONS.md.
| Thema | Entscheidung noetig | Quelle |
|---|---|---|
/mnt/user/projekte Backup-Scope |
Filebrowser serviert projekte (und ganze documents/photos), aber nur App-Unterordner sind im Borg-Scope. Entscheiden: projekte als read-only Borg-UI-Mount + Quelllisten-Eintrag aufnehmen, oder bewusst als "nur lokal, nicht DR-relevant" bestaetigen |
ops/borg-ui/BACKUP_SCOPE.md Abschnitt "User-Daten-Shares ausserhalb des App-Scope" |
Geparkt
Bewusst nicht jetzt - Begruendungen in docs/DECISIONS.md, hier nur Thema und Trigger.
| Thema | Review-Trigger | Quelle |
|---|---|---|
| USV-Anschaffung | Q3-Review ab 2026-07-01, Hardware-Upgrade oder realer Stromausfall mit Datenfolge | docs/DECISIONS.md |
| Cold-Backup-Rotation (zweites Off-site-Ziel) | Hetzner-Probleme, stark wachsender Datenwert oder geaenderte Praeferenz | docs/DECISIONS.md |
| WAN-Ausfallschutz | haeufigere/laengere DSL-Ausfaelle oder kritischer Remote-Zugang | docs/NETWORK_INVENTORY.md |
Borg append-only auf Hetzner |
robusterer Hetzner-Mechanismus oder geaendertes Ransomware-Risikoprofil | docs/DECISIONS.md |
| CrowdSec vor Traefik | breitere Attack Surface als nur 443/tcp |
docs/DECISIONS.md |
| Nextcloud 2FA (Operator-TOTP) | OIDC-/SSO-Block erreicht die App-Login-Ebene | docs/DECISIONS.md |
| Hermes-Agent | Review-Deadline 2026-07-25; NAS-Stack bleibt deaktiviert | docs/SERVICE_CATALOG.md |
Dedizierter SMB-User veeam-baerchen |
nur wenn Unraid-User-/Share-Rechte bewusst angefasst werden | ops/windows-reinstall/docs/windows-image-backup-baseline.md |
| Filebrowser-Mount-Scope | naechster Hardening-Sprint | docs/SERVICE_CATALOG.md |
| Scrutiny Privileged-Ausnahme | nur mit klarer Begruendung aendern | docs/SERVICE_CATALOG.md |
| Immich Redis named volume | passende Wartung am Immich-Stack | docs/SERVICE_CATALOG.md |
| Komodo keys named volume | gemeinsames Wartungsfenster mit Operator | Live-Volume komodo_komodo_keys nach /mnt/user/appdata/komodo/keys migrieren, Compose anpassen, Periphery-Reconnect pruefen, dann in Borg-Scope aufnehmen |
| Storage-Wachstum (zweite NVMe, zweite Array-Disk, ZFS/BTRFS) | Trigger aus Capacity-Doku | docs/STORAGE_LAYOUT.md, docs/CAPACITY_AND_LIFECYCLE.md |
| Wiederkehrende Restore-Drills | laufend nach Kadenz, inkl. quartalsweisem Frische-Negativtest (run-restore-checks.sh freshness-negative) |
docs/RESTORE_MATRIX.md, ops/restore-tests/schedule.md |
| Doku-Quartals-Gaertnern (~15 min) | quartalsweise, erster Lauf mit Q3-Review ab 2026-07-01: Datiertes archivieren, Done-/Review-Logs kuerzen, tote Links pruefen | docs/REPO_MAP.md Doku-Regeln |
Extern blockiert
| Thema | Blockiert durch | Naechster Schritt sobald entblockt | Quelle |
|---|---|---|---|
| End-to-end-DR-Drill | Keine zweite Wegwerf-Hardware verfuegbar | Komplett-Bootstrap Phase 1-5 fahren | docs/DISASTER_RECOVERY.md |
Zuletzt erledigt (Kurzlog, max. 5 Eintraege)
- 2026-06-17 Offene TODOs gegen Live-Stand abgeglichen: Paperless-OIDC-Secret verdrahtet und Service-Smoke gruen; alter Tailscale-Docker-State nach
_archive/tailscale-removed-2026-06-06/verschoben; Tailnet-Restpunkt geschlossen. - 2026-06-17 Repo-Hygiene abgeschlossen: Glance-Widget-Tokens sind in Runtime gesetzt, Audit-PDF liegt extern unter
H:\kallilab-recovery\audits, Worktree clean. - 2026-06-17 Komodo/Gitea-Webhooks normalisiert: aktive Komodo-Hooks fuer
Micha/homelab-infranutzen Branch-Filtermaster; DB-Backup vor Host-Hotfix erstellt. Workflow-Regel nachgezogen. - 2026-06-18 Backup-Audit-Hardening: Dump-Frische-Metriken + Alerts
HomelabBorgDumpMissing/Stale, Freshness-Checks + Nearline-Pull umn8n/globalsergaenzt, 4 Tier-2-Container in Critical-Watch, Scope-Doku fuerprojekte/Hermes praezisiert. H:-Nearline (still seit 2026-06-04) nachgeholt + Task neu registriert. - 2026-06-13 Home Assistant MQTT-Integration produktiv verbunden: Config-Entry
smarthome-mosquittoistloaded, Mosquitto sieht den HA-Clienthomeassistant;check_configgruen.
Pflege-Regel
- Neue operative To-dos zuerst hier eintragen, immer mit Status-Kategorie.
- Erledigt: Beleg liegt im Host-Report bzw. Commit; hier nur ein Kurzlog-Eintrag (max. 3 Zeilen), aelteste Eintraege fliegen raus, sobald mehr als 5.
- Entscheidungen (auch "bewusst nein") gehoeren mit Begruendung nach
docs/DECISIONS.md, hier nur Thema + Trigger. - Keine vagen "pruefen"-Eintraege ohne Kommando oder Entscheidung.