From 92562dfc9ce0e8391c57a9d5d6d4c0e464e1a09b Mon Sep 17 00:00:00 2001 From: Micha Date: Sun, 31 May 2026 22:53:10 +0200 Subject: [PATCH] Archive stale documentation --- CLAUDE.md | 7 +- README.md | 16 +++-- docs/AUDIT_2026-05-25_TODO.md | 4 +- docs/CAPACITY_AND_LIFECYCLE.md | 2 +- docs/FAMILY_VIEW_DASHBOARD.md | 2 +- docs/IMMICH_RESTORE_TEST.md | 2 +- docs/MIGRATION_LOG.md | 20 +++--- docs/OFFSITE_BACKUP_OPTIONS.md | 2 +- docs/README.md | 69 +++++++++++++++++++ docs/RENOVATE.md | 2 +- docs/REPO_MAP.md | 6 +- docs/RESTORE_DRILL_ROUTINE.md | 2 +- .../2026-05}/AI_HANDOFF_2026-05-06.md | 2 +- .../{ => archive/2026-05}/AUDIT_2026-05-23.md | 10 +-- .../2026-05}/AUDIT_2026-05-23_FINAL.md | 2 +- .../2026-05}/AUDIT_2026-05-23_LIVE.md | 2 +- .../{ => archive/2026-05}/AUDIT_2026-05-25.md | 10 +-- docs/{ => archive/2026-05}/AUDIT_REPORT.md | 0 .../CODEX_ENDSTUFE_PROMPT_2026-05-23.md | 6 +- .../CODEX_JELLYFIN_REMOVAL_2026-05-23.md | 2 +- .../2026-05}/CODEX_KOMODO_5XX_2026-05-31.md | 0 .../CODEX_KONSOLIDIERUNG_2026-05-23.md | 6 +- .../2026-05}/DISK1_PHASE2_PLAN_2026-05-23.md | 0 .../2026-05}/FRITZBOX_PORT_CORRECTION_PLAN.md | 0 .../2026-05}/NEXT_SPRINT_TODO_2026-05-16.md | 0 .../2026-05}/RECOVERY_HANDOFF_2026-05-15.md | 2 +- .../STRATEGISCHE_BEWERTUNG_2026-05-23.md | 0 docs/archive/README.md | 15 ++++ ops/policy-checks/mem-limits-baseline.md | 2 +- ops/windows-reinstall/README.md | 1 + .../docs}/postinstall-erstes-ziel-codex.md | 3 +- .../docs}/windows-neuaufsetzen-masterplan.md | 0 32 files changed, 141 insertions(+), 56 deletions(-) create mode 100644 docs/README.md rename docs/{ => archive/2026-05}/AI_HANDOFF_2026-05-06.md (92%) rename docs/{ => archive/2026-05}/AUDIT_2026-05-23.md (97%) rename docs/{ => archive/2026-05}/AUDIT_2026-05-23_FINAL.md (94%) rename docs/{ => archive/2026-05}/AUDIT_2026-05-23_LIVE.md (96%) rename docs/{ => archive/2026-05}/AUDIT_2026-05-25.md (99%) rename docs/{ => archive/2026-05}/AUDIT_REPORT.md (100%) rename docs/{ => archive/2026-05}/CODEX_ENDSTUFE_PROMPT_2026-05-23.md (87%) rename docs/{ => archive/2026-05}/CODEX_JELLYFIN_REMOVAL_2026-05-23.md (99%) rename docs/{ => archive/2026-05}/CODEX_KOMODO_5XX_2026-05-31.md (100%) rename docs/{ => archive/2026-05}/CODEX_KONSOLIDIERUNG_2026-05-23.md (89%) rename docs/{ => archive/2026-05}/DISK1_PHASE2_PLAN_2026-05-23.md (100%) rename docs/{ => archive/2026-05}/FRITZBOX_PORT_CORRECTION_PLAN.md (100%) rename docs/{ => archive/2026-05}/NEXT_SPRINT_TODO_2026-05-16.md (100%) rename docs/{ => archive/2026-05}/RECOVERY_HANDOFF_2026-05-15.md (91%) rename docs/{ => archive/2026-05}/STRATEGISCHE_BEWERTUNG_2026-05-23.md (100%) create mode 100644 docs/archive/README.md rename {docs => ops/windows-reinstall/docs}/postinstall-erstes-ziel-codex.md (97%) rename {docs => ops/windows-reinstall/docs}/windows-neuaufsetzen-masterplan.md (100%) diff --git a/CLAUDE.md b/CLAUDE.md index 9866777..dcdabfe 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -10,9 +10,10 @@ Claude muss vor jeder fachlichen oder technischen Aenderung mindestens diese Dat 1. `HOMELAB_ARCHITECTURE_MASTER_V2.md` 2. `docs/WORKFLOW.md` -3. `docs/REPO_MAP.md` -4. `docs/SERVICE_CATALOG.md` -5. die betroffene `docker-compose.yml` +3. `docs/README.md` +4. `docs/REPO_MAP.md` +5. `docs/SERVICE_CATALOG.md` +6. die betroffene `docker-compose.yml` Zusaetzlich je nach Thema: diff --git a/README.md b/README.md index e57571f..d144841 100644 --- a/README.md +++ b/README.md @@ -8,19 +8,20 @@ Vor jeder Aenderung lesen: 1. `HOMELAB_ARCHITECTURE_MASTER_V2.md` 2. `docs/WORKFLOW.md` +3. `docs/README.md` Bei Restore-, Host-Ausfall- oder Wiederanlauf-Fragen zusaetzlich: -3. `docs/DISASTER_RECOVERY.md` -4. `docs/RESTORE_MATRIX.md` -5. `docs/SERVICES_RECOVERY.md` +4. `docs/DISASTER_RECOVERY.md` +5. `docs/RESTORE_MATRIX.md` +6. `docs/SERVICES_RECOVERY.md` Bei Hardware-, Netzwerk-, Provider- oder Kapazitaetsfragen zusaetzlich: -6. `docs/HARDWARE_INVENTORY.md` -7. `docs/NETWORK_INVENTORY.md` -8. `docs/EXTERNAL_DEPENDENCIES.md` -9. `docs/CAPACITY_AND_LIFECYCLE.md` +7. `docs/HARDWARE_INVENTORY.md` +8. `docs/NETWORK_INVENTORY.md` +9. `docs/EXTERNAL_DEPENDENCIES.md` +10. `docs/CAPACITY_AND_LIFECYCLE.md` ## Architektur @@ -75,4 +76,5 @@ Bei Hardware-, Netzwerk-, Provider- oder Kapazitaetsfragen zusaetzlich: - Recovery-kritische Services-Pfade wie Gitea-Repositories, Komodo-Workspaces und Host-Automation sind in `docs/SERVICES_RECOVERY.md` beschrieben. - Hardware-, Netzwerk-, Provider- und Capacity-Inventare sind als operative Audit-Dokumente unter `docs/HARDWARE_INVENTORY.md`, `docs/NETWORK_INVENTORY.md`, `docs/EXTERNAL_DEPENDENCIES.md` und `docs/CAPACITY_AND_LIFECYCLE.md` vorbereitet. - Der verbindliche Detailablauf steht in `docs/WORKFLOW.md`. +- Der Doku-Index mit aktiven und archivierten Dokumenten steht in `docs/README.md`. - `nextcloud`, `bentopdf` und `monitoring` folgen dem dokumentierten Netz-/Secret-/Traefik-Modell; der zentrale Monitoring-Stack buendelt Prometheus, Loki, Promtail, Grafana und InfluxDB 3 Core. diff --git a/docs/AUDIT_2026-05-25_TODO.md b/docs/AUDIT_2026-05-25_TODO.md index 8a5ddf5..a4c7310 100644 --- a/docs/AUDIT_2026-05-25_TODO.md +++ b/docs/AUDIT_2026-05-25_TODO.md @@ -1,6 +1,6 @@ # Audit TODO 2026-05-25 -Quelle: `docs/AUDIT_2026-05-25.md` +Quelle: `docs/archive/2026-05/AUDIT_2026-05-25.md` Status: Arbeitsliste fuer die Umsetzung. Authelia-2FA/OIDC, CrowdSec und Nextcloud-2FA-Haertung bleiben ganz hinten und werden bewusst nicht in diesem Audit-Zyklus angefasst. @@ -76,7 +76,7 @@ Kontext bewusst gesichert, bevor weitere Live-Aenderungen passieren: | erledigt | USV-Test oder USV-Entscheidung | Operator-Entscheidung 2026-05-26: aktuell keine USV-Anschaffung; Power-Loss-Risiko wird bewusst akzeptiert und dokumentiert | | erledigt (Baseline) | H:/ als zusaetzliches lokales Backupziel bewerten | Als zweite Nearline-Kopie und Freeze-Sicherung sinnvoll; kein Offsite-Ersatz, kein CIFS-Hard-Mount am Unraid; Pull-Modell vom Windows-PC ist der getestete Weg (siehe `docs/CAPACITY_AND_LIFECYCLE.md`) | | erledigt (Pull live, Scheduled Task offen) | H:/ Groesse und Pull-Schedule festschreiben | Groesse erfasst: 8.0T NTFS, 3.91T belegt, 4.10T frei, `Healthy`. Erster echter Pull 2026-05-27 20:45 erfolgreich: 19 Borg-Dumps + 10 Gitea-Bundle-Files unter `H:\kallilab-nearline-backups`. `unraid-flash-config.*` bewusst ausserhalb Scope (`/XF`-Exclude, Restore aus Hetzner-Borg). Permission-Fixes in `pre-backup-dumps.sh` (alle Dumps 0644 ausser Flash-Config), `gitea-bundle-mirror.sh` (Bundles 0644), `export-prometheus-textfile.sh` (Metric-File 0644) und `pull-critical-backups.ps1` (Report-Bug + ExcludeFiles). Windows Scheduled Task taeglich 05:30 bleibt offen (Operator-Bestaetigung). | -| erledigt 2026-05-28 | FRITZ!Box-Portfreigaben gegen Repo-Soll abgleichen | Bereinigt: `80/tcp` entfernt (Mobilfunk-validiert: HTTP timeout, HTTPS weiter erreichbar). `222/tcp` bleibt bewusst nicht eingerichtet (Tailscale-only-Linie). UPnP-Selbstfreigabe-Recht fuer `PC-192-168-178-71` (VONETS-Bridge, vermutlich SolarEdge-Wechselrichter) deaktiviert. Aktiver Endstand: ausschliesslich `443/tcp -> 192.168.178.58`. Details in `docs/FRITZBOX_PORT_CORRECTION_PLAN.md`. | +| erledigt 2026-05-28 | FRITZ!Box-Portfreigaben gegen Repo-Soll abgleichen | Bereinigt: `80/tcp` entfernt (Mobilfunk-validiert: HTTP timeout, HTTPS weiter erreichbar). `222/tcp` bleibt bewusst nicht eingerichtet (Tailscale-only-Linie). UPnP-Selbstfreigabe-Recht fuer `PC-192-168-178-71` (VONETS-Bridge, vermutlich SolarEdge-Wechselrichter) deaktiviert. Aktiver Endstand: ausschliesslich `443/tcp -> 192.168.178.58`. Details in `docs/archive/2026-05/FRITZBOX_PORT_CORRECTION_PLAN.md`. | ## Sprint 5 - Auth und Frontdoor, bewusst zuletzt diff --git a/docs/CAPACITY_AND_LIFECYCLE.md b/docs/CAPACITY_AND_LIFECYCLE.md index aeb3a1d..f36feb9 100644 --- a/docs/CAPACITY_AND_LIFECYCLE.md +++ b/docs/CAPACITY_AND_LIFECYCLE.md @@ -80,7 +80,7 @@ H:/ ist **keine echte Offsite-/Airgap-Kopie und kein Ersatz fuer Hetzner**. Es i | Pull des Unraid-Flash-Artefakts `unraid-flash-config.tar.gz` | identisch | wie Secret behandeln, Windows-seitig nicht in geteilten Ordnern ablegen | Der konkrete Pull-Pfad ist in `docs/H_DRIVE_NEARLINE_PULL.md` und `ops/h-drive-nearline/pull-critical-backups.ps1` vorbereitet. Der Windows Scheduled Task wird erst nach Operator-Sichtpruefung aktiviert. -| **Nicht** als Ersatz fuer Hetzner-Off-site | — | 3-2-1 bleibt mit Hetzner als einzigem Off-site weiterhin unerfuellt; siehe `docs/AUDIT_2026-05-25.md` F-03 | +| **Nicht** als Ersatz fuer Hetzner-Off-site | — | 3-2-1 bleibt mit Hetzner als einzigem Off-site weiterhin unerfuellt; siehe `docs/archive/2026-05/AUDIT_2026-05-25.md` F-03 | | **Nicht** als zweites Borg-Repo am Unraid | — | dauerhafte CIFS-Verbindung im Borg-Lauf verletzt Hard Rule §12.6 | ### Kapazitaets-Eintrag diff --git a/docs/FAMILY_VIEW_DASHBOARD.md b/docs/FAMILY_VIEW_DASHBOARD.md index 4c9bcec..6231d71 100644 --- a/docs/FAMILY_VIEW_DASHBOARD.md +++ b/docs/FAMILY_VIEW_DASHBOARD.md @@ -1,7 +1,7 @@ # Family-View Dashboard - Spezifikation Status: **Spezifikation (Doku-only)**, kein Grafana-JSON in diesem Schritt. -Audit-Bezug: `docs/AUDIT_2026-05-25.md` Finding **F-08** (Alerts/Sichtbarkeit) und das Sprint-3-TODO "Family-View Dashboard definieren" aus `docs/AUDIT_2026-05-25_TODO.md`. +Audit-Bezug: `docs/archive/2026-05/AUDIT_2026-05-25.md` Finding **F-08** (Alerts/Sichtbarkeit) und das Sprint-3-TODO "Family-View Dashboard definieren" aus `docs/AUDIT_2026-05-25_TODO.md`. ## Zweck diff --git a/docs/IMMICH_RESTORE_TEST.md b/docs/IMMICH_RESTORE_TEST.md index a83211e..f50e804 100644 --- a/docs/IMMICH_RESTORE_TEST.md +++ b/docs/IMMICH_RESTORE_TEST.md @@ -1,7 +1,7 @@ # Immich Restore Test Status: **erfolgreich live verifiziert** (2026-05-27) -Audit-Bezug: `docs/AUDIT_2026-05-25.md` Finding **F-11** +Audit-Bezug: `docs/archive/2026-05/AUDIT_2026-05-25.md` Finding **F-11** ## Zweck diff --git a/docs/MIGRATION_LOG.md b/docs/MIGRATION_LOG.md index f31f224..9e88f28 100644 --- a/docs/MIGRATION_LOG.md +++ b/docs/MIGRATION_LOG.md @@ -1,4 +1,4 @@ -# Migration Log - Homelab GitOps +# Migration Log - Homelab GitOps Dieses Dokument ist nur noch ein historischer Verlauf. Der aktuelle operative Ablauf steht in `docs/WORKFLOW.md`, das Zielbild in `HOMELAB_ARCHITECTURE_MASTER_V2.md`. @@ -209,7 +209,7 @@ Vier Audit-Punkte am Stueck abgearbeitet. Pro Block: Live-Verifikation am Host, - `80/tcp` aus FRITZ!Box-UI entfernt. Validierung: Mobilfunk-Test ergibt Timeout auf `http://vault.kaleschke.info`, `https://vault.kaleschke.info` weiter erreichbar; lokal greift Traefik-Redirect 80->443 nach wie vor. Cloudflare-DNS-Challenge braucht kein Port 80. - `222/tcp` bleibt bewusst nicht eingerichtet. Begruendung: Tailscale ist Operator-Pfad, GitHub-Push-Mirror `michaelkaleschke-spec/homelab-infra` deckt Repo-Bootstrap-Pfad ab, Gitea-Bundles unter `/mnt/user/backups/git-bundles/gitea` decken Offline-Restore ab. `HOMELAB_ARCHITECTURE_MASTER_V2.md` Sektion 10 entsprechend mit "Tailscale-only, bewusst nicht WAN-freigegeben" praezisiert. - UPnP-Selbstfreigabe-Recht fuer `PC-192-168-178-71` (Hostname `VONETS.COM`, MAC `00:17:13:2F:61:96`) deaktiviert. Identifiziert als VONETS-WiFi-Bridge, vermutlich Bridge-Anbindung zum SolarEdge-Wechselrichter. SolarEdge-Cloud-Sync ist outbound und benoetigt keine UPnP. Aktuell waren 0 Selbstfreigaben aktiv; die Aenderung ist praeventiv gegen kuenftige Anforderungen. -- `docs/NETWORK_INVENTORY.md`, `docs/FRITZBOX_PORT_CORRECTION_PLAN.md` und `docs/AUDIT_2026-05-25_TODO.md` Sprint 4 entsprechend nachgezogen. +- `docs/NETWORK_INVENTORY.md`, `docs/archive/2026-05/FRITZBOX_PORT_CORRECTION_PLAN.md` und `docs/AUDIT_2026-05-25_TODO.md` Sprint 4 entsprechend nachgezogen. - Bewusst NICHT angefasst: FRITZ!OS 8.21 Update (Service-Fenster), IPv6-Exposure (separater Folgeschritt), WAN-Ausfallschutz (bewusst aus). ### 2026-05-27 - Monitoring-Alerts live, Gitea-Bundle-Cron live, H:/-Pull live @@ -219,9 +219,9 @@ Drei Audit-TODOs gleichzeitig auf "erledigt" gezogen; alle Aenderungen mit Host- **Monitoring-Alerts (Borg-Stale / Cert-Expiry / Container-Down)** - Auf dem Host neuer User-Script `export-prometheus-textfile-5min` mit Cron `*/5 * * * *` angelegt. Schreibt `/mnt/user/services/posture-check/textfile/homelab.prom`. -- Repo: `services/posture-check/export-prometheus-textfile.sh` setzt jetzt vor dem `mv` per `chmod 644`, damit node-exporter (`nobody:65534`) lesen kann. Vorher `0600 root:root` → `node_textfile_scrape_error 1`. +- Repo: `services/posture-check/export-prometheus-textfile.sh` setzt jetzt vor dem `mv` per `chmod 644`, damit node-exporter (`nobody:65534`) lesen kann. Vorher `0600 root:root` ? `node_textfile_scrape_error 1`. - `monitoring-prometheus` wurde einzeln per `docker restart` neu gestartet, um den `stale file handle` auf der gebundenen `alerts.yml` zu loesen. Kein Stack-Down. `promtool check rules` SUCCESS 14 rules, `lastConfigTime 2026-05-27T18:33:06Z`. Aktive Alerts: 1 firing (`HomelabTraefik5xx` aus dem 2026-05-20-Befund), 1 pending (`HomelabBorgLastJobCompletedWithWarnings` durch `completed_with_warnings`-Status des letzten Borg-Laufs). -- Pipeline end-to-end: Textfile-Skript ⇒ node-exporter Textfile-Collector ⇒ Prometheus ⇒ alerts.yml-Regeln. +- Pipeline end-to-end: Textfile-Skript ? node-exporter Textfile-Collector ? Prometheus ? alerts.yml-Regeln. **Gitea-Bundle-Schedule** @@ -249,7 +249,7 @@ Drei Audit-TODOs gleichzeitig auf "erledigt" gezogen; alle Aenderungen mit Host- ### 2026-05-27 - Vorbereitungsdokumente FRITZ!Box-Korrektur und Off-site-Optionen - Reine Doku-Aenderung; kein Router-, Provider- oder Host-Eingriff. -- `docs/FRITZBOX_PORT_CORRECTION_PLAN.md` neu angelegt: Korrektur-Plan fuer drei Punkte (`80/tcp` entfernen, `222/tcp` nicht ergaenzen solange Tailscale stabil, UPnP-Selbstfreigabe `PC-192-168-178-71` deaktivieren). Operator-Go ausstehend; jede UI-Aenderung wird gesondert dokumentiert. +- `docs/archive/2026-05/FRITZBOX_PORT_CORRECTION_PLAN.md` neu angelegt: Korrektur-Plan fuer drei Punkte (`80/tcp` entfernen, `222/tcp` nicht ergaenzen solange Tailscale stabil, UPnP-Selbstfreigabe `PC-192-168-178-71` deaktivieren). Operator-Go ausstehend; jede UI-Aenderung wird gesondert dokumentiert. - `docs/OFFSITE_BACKUP_OPTIONS.md` neu angelegt: Entscheidungsvorlage fuer zweites Off-site-Ziel mit drei Optionen (rsync.net Borg-Plan, BorgBase EU2, rotierende Cold-Platte). Bewertung gegen Provider-Trennung, Standort, Preis und Konto-Risiko; Empfehlung rsync.net oder Cold-Platte; BorgBase EU2 explizit nicht empfohlen wegen gleichem Anbieter. Kein Provider gebucht, keine Kosten ausgeloest. - `docs/REPO_MAP.md` um beide neuen Dokumente ergaenzt. - `docs/AUDIT_2026-05-25_TODO.md` Sprint 4 (FRITZ!Box) und Sprint 7 (Off-site) mit Verweis auf die neuen Vorbereitungsdokumente nachgezogen. @@ -269,7 +269,7 @@ Drei Audit-TODOs gleichzeitig auf "erledigt" gezogen; alle Aenderungen mit Host- ### 2026-05-27 - Immich Restore-Smoke-Test praktisch verifiziert (F-11) -- Erster echter Immich-Restore-Smoke-Test gegen das produktive Borg-Archiv erfolgreich: `Tägliche-Sicherung-2026-05-27T04:30:06.778`, Report `/mnt/user/backups/restore-reports/immich-2026-05-27.md`. +- Erster echter Immich-Restore-Smoke-Test gegen das produktive Borg-Archiv erfolgreich: `Tägliche-Sicherung-2026-05-27T04:30:06.778`, Report `/mnt/user/backups/restore-reports/immich-2026-05-27.md`. - Validiert wurden Borg-Extract von `local/borg-dumps/latest/immich.dump`, Import in isolierten `tensorchord/pgvecto-rs:pg14-v0.2.0` Test-Postgres, Start des Immich-Servers ohne ML und ohne Traefik, HTTP `200` auf `127.0.0.1:12283`, Login-Marker, `11977` Assets und `1` User im Test-DB-Check. - Produktive Container und produktive Foto-Pfade wurden nicht angefasst; Testdaten und Testcontainer wurden nach Erfolg bereinigt. - Im Lauf wurden Restore-Test-Haertungen umgesetzt: Borg-`known_hosts` aus `/data/known_hosts` wird fuer SSH-Trust genutzt, `completed_with_warnings`-Archive gelten als verwendbare Restore-Quelle, Postgres-Startfenster werden retry-faehig behandelt, Immich-v2-Upload-Marker werden im leeren Test-Mount erzeugt und Smoke-Checks schlagen bei HTTP-/Marker-Fehlern hart fehl. @@ -320,7 +320,7 @@ Drei Audit-TODOs gleichzeitig auf "erledigt" gezogen; alle Aenderungen mit Host- - `docs/NETWORK_INVENTORY.md` mit FRITZ!Box-Baseline gefuellt: FRITZ!Box 7590, FRITZ!OS 8.21 (Update gemeldet, nicht eingespielt), Telekom DSL ~87/36 Mbit/s, 36 aktive Heimnetz-Geraete, LAN 1-4 verbunden, WLAN `Fritzi`, Gast-WLAN inaktiv, Telefonie/DECT aktiv, Ausfallschutz nicht eingerichtet, USB nicht verbunden, 2 Portfreigaben aktiv. Soll fuer Portfreigaben: nur `443/tcp` und `222/tcp` auf `192.168.178.58`. - `docs/EXTERNAL_DEPENDENCIES.md` um Telekom-DSL und FRITZ!Box 7590 als WAN-/Router-Abhaengigkeit erweitert; Ausfall-Szenario "Telekom-DSL / FRITZ!Box gestoert" ergaenzt. -- `docs/CAPACITY_AND_LIFECYCLE.md` um Abschnitt "H:/ als zusaetzliches lokales Backup-Ziel" ergaenzt. Bewertung: H:/ ist als zweite lokale Nearline-Kopie und Freeze-Sicherung sinnvoll, aber bewusst **kein** Offsite-Ersatz und **kein** CIFS-Hard-Mount am Unraid (STORAGE_LAYOUT §12.6). Pull-Modell vom Windows-PC bleibt der getestete Weg (vgl. Disk1 Phase 2 Freeze 2026-05-25). +- `docs/CAPACITY_AND_LIFECYCLE.md` um Abschnitt "H:/ als zusaetzliches lokales Backup-Ziel" ergaenzt. Bewertung: H:/ ist als zweite lokale Nearline-Kopie und Freeze-Sicherung sinnvoll, aber bewusst **kein** Offsite-Ersatz und **kein** CIFS-Hard-Mount am Unraid (STORAGE_LAYOUT §12.6). Pull-Modell vom Windows-PC bleibt der getestete Weg (vgl. Disk1 Phase 2 Freeze 2026-05-25). - `docs/FAMILY_ONBOARDING.md` von Tabellen-Entwurf auf familienverstaendlichen Begruessungstext umgestellt: kurze App-Erklaerungen, konkrete Was-tun-Wenn-Anleitungen (Webseite weg, Passwort vergessen, 2FA verloren, Foto-Backup haengt, Browser-Warnung), "Was du nicht musst"-Block, Hinweis fuer geplante Wochenend-Einladung. - `docs/AUDIT_2026-05-25_TODO.md` Leitplanken aktualisiert: Authelia 2FA/OIDC/CrowdSec und Nextcloud-2FA-Haertung werden in diesem Zyklus nicht angefasst (Operator-Vorgabe). Hermes-Agent geparkt mit Review-Deadline 2026-07-25. USV-Risiko bewusst akzeptiert. Sprint 4 um H:/-Bewertung und FRITZ!Box-Portfreigaben-Abgleich erweitert. Neue Sprints 6 (geparkte Apps) und 7 (Off-site) ergaenzt. - Keine Live-/Compose-Aenderung in diesem Commit; nur Doku. @@ -389,7 +389,7 @@ Drei Audit-TODOs gleichzeitig auf "erledigt" gezogen; alle Aenderungen mit Host- ### 2026-05-26 - Audit-Umsetzung vorbereitet -- Aus `docs/AUDIT_2026-05-25.md` wurde `docs/AUDIT_2026-05-25_TODO.md` als operative Arbeitsliste abgeleitet. Authelia-2FA/OIDC bleibt bewusst geparkt und wird erst nach finaler Policy-Entscheidung umgesetzt. +- Aus `docs/archive/2026-05/AUDIT_2026-05-25.md` wurde `docs/AUDIT_2026-05-25_TODO.md` als operative Arbeitsliste abgeleitet. Authelia-2FA/OIDC bleibt bewusst geparkt und wird erst nach finaler Policy-Entscheidung umgesetzt. - Neue Inventar- und Betriebsdokumente angelegt: `docs/HARDWARE_INVENTORY.md`, `docs/NETWORK_INVENTORY.md`, `docs/EXTERNAL_DEPENDENCIES.md`, `docs/CAPACITY_AND_LIFECYCLE.md` und `docs/FAMILY_ONBOARDING.md`. - `docs/SERVICES_RECOVERY.md` beschreibt initial die recovery-kritischen `/mnt/user/services`-Pfade, Gitea-Repo-Mirror-Optionen, Komodo-Bootstrap und Secret-Recovery-Reihenfolge. - Policy-Check lokal erneut ausgefuehrt: die alten SEC001-Warnings fuer `ddns-updater` und `scrutiny` sind nicht mehr aktuell; verbleibende Warnings betreffen Host-Netz-/User-/Image-Tag-Themen und Altstaende. @@ -429,7 +429,7 @@ Drei Audit-TODOs gleichzeitig auf "erledigt" gezogen; alle Aenderungen mit Host- ### 2026-05-25 - Audit-Final nachgemessen -- Audit-Restliste erneut live geprueft: runtime-relevanter Stack-Inhalt fuer `gitea`, `borg-ui` und `monitoring` seit `66ee10c` unveraendert; abschliessende Audit-Doku-Commits liegen in Gitea; Monitoring inklusive Loki `/ready` gruen; Borg-Job und 15 kanonische Dump-Artefakte frisch; `docs/AUDIT_2026-05-23_FINAL.md` auf den Live-Stand aktualisiert. +- Audit-Restliste erneut live geprueft: runtime-relevanter Stack-Inhalt fuer `gitea`, `borg-ui` und `monitoring` seit `66ee10c` unveraendert; abschliessende Audit-Doku-Commits liegen in Gitea; Monitoring inklusive Loki `/ready` gruen; Borg-Job und 15 kanonische Dump-Artefakte frisch; `docs/archive/2026-05/AUDIT_2026-05-23_FINAL.md` auf den Live-Stand aktualisiert. ### 2026-05-25 - Disk1 Phase 2 abgeschlossen @@ -442,7 +442,7 @@ Drei Audit-TODOs gleichzeitig auf "erledigt" gezogen; alle Aenderungen mit Host- ### 2026-05-23 - Audit-Endstufe verifiziert - Lokalen Hardening-Commit `cd650b1` nach Gitea gepusht; Komodo-Workspaces fuer `gitea`, `borg-ui` und `monitoring` stehen auf `cd650b1`. -- Live-Audit in `docs/AUDIT_2026-05-23_LIVE.md` dokumentiert: Gitea-Registration geschlossen, Borg-Dumps frisch, Monitoring-Stack aktiv, alte Grafana/Loki-Altcontainer nicht mehr vorhanden. +- Live-Audit in `docs/archive/2026-05/AUDIT_2026-05-23_LIVE.md` dokumentiert: Gitea-Registration geschlossen, Borg-Dumps frisch, Monitoring-Stack aktiv, alte Grafana/Loki-Altcontainer nicht mehr vorhanden. - Jellyfin und Plex in Architektur, Service-Katalog und Repo-Map nachgetragen; Plex ist jetzt als Repo-Compose-Stack mit dokumentierter Host-Netz-Ausnahme gefuehrt. - Repo-Hygiene abgeschlossen: `.serena/` ignoriert, leere Verzeichnisse entfernt, Windows-Reinstall-Helfer unter `ops/windows-reinstall/` bewusst versioniert. diff --git a/docs/OFFSITE_BACKUP_OPTIONS.md b/docs/OFFSITE_BACKUP_OPTIONS.md index bfdcac2..68e2f97 100644 --- a/docs/OFFSITE_BACKUP_OPTIONS.md +++ b/docs/OFFSITE_BACKUP_OPTIONS.md @@ -1,7 +1,7 @@ # Zweites Offsite-Backup-Ziel - Entscheidungsvorlage Status: **Operator-Entscheidung 2026-05-28: bewusst KEIN zweites Off-site.** Doku bleibt als Begruendungs-Anker und fuer zukuenftige Reviews. -Audit-Bezug: `docs/AUDIT_2026-05-25.md` Finding **F-03** und `docs/AUDIT_2026-05-25_TODO.md` Sprint 7. +Audit-Bezug: `docs/archive/2026-05/AUDIT_2026-05-25.md` Finding **F-03** und `docs/AUDIT_2026-05-25_TODO.md` Sprint 7. ## Beschluss 2026-05-28 diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 0000000..32b0812 --- /dev/null +++ b/docs/README.md @@ -0,0 +1,69 @@ +# Documentation Index + +Stand: 2026-05-31 + +Diese Datei trennt aktive Betriebsdokumentation von historischen Snapshots. Neue operative Dokumente duerfen nur in `docs/` liegen, wenn sie heute als Einstieg, Runbook, Inventar oder offene Arbeitsliste gebraucht werden. Erledigte Audits, Chat-Handoffs, Prompt-Dateien und abgeschlossene Plaene gehen nach `docs/archive/YYYY-MM/`. + +## Pflicht-Einstieg + +| Datei | Zweck | +|---|---| +| `../README.md` | kurzer Repo-Einstieg | +| `../HOMELAB_ARCHITECTURE_MASTER_V2.md` | Architektur-Quelle fuer Netz, Zugriff und Ausnahmen | +| `WORKFLOW.md` | verbindlicher GitOps-/No-Drift-Ablauf | +| `REPO_MAP.md` | technische Landkarte des Repositories | +| `SERVICE_CATALOG.md` | produktiver Service-Katalog | + +## Betrieb und Recovery + +| Datei | Zweck | +|---|---| +| `DISASTER_RECOVERY.md` | Wiederanlauf nach Host-/Systemausfall | +| `RESTORE_MATRIX.md` | Restore-Quellen, Dumps, Secrets und Smoke-Tests je Dienst | +| `RESTORE_HANDBOOK.md` | praktische Restore-Anleitung | +| `RESTORE_DRILL_ROUTINE.md` | regelmaessige Restore-Drills | +| `SERVICES_RECOVERY.md` | Gitea-/Komodo-/Services-Bootstrap | +| `ROLLBACK.md` | Rueckweg bei GitOps-/Deploy-Fehlern | +| `GITOPS_DRIFT_RUNBOOK.md` | Pflichtmatrix bei Drift zwischen Git, Komodo, Docker und Host | + +## Inventare und Policies + +| Datei | Zweck | +|---|---| +| `STORAGE_LAYOUT.md` | verbindliche Storage-/Share-/Pfad-Regeln | +| `SECRETS_MAP.md` | Secret-Namen, Speicherorte und Einbindungsarten ohne Werte | +| `HARDWARE_INVENTORY.md` | Host-, Disk-, SMART-, USV- und Power-Baseline | +| `NETWORK_INVENTORY.md` | Router, DNS, Tailscale, Portfreigaben und Netzthemen | +| `EXTERNAL_DEPENDENCIES.md` | Provider, Konten und externe Abhaengigkeiten | +| `CAPACITY_AND_LIFECYCLE.md` | Kapazitaet, Wachstum und Upgrade-Trigger | + +## Monitoring und Automatisierung + +| Datei | Zweck | +|---|---| +| `ALERT_RULES.md` | Prometheus-/ntfy-Regeln und Handlungslogik | +| `ALERTING_MAP.md` | ntfy Topics und Sender-Konvention | +| `RENOVATE.md` | Self-hosted Renovate gegen Gitea | +| `HOME_ASSISTANT_INFLUXDB_ECOWITT.md` | Home Assistant -> InfluxDB 3 -> Grafana | +| `H_DRIVE_NEARLINE_PULL.md` | Windows-H:/ Nearline-Pull fuer kritische Restore-Artefakte | +| `IMMICH_RESTORE_TEST.md` | Immich-Restore-Test-Overview | + +## Nutzer- und Planungsdoku + +| Datei | Zweck | +|---|---| +| `FAMILY_ONBOARDING.md` | familienverstaendliche Nutzungsdoku | +| `FAMILY_VIEW_DASHBOARD.md` | Spezifikation fuer das Family-View-Dashboard | +| `OFFSITE_BACKUP_OPTIONS.md` | dokumentierte Offsite-Entscheidung und Review-Trigger | +| `AUDIT_2026-05-25_TODO.md` | verbleibende/parkende Aufgaben aus dem Audit-Zyklus | +| `POST_MIGRATION_BURN_IN_2026-05-31.md` | aktueller Burn-in-Nachlauf nach den Stateful-Migrationen | +| `AI_CONTEXT.md` | kompakter Kontext fuer KI-Agenten | +| `MIGRATION_LOG.md` | historischer Verlauf; kein Primaer-Runbook | + +## Archiv + +| Pfad | Inhalt | +|---|---| +| `archive/2026-05/` | alte Audits, Chat-Handoffs, Codex-Prompts und erledigte Aktionsplaene aus Mai 2026 | + +Windows-Neuaufsetzen-Dokumente liegen nicht mehr in `docs/`, sondern im fachlich passenden Ordner `../ops/windows-reinstall/docs/`. diff --git a/docs/RENOVATE.md b/docs/RENOVATE.md index b0930db..ee5c74e 100644 --- a/docs/RENOVATE.md +++ b/docs/RENOVATE.md @@ -1,7 +1,7 @@ # Renovate Bot - Self-hosted gegen Gitea Status: **live seit 2026-05-29**; PAT, State-Verzeichnis und Cron sind auf dem Host aktiv. -Audit-Bezug: `docs/AUDIT_2026-05-25.md` Finding **F-12**. +Audit-Bezug: `docs/archive/2026-05/AUDIT_2026-05-25.md` Finding **F-12**. ## Zweck diff --git a/docs/REPO_MAP.md b/docs/REPO_MAP.md index 09e594c..7f5258b 100644 --- a/docs/REPO_MAP.md +++ b/docs/REPO_MAP.md @@ -27,6 +27,7 @@ Secret-Werte werden hier nicht dokumentiert. Aufgefuehrt werden nur Variablennam |---|---| | `README.md` | Einstieg und Kurzueberblick | | `HOMELAB_ARCHITECTURE_MASTER_V2.md` | operative Architektur-Quelle fuer Netzwerk, Zugriff und Ausnahmen | +| `docs/README.md` | Doku-Index mit aktiver Doku, Archiv-Regel und Themenclustern | | `docs/WORKFLOW.md` | GitOps-/No-Drift-Arbeitsregeln | | `docs/GITOPS_DRIFT_RUNBOOK.md` | Pflichtmatrix fuer Git/Gitea/Komodo/Docker/Host-Drift | | `docs/DISASTER_RECOVERY.md` | Wiederanlauf nach Host-/Systemausfall | @@ -42,12 +43,8 @@ Secret-Werte werden hier nicht dokumentiert. Aufgefuehrt werden nur Variablennam | `docs/RESTORE_DRILL_ROUTINE.md` | Quartalsweise Restore-Drill-Routine, Tier-Belegung, DR-Sanity-Check | | `docs/IMMICH_RESTORE_TEST.md` | Operator-Overview Immich-Restore-Test, Erstlauf 2026-05-27 erfolgreich | | `docs/RENOVATE.md` | Self-hosted Renovate gegen Gitea (Setup + Wartung) | -| `docs/FRITZBOX_PORT_CORRECTION_PLAN.md` | Vorbereitungs-Doku fuer FRITZ!Box-Portfreigaben-Korrektur (kein Router-Eingriff) | | `docs/OFFSITE_BACKUP_OPTIONS.md` | Entscheidungsvorlage zweites Offsite-Backup-Ziel (rsync.net vs. BorgBase EU2 vs. Cold-Platte) | | `docs/AUDIT_2026-05-25_TODO.md` | Operative Arbeitsliste aus dem Audit vom 2026-05-25; Authelia-2FA bewusst geparkt | -| `docs/STRATEGISCHE_BEWERTUNG_2026-05-23.md` | Historische Baseline-Bewertung; hat den Audit-Zyklus 2026-05-25 angestossen | -| `docs/CODEX_KONSOLIDIERUNG_2026-05-23.md` | Codex-Erstprompt zum Audit-Zyklus, abgearbeitet; Vorlage fuer kuenftige Sweeps | -| `docs/CODEX_JELLYFIN_REMOVAL_2026-05-23.md` | Codex-Removal-Pattern, Jellyfin-Removal 2026-05-25 ausgefuehrt; Vorlage fuer kuenftige Stack-Removals | | `ops/policy-checks/mem-limits-baseline.md` | F-19 Vorbereitungs-Plan fuer Container-Mem-Limits; bewusst nicht vor 7 Tagen Peak-Beobachtung | | `docs/ALERTING_MAP.md` | ntfy Topic-Konvention und Sender-Mapping fuer Homelab-Alerts | | `docs/ROLLBACK.md` | Rueckweg bei Fehlern im GitOps-Betrieb | @@ -55,6 +52,7 @@ Secret-Werte werden hier nicht dokumentiert. Aufgefuehrt werden nur Variablennam | `docs/HOME_ASSISTANT_INFLUXDB_ECOWITT.md` | Home Assistant -> InfluxDB 3 -> Grafana Ablauf | | `docs/AI_CONTEXT.md` | Gesamtverstaendnis fuer KI-Agenten | | `docs/SERVICE_CATALOG.md` | produktiver Service-Katalog | +| `docs/archive/2026-05/` | historische Audits, Handoffs, Codex-Prompts und erledigte Plaene aus Mai 2026 | ## Relevante Nicht-Compose-Dateien diff --git a/docs/RESTORE_DRILL_ROUTINE.md b/docs/RESTORE_DRILL_ROUTINE.md index 625e4cd..fa3006d 100644 --- a/docs/RESTORE_DRILL_ROUTINE.md +++ b/docs/RESTORE_DRILL_ROUTINE.md @@ -1,7 +1,7 @@ # Restore-Drill Routine - KalliLab CORE Status: **verbindliche Routine (Doku-only)**, 2026-05-27. -Audit-Bezug: `docs/AUDIT_2026-05-25.md` Sprint 7 "Restore-Lab-Drill quartalsweise dokumentieren". +Audit-Bezug: `docs/archive/2026-05/AUDIT_2026-05-25.md` Sprint 7 "Restore-Lab-Drill quartalsweise dokumentieren". Verwandte Docs: `docs/RESTORE_MATRIX.md`, `docs/RESTORE_HANDBOOK.md`, `docs/DISASTER_RECOVERY.md`, `ops/restore-tests/schedule.md`. ## Ziel diff --git a/docs/AI_HANDOFF_2026-05-06.md b/docs/archive/2026-05/AI_HANDOFF_2026-05-06.md similarity index 92% rename from docs/AI_HANDOFF_2026-05-06.md rename to docs/archive/2026-05/AI_HANDOFF_2026-05-06.md index da3082e..0691a65 100644 --- a/docs/AI_HANDOFF_2026-05-06.md +++ b/docs/archive/2026-05/AI_HANDOFF_2026-05-06.md @@ -77,4 +77,4 @@ Kompakte Quelle fuer einen neuen Chat. Ziel: nicht das ganze Repo neu auditieren ## Startprompt Fuer Neuen Chat -Bitte zuerst `docs/AI_HANDOFF_2026-05-06.md` lesen und als aktuelle Arbeitsquelle verwenden. Nicht das ganze Repo neu auditieren, ausser ich fordere es an. Beachte besonders: Komodo nur gemeinsam und kleinschrittig aendern, keine Secret-Werte ausgeben, untracked PDF und `ops/hermes-agent/services.yaml` nicht anfassen. Wir starten jetzt mit Next-Level-Hardening. +Bitte zuerst `docs/archive/2026-05/AI_HANDOFF_2026-05-06.md` lesen und als aktuelle Arbeitsquelle verwenden. Nicht das ganze Repo neu auditieren, ausser ich fordere es an. Beachte besonders: Komodo nur gemeinsam und kleinschrittig aendern, keine Secret-Werte ausgeben, untracked PDF und `ops/hermes-agent/services.yaml` nicht anfassen. Wir starten jetzt mit Next-Level-Hardening. diff --git a/docs/AUDIT_2026-05-23.md b/docs/archive/2026-05/AUDIT_2026-05-23.md similarity index 97% rename from docs/AUDIT_2026-05-23.md rename to docs/archive/2026-05/AUDIT_2026-05-23.md index 3d0e9a4..ea5ea62 100644 --- a/docs/AUDIT_2026-05-23.md +++ b/docs/archive/2026-05/AUDIT_2026-05-23.md @@ -14,7 +14,7 @@ Ampel-Bewertung pro Bereich: | GitOps-Konsistenz (Working Tree) | 🟢* | Keine echten Inhaltsaenderungen offen. Die 47 "modified files" aus `git status` im Linux-Mount sind voraussichtlich CRLF/LF-Mount-Artefakte (durch `git diff -w --stat` auf Stichprobe bestaetigt leer). Bitte am Windows-Host gegenpruefen. | | Hardening-Sprint (Mai 2026) | 🟢 | Alle vier Post-Restore-Sprint-Items sind im Repo umgesetzt (Filebrowser-Mounts, Authelia Argon2id, Gitea Webhook-Allowlist, Backup-Dump-Konsistenz). | | Backup/Restore-Readiness | 🟢 | `pre-backup-dumps.sh` deckt alle relevanten SQLite/PostgreSQL/Mongo-Quellen ab. Borg-UI-Scope umfasst `/mnt/user/services`, `homelab-infra`, `stacks`, `posture-check`. Live-Frische ist offen (Abschnitt 9). | -| Monitoring-Migration | 🟡 | `monitoring/` Stack im Repo komplett, aber Live-Deploy laut `docs/NEXT_SPRINT_TODO_2026-05-16.md` noch ausstehend. Alte Stacks `ops/grafana-influxdb` und `ops/loki` sollen erst nach Live-Smoke-Test gestoppt werden. | +| Monitoring-Migration | 🟡 | `monitoring/` Stack im Repo komplett, aber Live-Deploy laut `docs/archive/2026-05/NEXT_SPRINT_TODO_2026-05-16.md` noch ausstehend. Alte Stacks `ops/grafana-influxdb` und `ops/loki` sollen erst nach Live-Smoke-Test gestoppt werden. | | Doku-Drift Repo vs. Master-Doku | 🟠 | `apps/jellyfin/`, `host-services/plex/` und einige andere existieren produktiv als Compose-Stacks, sind aber in `HOMELAB_ARCHITECTURE_MASTER_V2.md`, `docs/SERVICE_CATALOG.md` und `docs/REPO_MAP.md` **nicht aufgefuehrt**. Authelia-ACL kennt `jellyfin.kaleschke.info` als bypass, im Masterdoku-Hostkatalog steht es nicht. | | Repo-Hygiene | 🟡 | 8 leere Verzeichnisse im Working Tree (siehe 4.3). `.serena/` ist untracked und nicht in `.gitignore`. Drei `ops/windows-reinstall/*.ps1` sind untracked. | | Bekannte Ausnahmen | 🟢 | Alle Ausnahmen aus `HOMELAB_ARCHITECTURE_MASTER_V2.md` Abschnitt 10 sind weiterhin dokumentiert und durch den Policy-Check abgedeckt (0 Critical, 4 Warnings, 9 Info – alles dokumentierte Ausnahmen). | @@ -33,7 +33,7 @@ Diese Audit-Quellen wurden gelesen (repo-seitig): - `docs/SERVICE_CATALOG.md` - `docs/RESTORE_MATRIX.md` - `docs/GITOPS_DRIFT_RUNBOOK.md` -- `docs/NEXT_SPRINT_TODO_2026-05-16.md` +- `docs/archive/2026-05/NEXT_SPRINT_TODO_2026-05-16.md` - `ops/borg-ui/scripts/pre-backup-dumps.sh` - `ops/borg-ui/docker-compose.yml` - `ops/borg-ui/all-important-sources.txt` @@ -136,7 +136,7 @@ Repo hat folgende Compose-Stacks, die in den Doku-Quellen (`HOMELAB_ARCHITECTURE ### 2.6 Image-Pinning -Lt. `docs/NEXT_SPRINT_TODO_2026-05-16.md` sind diese Stacks noch nicht voll versioniert gepinnt: +Lt. `docs/archive/2026-05/NEXT_SPRINT_TODO_2026-05-16.md` sind diese Stacks noch nicht voll versioniert gepinnt: - `ddns-updater` — `latest...@sha256` - `glances` — `latest-full@sha256` - `scrutiny` — `latest-omnibus@sha256` @@ -234,7 +234,7 @@ Sechs der sieben Punkte sind in Reichweite ohne neue Architekturentscheidungen. |---|---|---|---| | **P0** | `cd650b1` nach Gitea pushen | GitOps-Quelle-der-Wahrheit, Voraussetzung fuer alles weitere | 30 Sekunden | | **P0** | Live-Daten aus Abschnitt 9 einholen | Ohne Live-Frische ist Endstufen-Bewertung unvollstaendig | 5 Minuten | -| **P1** | Monitoring-Stack live finalisieren (Secrets pruefen, deployen, Smoke-Test, alte Altstaende stoppen) | Aus `docs/NEXT_SPRINT_TODO_2026-05-16.md` der naechste produktive Schritt | 1–2 Stunden mit Tests | +| **P1** | Monitoring-Stack live finalisieren (Secrets pruefen, deployen, Smoke-Test, alte Altstaende stoppen) | Aus `docs/archive/2026-05/NEXT_SPRINT_TODO_2026-05-16.md` der naechste produktive Schritt | 1–2 Stunden mit Tests | | **P2** | Doku-Drift schliessen: Jellyfin und Plex in `HOMELAB_ARCHITECTURE_MASTER_V2.md` 7.4 + 7.1, `docs/SERVICE_CATALOG.md`, `docs/REPO_MAP.md` ergaenzen; Plex-Eintrag in Abschnitt 7.7 "noch offene Sonderfaelle" entfernen (ist umgesetzt) | Doku ist Source of Truth fuer KI-Audits und Nachfolge | 30 Minuten | | **P2** | Home Assistant -> InfluxDB final testen, HA-Dashboard in `monitoring-grafana` anlegen | aus NEXT_SPRINT_TODO | 1–2 Stunden | | **P3** | Repo-Hygiene: 8 leere Verzeichnisse loeschen, `.serena/` in `.gitignore`, Entscheidung zu `ops/windows-reinstall/*.ps1` | minor, aber dokumentiert | 15 Minuten | @@ -276,7 +276,7 @@ Konsistent mit der bekannten Nicht-Anfassen-Liste: - Drift-Runbook: `docs/GITOPS_DRIFT_RUNBOOK.md` - Restore-Quellen: `docs/RESTORE_MATRIX.md`, `docs/DISASTER_RECOVERY.md` - Letzter Policy-Check: `ops/policy-checks/last-report.md` (0 Critical) -- Letzte Sprint-Restliste: `docs/NEXT_SPRINT_TODO_2026-05-16.md` +- Letzte Sprint-Restliste: `docs/archive/2026-05/NEXT_SPRINT_TODO_2026-05-16.md` --- diff --git a/docs/AUDIT_2026-05-23_FINAL.md b/docs/archive/2026-05/AUDIT_2026-05-23_FINAL.md similarity index 94% rename from docs/AUDIT_2026-05-23_FINAL.md rename to docs/archive/2026-05/AUDIT_2026-05-23_FINAL.md index 5299965..78dc338 100644 --- a/docs/AUDIT_2026-05-23_FINAL.md +++ b/docs/archive/2026-05/AUDIT_2026-05-23_FINAL.md @@ -5,7 +5,7 @@ Stand: 2026-05-25 07:33 CEST. Ergebnis nach Push, Live-Messung, Doku-Sync, Repo- | Punkt | Ampel | Beleg | |---|---|---| | P0 `cd650b1` nach Gitea pushen | gruen | Push `af231dd..cd650b1 master -> master`; produktiver Runtime-Stand `66ee10c` enthaelt `cd650b1`. Die abschliessenden Audit-Doku-Commits liegen in Gitea; der runtime-relevante Stack-Inhalt fuer `gitea`, `borg-ui` und `monitoring` ist seit `66ee10c` unveraendert. | -| P0 Live-Daten ablegen | gruen | `docs/AUDIT_2026-05-23_LIVE.md` angelegt, keine Secret-Werte dokumentiert. | +| P0 Live-Daten ablegen | gruen | `docs/archive/2026-05/AUDIT_2026-05-23_LIVE.md` angelegt, keine Secret-Werte dokumentiert. | | P1 Monitoring live / Altstaende down | gruen | 10 `monitoring-*` Container laufen, `0` unhealthy, `0` starting, `0` stopped; alte `grafana`/`influxdb3-core`/`loki`/`alloy` Container sind nicht vorhanden. `monitoring.kaleschke.info` liefert 302 zu Authelia, Prometheus ist bereit, Loki `/ready` liefert `ready`. | | P1 Jellyfin/Plex Doku | gruen | `HOMELAB_ARCHITECTURE_MASTER_V2.md`, `docs/SERVICE_CATALOG.md` und `docs/REPO_MAP.md` ergaenzt; Plex ist als Repo-Compose-Stack dokumentiert, nicht mehr als nicht migrierter Dockerman-Sonderfall. | | P2 Borg-Frische | gruen | Borg-UI DB: letzter Backup-Job `completed`, Archiv `Taegliche-Sicherung-2026-05-25T05:52:44.157`, `nfiles=100221`; 15 kanonische Dump-/Archive-Artefakte von 2026-05-25 06:09/06:10 CEST und damit juenger als 24 h. | diff --git a/docs/AUDIT_2026-05-23_LIVE.md b/docs/archive/2026-05/AUDIT_2026-05-23_LIVE.md similarity index 96% rename from docs/AUDIT_2026-05-23_LIVE.md rename to docs/archive/2026-05/AUDIT_2026-05-23_LIVE.md index c14755b..75e63a2 100644 --- a/docs/AUDIT_2026-05-23_LIVE.md +++ b/docs/archive/2026-05/AUDIT_2026-05-23_LIVE.md @@ -4,7 +4,7 @@ Stand: 2026-05-23 11:27 CEST. Quelle: lokaler Windows-Clone und SSH auf `Kallila ## 9.1 Windows-Host / Git -- `git status --short` nach dem initialen Push: keine tracked Modifikationen, untracked waren `.serena/`, `docs/AUDIT_2026-05-23.md`, `docs/CODEX_ENDSTUFE_PROMPT_2026-05-23.md` und drei `ops/windows-reinstall/*.ps1`. +- `git status --short` nach dem initialen Push: keine tracked Modifikationen, untracked waren `.serena/`, `docs/archive/2026-05/AUDIT_2026-05-23.md`, `docs/archive/2026-05/CODEX_ENDSTUFE_PROMPT_2026-05-23.md` und drei `ops/windows-reinstall/*.ps1`. - `cd650b1` wurde nach `origin/master` gepusht: `af231dd..cd650b1 master -> master`. ## 9.2 Gitea online diff --git a/docs/AUDIT_2026-05-25.md b/docs/archive/2026-05/AUDIT_2026-05-25.md similarity index 99% rename from docs/AUDIT_2026-05-25.md rename to docs/archive/2026-05/AUDIT_2026-05-25.md index 38d6413..1ee1288 100644 --- a/docs/AUDIT_2026-05-25.md +++ b/docs/archive/2026-05/AUDIT_2026-05-25.md @@ -1,12 +1,12 @@ # Homelab-Audit KalliLab CORE Stand: 2026-05-25 -Methode: Repo-basierter Audit auf `master` (lokaler Clone). Keine Live-Messung gegen den Host. Querverweise auf Audit-Live-Daten aus `docs/AUDIT_2026-05-23_LIVE.md`, wo verfuegbar. -Auftrag: externer, kritischer Audit-Blick zusaetzlich zur internen `docs/STRATEGISCHE_BEWERTUNG_2026-05-23.md`. +Methode: Repo-basierter Audit auf `master` (lokaler Clone). Keine Live-Messung gegen den Host. Querverweise auf Audit-Live-Daten aus `docs/archive/2026-05/AUDIT_2026-05-23_LIVE.md`, wo verfuegbar. +Auftrag: externer, kritischer Audit-Blick zusaetzlich zur internen `docs/archive/2026-05/STRATEGISCHE_BEWERTUNG_2026-05-23.md`. ## Wichtige Vorbemerkung -Es gibt seit dem 23.05. eine fundierte interne Bewertung (`docs/STRATEGISCHE_BEWERTUNG_2026-05-23.md`) und eine konsolidierte Hausaufgabenliste (`docs/CODEX_KONSOLIDIERUNG_2026-05-23.md`). Davon wurden seit dem 25.05. bereits umgesetzt: +Es gibt seit dem 23.05. eine fundierte interne Bewertung (`docs/archive/2026-05/STRATEGISCHE_BEWERTUNG_2026-05-23.md`) und eine konsolidierte Hausaufgabenliste (`docs/archive/2026-05/CODEX_KONSOLIDIERUNG_2026-05-23.md`). Davon wurden seit dem 25.05. bereits umgesetzt: - Jellyfin entfernt (MASTER 7.8) - Homepage entfernt (MASTER 7.8) @@ -72,8 +72,8 @@ homelab-infra/ - `HOMELAB_ARCHITECTURE_MASTER_V2.md` — komplett - `docs/WORKFLOW.md`, `docs/REPO_MAP.md`, `docs/SERVICE_CATALOG.md` — komplett - `docs/DISASTER_RECOVERY.md`, `docs/RESTORE_MATRIX.md`, `docs/SECRETS_MAP.md` — komplett -- `docs/STORAGE_LAYOUT.md` (zum Audit-Zeitpunkt `docs/STORAGE_LAYOUT.draft.md`), `docs/STRATEGISCHE_BEWERTUNG_2026-05-23.md` — komplett -- `docs/AUDIT_2026-05-23_LIVE.md`, `docs/AUDIT_2026-05-23_FINAL.md` +- `docs/STORAGE_LAYOUT.md` (zum Audit-Zeitpunkt `docs/STORAGE_LAYOUT.draft.md`), `docs/archive/2026-05/STRATEGISCHE_BEWERTUNG_2026-05-23.md` — komplett +- `docs/archive/2026-05/AUDIT_2026-05-23_LIVE.md`, `docs/archive/2026-05/AUDIT_2026-05-23_FINAL.md` - `ops/policy-checks/last-report.md` - `monitoring/docker-compose.yml`, `monitoring/prometheus/alerts.yml` - `traefik/docker-compose.yml`, `traefik/dynamic/middlewares.yml` diff --git a/docs/AUDIT_REPORT.md b/docs/archive/2026-05/AUDIT_REPORT.md similarity index 100% rename from docs/AUDIT_REPORT.md rename to docs/archive/2026-05/AUDIT_REPORT.md diff --git a/docs/CODEX_ENDSTUFE_PROMPT_2026-05-23.md b/docs/archive/2026-05/CODEX_ENDSTUFE_PROMPT_2026-05-23.md similarity index 87% rename from docs/CODEX_ENDSTUFE_PROMPT_2026-05-23.md rename to docs/archive/2026-05/CODEX_ENDSTUFE_PROMPT_2026-05-23.md index b31c73d..610af48 100644 --- a/docs/CODEX_ENDSTUFE_PROMPT_2026-05-23.md +++ b/docs/archive/2026-05/CODEX_ENDSTUFE_PROMPT_2026-05-23.md @@ -4,13 +4,13 @@ Du hast Vollzugriff auf `G:\Gitea_Clone\homelab-infra`, Gitea-Push, Komodo, und ## Lies zuerst 1. `CLAUDE.md` -2. `docs/AUDIT_2026-05-23.md` — dort steht die komplette Restliste +2. `docs/archive/2026-05/AUDIT_2026-05-23.md` — dort steht die komplette Restliste ## Auftrag Den Audit von oben verifizieren und die offenen Punkte abarbeiten, bis das Homelab in der Endstufe ist. Reihenfolge: 1. **P0** — Lokalen Commit `cd650b1` nach Gitea pushen, danach Komodo-Reaktion fuer `gitea` und `borg-ui` pruefen. -2. **P0** — Live-Daten aus Audit-Abschnitt 9 messen und in `docs/AUDIT_2026-05-23_LIVE.md` ablegen (Secrets redacten). +2. **P0** — Live-Daten aus Audit-Abschnitt 9 messen und in `docs/archive/2026-05/AUDIT_2026-05-23_LIVE.md` ablegen (Secrets redacten). 3. **P1** — Monitoring-Stack (`monitoring/`) live deployen, alte `ops/grafana-influxdb` und `ops/loki` `down` (nicht loeschen). 4. **P1** — Jellyfin und Plex in `HOMELAB_ARCHITECTURE_MASTER_V2.md`, `docs/SERVICE_CATALOG.md`, `docs/REPO_MAP.md` nachtragen. Plex-Eintrag "nicht als Repo-Stack enthalten" korrigieren. 5. **P2** — Borg-Lauf-Frische pruefen, ggf. neuen Lauf ausloesen, alle 14 Dump-Artefakte juenger als 24 h. @@ -29,4 +29,4 @@ Den Audit von oben verifizieren und die offenen Punkte abarbeiten, bis das Homel Lesen → minimal aendern → `ops/policy-checks/check_repo.ps1` lokal → Commit → Push → Komodo-Reaktion + Smoke-Test → eine Zeile in `docs/MIGRATION_LOG.md`. ## Fertig -Wenn alles abgearbeitet ist (oder ein Punkt bewusst offen bleibt): `docs/AUDIT_2026-05-23_FINAL.md` schreiben mit Ampel + konkretem Beleg pro Punkt, committen, pushen, kurz an mich melden. +Wenn alles abgearbeitet ist (oder ein Punkt bewusst offen bleibt): `docs/archive/2026-05/AUDIT_2026-05-23_FINAL.md` schreiben mit Ampel + konkretem Beleg pro Punkt, committen, pushen, kurz an mich melden. diff --git a/docs/CODEX_JELLYFIN_REMOVAL_2026-05-23.md b/docs/archive/2026-05/CODEX_JELLYFIN_REMOVAL_2026-05-23.md similarity index 99% rename from docs/CODEX_JELLYFIN_REMOVAL_2026-05-23.md rename to docs/archive/2026-05/CODEX_JELLYFIN_REMOVAL_2026-05-23.md index 58eeb53..0972158 100644 --- a/docs/CODEX_JELLYFIN_REMOVAL_2026-05-23.md +++ b/docs/archive/2026-05/CODEX_JELLYFIN_REMOVAL_2026-05-23.md @@ -4,7 +4,7 @@ Stand: 2026-05-23 Ausloeser: Operator-Entscheidung "Plex bleibt, Jellyfin weg". -Bezug: `docs/STRATEGISCHE_BEWERTUNG_2026-05-23.md` Block 9 Quick Wins. +Bezug: `docs/archive/2026-05/STRATEGISCHE_BEWERTUNG_2026-05-23.md` Block 9 Quick Wins. Du hast Vollzugriff auf `G:\Gitea_Clone\homelab-infra`, Gitea-Push, Komodo, und SSH auf Unraid `Kallilabcore`. diff --git a/docs/CODEX_KOMODO_5XX_2026-05-31.md b/docs/archive/2026-05/CODEX_KOMODO_5XX_2026-05-31.md similarity index 100% rename from docs/CODEX_KOMODO_5XX_2026-05-31.md rename to docs/archive/2026-05/CODEX_KOMODO_5XX_2026-05-31.md diff --git a/docs/CODEX_KONSOLIDIERUNG_2026-05-23.md b/docs/archive/2026-05/CODEX_KONSOLIDIERUNG_2026-05-23.md similarity index 89% rename from docs/CODEX_KONSOLIDIERUNG_2026-05-23.md rename to docs/archive/2026-05/CODEX_KONSOLIDIERUNG_2026-05-23.md index ab51596..ac7dbcc 100644 --- a/docs/CODEX_KONSOLIDIERUNG_2026-05-23.md +++ b/docs/archive/2026-05/CODEX_KONSOLIDIERUNG_2026-05-23.md @@ -4,11 +4,11 @@ Stand: 2026-05-23 Auftraggeber: Operator -Quelle: `docs/STRATEGISCHE_BEWERTUNG_2026-05-23.md` +Quelle: `docs/archive/2026-05/STRATEGISCHE_BEWERTUNG_2026-05-23.md` ## Schritt 0 — Reviewe die Bewertung kritisch -Lies `docs/STRATEGISCHE_BEWERTUNG_2026-05-23.md` komplett. Bevor du irgendetwas anfasst, sag dem Operator ehrlich: +Lies `docs/archive/2026-05/STRATEGISCHE_BEWERTUNG_2026-05-23.md` komplett. Bevor du irgendetwas anfasst, sag dem Operator ehrlich: - Wo ist Claudes Befund richtig? - Wo liegt Claude daneben oder hat etwas Wichtiges uebersehen? @@ -26,7 +26,7 @@ Erst nach Operator-Freigabe weitermachen. 1. **Externer Repo-Mirror** einrichten (GitHub privat oder zweites Gitea); Push-Mirror in Gitea aktivieren. Schliesst das groesste DR-Loch. 2. **Borg-Passphrase analog sichern** (Schliessfach oder Familienmitglied). -3. **Jellyfin entfernen, Plex bleibt.** Detail-Schritte in `docs/CODEX_JELLYFIN_REMOVAL_2026-05-23.md`. Kurzfassung: Plex-Smoke-Test → Komodo-Stop → Authelia-Bypass raus + Host-Sync → `git rm apps/jellyfin/` → Doku (MASTER 3.2/4.1/7.4/7.8, SERVICE_CATALOG, REPO_MAP, MIGRATION_LOG) → Appdata nach `_archive/` → Policy-Check → Push → Komodo-Destroy + Webhook weg. +3. **Jellyfin entfernen, Plex bleibt.** Detail-Schritte in `docs/archive/2026-05/CODEX_JELLYFIN_REMOVAL_2026-05-23.md`. Kurzfassung: Plex-Smoke-Test → Komodo-Stop → Authelia-Bypass raus + Host-Sync → `git rm apps/jellyfin/` → Doku (MASTER 3.2/4.1/7.4/7.8, SERVICE_CATALOG, REPO_MAP, MIGRATION_LOG) → Appdata nach `_archive/` → Policy-Check → Push → Komodo-Destroy + Webhook weg. 4. **Glance oder Homepage** als einziges Dashboard waehlen, das andere stoppen und aus Repo entfernen. 5. **AdGuard Admin-Port 8082** hinter Authelia oder nur via Tailscale (Block F aus MASTER 10). 6. **Authelia 2FA-Pflicht** fuer alle aktiven User verifizieren bzw. aktivieren. diff --git a/docs/DISK1_PHASE2_PLAN_2026-05-23.md b/docs/archive/2026-05/DISK1_PHASE2_PLAN_2026-05-23.md similarity index 100% rename from docs/DISK1_PHASE2_PLAN_2026-05-23.md rename to docs/archive/2026-05/DISK1_PHASE2_PLAN_2026-05-23.md diff --git a/docs/FRITZBOX_PORT_CORRECTION_PLAN.md b/docs/archive/2026-05/FRITZBOX_PORT_CORRECTION_PLAN.md similarity index 100% rename from docs/FRITZBOX_PORT_CORRECTION_PLAN.md rename to docs/archive/2026-05/FRITZBOX_PORT_CORRECTION_PLAN.md diff --git a/docs/NEXT_SPRINT_TODO_2026-05-16.md b/docs/archive/2026-05/NEXT_SPRINT_TODO_2026-05-16.md similarity index 100% rename from docs/NEXT_SPRINT_TODO_2026-05-16.md rename to docs/archive/2026-05/NEXT_SPRINT_TODO_2026-05-16.md diff --git a/docs/RECOVERY_HANDOFF_2026-05-15.md b/docs/archive/2026-05/RECOVERY_HANDOFF_2026-05-15.md similarity index 91% rename from docs/RECOVERY_HANDOFF_2026-05-15.md rename to docs/archive/2026-05/RECOVERY_HANDOFF_2026-05-15.md index 6a8c0a7..3ab0be9 100644 --- a/docs/RECOVERY_HANDOFF_2026-05-15.md +++ b/docs/archive/2026-05/RECOVERY_HANDOFF_2026-05-15.md @@ -86,4 +86,4 @@ Verifikation: ## Startprompt fuer neuen Chat -Lies zuerst `docs/RECOVERY_HANDOFF_2026-05-15.md`, dann `docs/STORAGE_LAYOUT.md`, `docs/RESTORE_MATRIX.md` und nur die Compose-Dateien des naechsten betroffenen Stacks. Fuehre den KalliLab-CORE-Restore token-sparend fort. Nichts erfinden, keine Container starten, wenn etwas gegen Storage Layout verstoesst. Backrest und WD MyBookLive Duo sind entfernt und duerfen nicht wieder ins Setup. +Lies zuerst `docs/archive/2026-05/RECOVERY_HANDOFF_2026-05-15.md`, dann `docs/STORAGE_LAYOUT.md`, `docs/RESTORE_MATRIX.md` und nur die Compose-Dateien des naechsten betroffenen Stacks. Fuehre den KalliLab-CORE-Restore token-sparend fort. Nichts erfinden, keine Container starten, wenn etwas gegen Storage Layout verstoesst. Backrest und WD MyBookLive Duo sind entfernt und duerfen nicht wieder ins Setup. diff --git a/docs/STRATEGISCHE_BEWERTUNG_2026-05-23.md b/docs/archive/2026-05/STRATEGISCHE_BEWERTUNG_2026-05-23.md similarity index 100% rename from docs/STRATEGISCHE_BEWERTUNG_2026-05-23.md rename to docs/archive/2026-05/STRATEGISCHE_BEWERTUNG_2026-05-23.md diff --git a/docs/archive/README.md b/docs/archive/README.md new file mode 100644 index 0000000..4f20643 --- /dev/null +++ b/docs/archive/README.md @@ -0,0 +1,15 @@ +# Documentation Archive + +Dieses Archiv enthaelt historische Dokumente, die nicht mehr als aktive Betriebsquelle dienen. + +Regel: + +- Datierte Audits, Chat-Handoffs, Codex-Prompts und erledigte Aktionsplaene werden unter `YYYY-MM/` abgelegt. +- Aktuelle Runbooks, Inventare, Restore-Pfade und offene Arbeitslisten bleiben in `docs/`. +- Archivierte Dateien duerfen weiterhin verlinkt werden, sollen aber nicht als Startpunkt fuer neue Arbeit dienen. + +Aktueller Archivbereich: + +| Pfad | Inhalt | +|---|---| +| `2026-05/` | Mai-2026-Audits, Zwischenstaende, Prompt-Vorlagen und abgeschlossene Plaene | diff --git a/ops/policy-checks/mem-limits-baseline.md b/ops/policy-checks/mem-limits-baseline.md index 724d17f..5cbba6e 100644 --- a/ops/policy-checks/mem-limits-baseline.md +++ b/ops/policy-checks/mem-limits-baseline.md @@ -2,7 +2,7 @@ Status: **Vorbereitung**. Echte `mem_limit`-Werte werden erst gesetzt, wenn mindestens 7 Tage realer Peak-Werte vorliegen. -Bezug: `docs/AUDIT_2026-05-25.md` F-19 "Keine Container-Memory-Limits". +Bezug: `docs/archive/2026-05/AUDIT_2026-05-25.md` F-19 "Keine Container-Memory-Limits". ## Warum nicht heute diff --git a/ops/windows-reinstall/README.md b/ops/windows-reinstall/README.md index 2d9ebd1..10216e5 100644 --- a/ops/windows-reinstall/README.md +++ b/ops/windows-reinstall/README.md @@ -5,5 +5,6 @@ Diese Skripte sind bewusst versionierte Operator-Hilfen fuer den Windows-Neuaufs - `backup-delta-after-2026-05-07.ps1` kopiert nach einem definierten Cutoff lokale Nutzdaten in ein Backup-Ziel. - `repair-disk0-boot-to-new-windows.ps1` repariert EFI/Bootdateien fuer das neue Windows auf der Intel-SSD und verlangt Adminrechte. - `cleanup-dualboot-bcd.ps1` bereinigt BCD-Bootmenueeintraege und verlangt eine explizite Textbestaetigung. +- `docs/windows-neuaufsetzen-masterplan.md` und `docs/postinstall-erstes-ziel-codex.md` enthalten die zugehoerigen Operator-Notizen. Die Skripte enthalten keine Secrets, arbeiten aber mit lokalen Windows-Datentraegern und duerfen nur interaktiv und mit vorheriger Sichtpruefung ausgefuehrt werden. diff --git a/docs/postinstall-erstes-ziel-codex.md b/ops/windows-reinstall/docs/postinstall-erstes-ziel-codex.md similarity index 97% rename from docs/postinstall-erstes-ziel-codex.md rename to ops/windows-reinstall/docs/postinstall-erstes-ziel-codex.md index 3fb2cf7..4c08ee7 100644 --- a/docs/postinstall-erstes-ziel-codex.md +++ b/ops/windows-reinstall/docs/postinstall-erstes-ziel-codex.md @@ -82,7 +82,7 @@ Wichtige Dateien: H:\Windows-Neuaufsetzen-Backup\12_Exportierte_Listen\installierte_programme_lesbar.md H:\Windows-Neuaufsetzen-Backup\12_Exportierte_Listen\kritische_programme_lizenz_check.md H:\Windows-Neuaufsetzen-Backup\09_Programme_Settings_Lizenzen\keys_exporte\banking4_license_private.txt -G:\Gitea_Clone\homelab-infra\docs\windows-neuaufsetzen-masterplan.md +G:\Gitea_Clone\homelab-infra\ops\windows-reinstall\docs\windows-neuaufsetzen-masterplan.md ``` Dann Codex/ChatGPT sagen: @@ -100,4 +100,3 @@ Reihenfolge: 3. Microsoft 365 ueber Microsoft-Konto installieren. 4. WISO Steuer installieren und Steuerdateien aus `WISO_Steuer_Dokumente` pruefen. 5. Restliche Programme mit UniGetUI/WinGet/Installern wieder aufbauen. - diff --git a/docs/windows-neuaufsetzen-masterplan.md b/ops/windows-reinstall/docs/windows-neuaufsetzen-masterplan.md similarity index 100% rename from docs/windows-neuaufsetzen-masterplan.md rename to ops/windows-reinstall/docs/windows-neuaufsetzen-masterplan.md