Files
homelab-infra/docs/MASTER_TODO.md
T
Micha bc9ace315a Backup-Audit-Hardening: Dump-Frische-Monitoring und Scope-Konsistenz
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>
2026-06-18 20:25:54 +02:00

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-infra nutzen Branch-Filter master; 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 um n8n/globals ergaenzt, 4 Tier-2-Container in Critical-Watch, Scope-Doku fuer projekte/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-mosquitto ist loaded, Mosquitto sieht den HA-Client homeassistant; check_config gruen.

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.