Strategische Bewertung: sharpen banner + add 2026-05-30 status appendix

The original 2026-05-23 baseline was kept as a historical anchor but
the banner was too soft about how much of the concrete content is
already addressed. Reading the document standalone could mislead it
as a current TODO list.

Two changes, original text untouched:

1. Banner now explicitly says the document is mostly outdated,
   not to be read as a TODO list, and that the per-finding status
   lives in an appendix.

2. New "Status-Anhang 2026-05-30" at the end maps every concrete,
   actionable finding to its current state (erledigt / geparkt /
   entschieden nicht / offen / teilweise), grouped by the original
   sections (Block 1-8) and by the Top-5 lists and Phase-1-to-4
   roadmap.

Summary of what the appendix shows:
- Top 5 sofort: 5/5 erledigt
- Quick Wins: 6/7 erledigt, 1 geparkt
- Phase 1: 4/6 erledigt, 1 geparkt, 1 wartend
- Phase 2: 2/5 erledigt, 2 geparkt, 1 offen
- Phase 3: 1 entschieden-nicht, 1 teilweise, 3 offen
- Auth-Block (F-04/13/14/18): fully parked

Original "Schulnote 2-" no longer reflects reality; new note would
land at 1- to 2 but is not the point.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-05-30 12:48:36 +02:00
parent 5c211faf87
commit 1503239881
+196 -1
View File
@@ -1,6 +1,12 @@
# Strategische Bewertung KalliLab CORE
> **Status (Stand 2026-05-30):** Historische Baseline. Hat den Audit-Zyklus 2026-05-25 angestossen und wird dort weiter referenziert (siehe `docs/AUDIT_2026-05-25.md` und `docs/AUDIT_2026-05-25_TODO.md`). Inhalt nicht mehr aendern — Aenderungen am Sollzustand laufen ueber die Audit-TODO-Liste. Wert: permanenter Audit-Anker und "wo standen wir 2026-05-23" Snapshot.
> **Status (Stand 2026-05-30): Historischer Snapshot vom 2026-05-23, inhaltlich grossteils ueberholt.**
>
> Dieses Dokument bleibt im Repo als Audit-Anker und als "wo standen wir am 2026-05-23". Die konkreten Befunde, Top-5-Listen und Mehrwert-Fahrplaene sind durch den Audit-Zyklus 2026-05-25 zu einem grossen Teil **abgearbeitet, bewusst nicht umgesetzt oder explizit geparkt**.
>
> - **Nicht als TODO-Liste lesen.** Aktuelle Arbeitsliste: `docs/AUDIT_2026-05-25_TODO.md`.
> - **Originaltext nicht aendern.** Statt Inline-Annotationen steht der pro-Punkt-Status in einer Tabelle am Ende des Dokuments (Abschnitt "Status-Anhang 2026-05-30").
> - **Schulnote 2- gilt nicht mehr.** Mit den Konsolidierungen seit 2026-05-25 sind die meisten Notenabzieher behoben; eine neue Note wuerde hier eher bei 1- bis 2 landen, ist aber kein Selbstzweck.
Stand: 2026-05-23
Bewertet von: externer Blick auf den Repo-Sollzustand
@@ -325,3 +331,192 @@ Du bist an einem Punkt, an dem das Setup mehr Substanz hat, als aktiv genutzt wi
Wenn du das in den nächsten drei Monaten machst, hast du eine private Plattform mit echtem Alltagsnutzen, klarer Wartbarkeit, und einer Wiederherstellbarkeit, die seriöser ist als das, was viele Mittelstandsfirmen für ihre Office-IT haben. Das ist das Ziel, nicht "noch ein Container".
Wenn du dann weiterausbauen willst, bist du in der Position, das aus einer Stärke heraus zu tun, nicht aus dem "ich muss noch das hier probieren"-Reflex.
---
## Status-Anhang 2026-05-30
Dieser Anhang ist nicht Teil der Originalbewertung vom 2026-05-23. Er ordnet jedem konkret handelbaren Befund den tatsaechlichen Stand nach den Audit-Sprints zu, damit das Dokument selbststaendig lesbar bleibt.
### Block 1 - Architektur
| Originalbefund | Stand 2026-05-30 |
|---|---|
| ops/grafana-influxdb + ops/loki + monitoring/ parallel im Repo | **erledigt** 2026-05-26: Altstaende entfernt, monitoring/ einziger aktiver Observability-Stack |
### Block 2 - Nutzen und Mehrwert
| Originalbefund | Stand 2026-05-30 |
|---|---|
| Plex zusaetzlich zu Jellyfin | **erledigt** 2026-05-25: Jellyfin entfernt, Plex bleibt einziger Medienserver |
| Glance + Homepage + Komodo-UI als drei parallele Dashboards | **erledigt** 2026-05-25: Homepage entfernt, Glance bleibt einziges Dashboard |
| paperless-gpt — produktiv oder weg? | **entschieden** 2026-05-28: behalten bis Paperless-NGX 3.0 native KI-Features, dann neu bewerten |
| BentoPDF — produktiv oder weg? | **entschieden** 2026-05-28: behalten als situatives Tool (~4 MB RAM-Footprint) |
| Hermes-Agent als Spielerei, Review-Deadline gesetzt | **geparkt** mit Review-Deadline 2026-07-25 |
| Speedtest-Tracker als "ich messe gerne" | unveraendert, keine Operator-Entscheidung getroffen |
| code-server — sinnvoll oder weg? | unveraendert, keine Operator-Entscheidung getroffen |
| Finanz-App (Firefly III / Actual Budget) als fehlender Mehrwert | offen, nice-to-have ohne aktiven Termin |
| Familien-SSO ueber Authelia OIDC | **geparkt** im Auth-Block (F-13) |
| Smartphone-Auto-Backup zu Immich | offen, Anwendungsentscheidung pro Familienmitglied |
| Wandtablet im Flur mit Family-Dashboard | offen, Spielwiese |
| Kalender/Aufgaben/CardDAV-Nutzung dokumentieren | offen, Operator-Frage |
### Block 3 - Best Practices
| Originalbefund | Stand 2026-05-30 |
|---|---|
| Externer Repo-Mirror als DR-Voraussetzung offen | **erledigt**: GitHub-Push-Mirror `michaelkaleschke-spec/homelab-infra` aktiv |
| Unraid USB-Flash-Backup offen | **erledigt** 2026-05-25: `unraid-flash-config.tar.gz` im Borg-Scope |
| Komodo Self-Stack Drift Mai 2026 nur dokumentiert, nicht geloest | **teilweise erledigt** 2026-05-29/30: Trockenlauf-Skript + erfolgreicher Erstlauf belegen `ops/komodo/docker-compose.yml` als Recovery-Anker; Self-Stack-Entkopplung selbst bleibt offen |
| Kein Fail2Ban/CrowdSec vor Traefik | **geparkt** im Auth-Block (F-14) |
| Renovate Bot fehlt | **erledigt** 2026-05-29: live, erster Lauf erfolgreich, 5 PRs in Gitea |
### Block 4 - Nerd-Level
| Originalbefund | Stand 2026-05-30 |
|---|---|
| Renovate Bot oder vergleichbares Update-Tracking | **erledigt** 2026-05-29 |
| Staging-Path mit zweitem Komodo-Ziel | offen, Phase 3 nice-to-have |
| OIDC-Provider statt nur ForwardAuth | **geparkt** im Auth-Block (F-13) |
| Restore-Tests automatisiert in CI (Gitea Actions / Drone) | offen, Phase 3 |
| End-to-End restore drill mit Test-Domain hinter Traefik | offen, bewusst nicht (Test-Lab bleibt ohne Domain) |
| Disk1 NTFS -> XFS Phase 2 | **erledigt** (`ALLOW_DISK1_NTFS=0` als Default im posture-check, XFS-Erwartung aktiv) |
| Loki-Retention und Log-Volume bewerten | offen, Detail-Sweep |
| Hermes-Agent loswerden | **geparkt** mit Review 2026-07-25 |
| Drei Dashboard-Tools auf eines reduzieren | **erledigt**: Glance bleibt als einziges |
| Zwei Medienserver | **erledigt**: Jellyfin entfernt |
### Block 5 - Betrieb und Wartbarkeit
| Originalbefund | Stand 2026-05-30 |
|---|---|
| Doppelter Monitoring-Stack als Wartbarkeits-Risiko | **erledigt** 2026-05-26 |
| Authelia Repo-Baseline vs. Host-Config Drift "by design" | **erledigt** 2026-05-30 (F-10): `services/authelia-diff.sh` + Posture-Check ueberwacht ACL-Drift automatisch, WORKFLOW.md hat eigene Pflicht-Sektion |
| Hermes-Agent verstaendnis-kritisch nach 6 Monaten | **geparkt** mit Review 2026-07-25 |
### Block 6 - Sicherheit und Zugriff
| Originalbefund | Stand 2026-05-30 |
|---|---|
| AdGuard Admin-Port 8082 LAN-direkt ohne Authelia | **erledigt** 2026-05-26: auf Tailscale-IP `100.80.98.33:8082` gebunden, LAN-Zugriff blockiert |
| Nextcloud ohne ForwardAuth, Brute-Force-Doku offen | **geparkt** im Auth-Block (F-18) |
| Authelia 2FA-Pflicht nicht klar dokumentiert | **geparkt** im Auth-Block (F-04) |
### Block 7 - Backup und Disaster Recovery
| Originalbefund | Stand 2026-05-30 |
|---|---|
| Externer Backup-Mirror / zweites Off-Site-Ziel | **entschieden** 2026-05-28: kein zweites Off-Site; 3-2-1 mit Live + lokalem Borg + Hetzner + H:/-Nearline erfuellt; Hetzner-Haertungen als Folge-TODOs |
| Externer Repo-Mirror | **erledigt**: GitHub-Push-Mirror aktiv |
| Unraid USB-Flash-Backup | **erledigt** 2026-05-25 |
| Borg-Passphrase analog gesichert | **erledigt** 2026-05-26: Operator bestaetigt, offline gesichert |
| Komodo-Mongo Dump-Verifikation nach Major-Upgrades | offen, Watchpoint dokumentiert, nicht im automatischen Cron |
| Restore-Tests Immich (groesster Datentopf ohne Mini-Restore) | **erledigt** 2026-05-27: erster Host-Lauf erfolgreich (`SUCCESS`, 11977 Assets) |
### Block 8 - Monitoring und Transparenz
| Originalbefund | Stand 2026-05-30 |
|---|---|
| Doppelte Tools (Uptime-Kuma vs. Blackbox, Glance vs. Homepage) | **erledigt** 2026-05-25: Uptime-Kuma und Homepage entfernt |
| Family-View Dashboard fehlt als Morgens-Check | **Spec da, JSON offen**: `docs/FAMILY_VIEW_DASHBOARD.md` definiert Layout/Queries/Thresholds; JSON wird gebaut, sobald Metriken 7+ Tage stabil sind |
| Alert-Regeln explizit listen | **teilweise**: `monitoring/prometheus/alerts.yml` enthaelt Regeln (Borg-Stale, Cert-Expiry, Container-Down), `docs/ALERTING_MAP.md` mappt Sender — eine Doku-Zusammenfassung "welche Regel feuert wann" ist noch nicht zentralisiert |
### Block 9 - Konkreter Mehrwert-Fahrplan
#### Quick Wins (≤ 1 Woche)
| Original-Punkt | Stand 2026-05-30 |
|---|---|
| Externer Push-Mirror GitHub privat | **erledigt** |
| Borg-Passphrase analog sichern | **erledigt** 2026-05-26 |
| Plex oder Jellyfin entscheiden | **erledigt** 2026-05-25: Jellyfin weg |
| Glance oder Homepage waehlen | **erledigt** 2026-05-25: Homepage weg |
| Authelia 2FA-Pflicht aktivieren | **geparkt** (F-04) |
| Disk1 NTFS -> XFS Phase 2 | **erledigt** |
| AdGuard Admin Tailscale-only | **erledigt** 2026-05-26 |
#### Phase 1 (2-4 Wochen)
| Original-Punkt | Stand 2026-05-30 |
|---|---|
| Monitoring-Migration abschliessen, Altstaende entfernen | **erledigt** 2026-05-26 |
| Uptime-Kuma abloesen durch Blackbox + Grafana | **erledigt** 2026-05-25 |
| Hermes-Agent Entscheidung | **geparkt** mit Review 2026-07-25 |
| paperless-gpt / BentoPDF Entscheidung | **entschieden** 2026-05-28: beide behalten mit Begruendung |
| Unraid USB-Flash-Backup | **erledigt** 2026-05-25 |
| Family-View-Dashboard | Spec da, JSON wartet |
#### Phase 2 (4-12 Wochen)
| Original-Punkt | Stand 2026-05-30 |
|---|---|
| Authelia OIDC fuer Nextcloud/Immich/Grafana | **geparkt** (F-13) |
| Renovate Bot gegen Gitea | **erledigt** 2026-05-29 |
| Restore-Test fuer Immich | **erledigt** 2026-05-27 |
| Familien-Smartphone-Auto-Backup zu Immich | offen, Operator-Anwendungsentscheidung |
| CrowdSec vor Traefik | **geparkt** (F-14) |
#### Phase 3 (3-6 Monate)
| Original-Punkt | Stand 2026-05-30 |
|---|---|
| Staging-Branch + zweites Komodo-Ziel | offen |
| Restore-Test-Automatisierung als CI | offen |
| Off-Site-Backup zu zweitem Ziel | **entschieden** 2026-05-28: bewusst nicht |
| Cold-Standby-Konzept dokumentieren | offen |
| Komodo-Self-Stack rausnehmen | teilweise erledigt: Bootstrap-Anker und Trockenlauf-Skript da, Entkopplung selbst noch nicht |
#### Phase 4 (Spielwiese)
| Original-Punkt | Stand 2026-05-30 |
|---|---|
| Firefly III / Actual Budget | offen |
| Wandtablet mit Family-Dashboard | offen |
| Home Assistant + ntfy enger verzahnen | offen |
| Ecowitt-Wetter-Dashboard | offen |
### Top-5-Listen vom 2026-05-23
#### Top 5 sofort verbessern
| Original-Top-5 | Stand 2026-05-30 |
|---|---|
| 1. Externer Repo-Mirror | **erledigt** |
| 2. Borg-Passphrase analog sichern | **erledigt** |
| 3. Plex oder Jellyfin entscheiden | **erledigt** |
| 4. Glance oder Homepage waehlen | **erledigt** |
| 5. AdGuard Admin-Port haerten | **erledigt** |
**Alle 5 erledigt.**
#### Top 5 mit groesstem zusaetzlichen Mehrwert
| Original-Top-5 | Stand 2026-05-30 |
|---|---|
| 1. Smartphone-Auto-Backup zu Immich | offen, Anwendungsentscheidung |
| 2. Authelia OIDC fuer SSO | **geparkt** |
| 3. Renovate Bot gegen Gitea | **erledigt** |
| 4. Family-View-Dashboard | Spec da, JSON wartet |
| 5. Finanz-App | offen |
#### Top 5 lieber NICHT machen
| Original-Anti-Top-5 | Stand 2026-05-30 |
|---|---|
| 1. Hermes-Agent ausbauen statt loswerden | gehalten — Agent geparkt mit Review, nicht ausgebaut |
| 2. Noch mehr Dashboards einbauen | gehalten — Homepage entfernt, Glance bleibt einziges |
| 3. Pauschale Authelia vor Komodo | gehalten — Komodo bleibt ohne ForwardAuth |
| 4. backend_net auf external statt internal | gehalten — backend_net bleibt internal |
| 5. Komodo Self-Stack komplett via Komodo | teilweise gehalten — Trockenlauf-Skript als Gegenmaszahme, vollstaendige Entkopplung offen |
### Zusammenfassung des Status-Anhangs
- **Top 5 sofort**: 5/5 erledigt.
- **Quick Wins (7)**: 6 erledigt, 1 geparkt.
- **Phase 1 (6)**: 4 erledigt, 1 geparkt, 1 wartend.
- **Phase 2 (5)**: 2 erledigt, 2 geparkt, 1 offen.
- **Phase 3 (5)**: 1 entschieden (nicht umgesetzt), 1 teilweise, 3 offen.
- **Phase 4 (Spielwiese)**: alle offen, bewusst niedrige Prioritaet.
- **Auth-Block (F-04/13/14/18)**: vollstaendig geparkt nach Operator-Entscheidung 2026-05-26, gebuendelte Bearbeitung ausserhalb des aktuellen Zyklus.
Wer hier weiterarbeiten will, schaut auf `docs/AUDIT_2026-05-25_TODO.md` — dort ist der operative Stand gepflegt.