Homelab Zielbild & Roadmap — v3 (2026-08-24)¶
Status: FREIGEGEBEN durch Robin am 2026-08-24. ✅ Basis: Bestandsaufnahme (01-bestandsaufnahme.md)
+ 12 Frage-Runden. v2 = Seitenreview (03-seitenreview.md); v3 = Robins Gegenlesen-Runde eingearbeitet
(D1 vorgezogen & neu gerahmt, Jahresend-Ziel, E6a = Sensor-Integration, Break-Glass, Repo privat,
Extern-Server-Frage, keine APT-Mirror). Jedes Epic bekommt vor Umsetzungsstart eine kurze Design-Session,
die mit geschnittenen Issues auf dem Board endet.
Nordstern¶
Ein Homelab, das sich selbst aktuell hält und nur meldet, wenn es Robin wirklich braucht — mit Smart Home, Fotos und Medien als verlässliche Produkte für Robin + Lars, einem AI-Server mit echten Aufgaben, und einem Prozess, der Baustellen sichtbar macht und Projekte zu Ende bringt.
Die 4 messbaren Ziele — Zielmarke: 31.12.2026 (Robins Ansage: alles noch dieses Jahr): 1. Fotos: iCloud-Exit vollzogen (beide), Immich = Familienfotosystem inkl. Sharing an Dritte. 2. HA/Immich/Jellyfin von überall sicher erreichbar (VPN-Standard + gezielte Public-Exposition). 3. AI-Stack läuft nachhaltig (genutzt, gewartet, integriert — nicht nur „an"). 4. HA ist sauber und hilft im Haus (Heizung, Licht, Warnungen, Energie).
Leitplanken (entschieden 2026-08-23, geschärft 2026-08-24)¶
| Thema | Entscheidung |
|---|---|
| Plattform | Docker Compose bleibt. K8s bewusst verworfen (Migrationsaufwand, bräuchte ≥3 Nodes; bleibt Lern-/Job-Thema). Alle Server bleiben — D1 entscheidet nur das Service-Placement (Auslastung + Hardware-Fähigkeiten) |
| Zugriff | Hybrid: Tailscale-VPN Standard; Lars' Geräte früh einbinden; öffentlich später: Immich → Jellyfin → HA (HA mit Ausstiegsklausel) |
| Sharing-Brücke | iCloud-Abos laufen parallel weiter, bis Public-Immich steht (E10) — Sharing reißt nie ab |
| Secrets | Infisical Cloud EU, NUR Maschinen-Secrets (pro Stack, Agent-Pattern); persönliche Zugänge: Proton Pass (Robin) / Bitwarden (Lars); Borg-Passphrase in Proton Pass ✓ |
| Notfall | Bus-Faktor adressiert: Notfallzettel + geteilte Kern-Zugänge für Lars (E1); Gate vor E5-Abschluss und iCloud-Kündigung (E10). Robins Wunsch: Break-Glass-Zugang für ALLE Systeme (SSO-unabhängig) — Konzept in E1/E2a |
| Extern-Hosting | Hetzner-VPS steht zur Disposition (Preiserhöhungen): D1 klärt erst OB extern nötig (SaaS-Substitution möglich), dann WO (Kandidat: hosting.de). Die StorageBox (Backups) bleibt davon unabhängig |
| Deploy | GitOps mit doco-cd (Polling, Infisical-External-Secrets, ntfy): Pilot AI-Server → Hetzner → NUC. Kontrolle = PR-Merge. doco-cd selbst: digest-gepinnt, nie automerge, Rollback-Drill + Exit-Pfad |
| Updates | Renovate überall, minimumReleaseAge 7d. Gestuft: Stau abbauen → patch-automerge (Fenster nach dem Backup-Lauf) → minor-automerge erst nach bestandener E3-Abnahme; stateful Apps (Immich, HA, Paperless, DBs) Minor manuell; Major immer manuell. Host-OS gehört dazu (unattended-upgrades + Reboot-Fenster + Release-Harmonisierung — kein eigener APT-Mirror) |
| Standard | Compose-Blueprint verbindlich + CI-Erzwingung (inkl. gitleaks); Consistency-Sweep über Bestand |
| Monitoring | Kompletter Neubau, deklarativ (Checks/Alerts als Code); Alerts nur actionable (<1 Push/Woche Ziel); Strommessung + Disk-Health integrieren; Alarmkette wird positiv bewiesen |
| Dashboard | Homepage = Familien-Startseite; Grafana = 3–4 kuratierte Boards (Backup, Strom, Speed, Zigbee, AI — keine Disk-Trends) |
| Steuerstand | Claude Code ist das Betriebswerkzeug: Setup (~/.claude — Skills/Hooks/Rules/Agents + Memory) versioniert & gesichert via claude-code-setup; Skills/MCP wachsen pro Epic mit; Planungs-Docs wandern in die Doku-Drehscheibe |
| Backlog | GitHub-Issues + EIN Projects-Board über alle Repos + Abschluss-Ritual. Issues lazy: Board führt Epics, nur das aktive Epic granular (01-Doku = Backlog-Referenz) |
| Budget | Monatlich flexibel mit Begründung; Hardware nach Bedarf mit definiertem Trigger |
| Wartung | Flexibel mit Ansage an Lars; Backup-Fenster 02:00–18:00 respektieren |
Das Session-Ritual (gilt ab sofort, jede Session)¶
- Start: Board öffnen, EIN Issue/Epic-Schritt wählen.
- Ende (letzte Meile): Änderung deployt & verifiziert → Issue geschlossen (englisches
Closes #Nbzw.gh issue close) → Doku/Skill aktualisiert → Board-Status gepflegt. - Park-Ausstieg (legitim!): Nicht fertig geworden? 2-Min-Statuskommentar aufs Issue (Stand + nächster konkreter Schritt) = ebenfalls ein sauberes Ende. Nur „einfach aufhören" gibt es nicht mehr.
- Neue Funde werden Issues (2 Min), nie Kopf- oder Chat-Wissen.
Roadmap¶
E0a · Alarm & Sicherheits-Sofort — sofort, ½–1 Woche aktive Arbeit¶
Ziel: Die Alarmkette funktioniert BEWIESEN; die offenen Sicherheitslöcher sind zu.
- Fehlalarm-Killer: aiserver-borgmatic-Hook (CAP/chown) + Timer-Drop-in · 2 Kuma-Backup-Monitore · Healthchecks-SMTP-Username
- Alarmkette positiv beweisen: Testalarm → Robins iPhone (ntfy subscribers ≥ 1 dauerhaft); je gefixtem Defekt 1 provozierter Fehler
- PR #18 mergen + deployen + authelia@file an den lldap-Router · lldap-IR-Check (Logs auf fremde Logins, Admin-PW rotieren)
- Traefik-Dashboard-Credentials ersetzen · alle Klartext-Secrets rotieren — inkl. CF-DNS-Token · homelab-external-Repo auf privat stellen ✓ (Robins Entscheid 24.08.)
- Quick-Wins nach Risiko: Mosquitto-Auth (#81) (Z2M+HA gemeinsam, kurzes Fenster mit Ansage) · Open WebUI: erst Admin-Konto anlegen, DANN ENABLE_SIGNUP=false · pkv-app #48 als Issue einplanen
- CF-Tunnel: Ingress inventarisieren → Tunnel stilllegen + UDM-443-Forward aus · TS3-Forward dokumentieren
- DERP/STUN-3478-Fix (bessere Direktverbindungen — wichtig für Lars' Foto-Uploads)
- Reboots Hetzner + NUC mit Checkliste · NUT-Forensik: 2 h Timebox → sonst Workaround + Issue
Abnahme: Testalarm nachweislich auf dem iPhone · danach 7 Tage 0 Fehlalarme · lldap & Hetzner-Tools hinter Authelia · Secrets rotiert · Repo privat · Mosquitto mit Auth.
E0b · Leichen & Platz — issue-getrieben nebenher, blockiert nichts¶
- 300 GB immich-import (nur nach Import-Verifikation — sonst als E5-Issue vertagen) · 38 GB Nextcloud · Docker-Prune (~58+8+4 GB)
- Portainer · proxy-manager · pzserver · DOKUMENTATION.md ·
origin/main-Branch + Branch-Friedhöfe · Syncthing aus (Scanner→Share direkt) · Wallos-Entscheid · unbound-Healthcheck · cron.daily-borgmatic · btrfs-Scrub-Log · aiserver: Swap-Unit, Ollama-Image, orca-Leichen · samba-Log-Spam Abnahme: Benannte Leichen entfernt oder bewusst als Issue vertagt (SSD < 40 % = Richtwert, kein Blocker).
E0c · Prozess- & Steuerstand-Fundament¶
- Board „Homelab" (GitHub Projects): Epics + nur das aktive Epic granular; 01-Doku als Backlog-Referenz verlinkt
- Claude-Code-Steuerstand (der Laptop ist die Schaltzentrale — bisher unversioniert!):
claude-code-setup committen & zur Single Source machen ·
~/.claude(Skills, Hooks, Rules, Agents, Memory-Verzeichnis) versionieren/sichern · homelab-infra-Skill korrigieren (aiserver, llama-swap, kein Mac) · HA-MCP an Claude anbinden (toten Doppel-Eintrag bereinigen) · Planungsordner in die Doku-Drehscheibe überführen · Frage „Was liegt NUR auf dem Laptop?" beantworten - ha-config-Journal verifizieren (läuft der Push?) · lokale Repos synchronisieren
- Heizungs-Sensorik-Bestandsliste (TRVs laufen seit 2 Heizperioden ✓; neue Temperatur- & Fenstersensoren erfassen — Input für E6a; kein Kaufbedarf erwartet) Abnahme: Board live · Claude-Setup versioniert & gesichert · eine Session komplett nach Ritual gelaufen (inkl. einmal Park-Ausstieg geübt).
E1 · Backup & Restore-Vertrauen — P0¶
Ziel: Alles Unersetzbare ist 3-2-1 gesichert, ein Restore ist BEWIESEN — und der Wiederaufbau beschrieben.
- /mnt/immich (bzw. /mnt/pictures) vermessen + iCloud-IST beider Bibliotheken ablesen → StorageBox nach Zielvolumen dimensionieren (Snapshots zählen mit — nicht auf Kante!) · auch TR-004-Kapazität prüfen
- Fotos in beide Borg-Ketten · pkv-app-Anhänge (#61, Prio hoch) · UNAS-Datenklassen dokumentieren
- Mount-Guard (Pflicht): NFS-Mount weg ⇒ Backup-Fehler statt „erfolgreich leeres Archiv" (source_directories_must_exist o.ä.) — mit Test
- Hetzner-VPS-Backup (borgmatic → StorageBox: Identity-DBs, TOTP, Headscale-Keys, Kuma/HC-Zustand, acme.json) — lohnt auch falls D1 den VPS ablöst: schützt die Identity-Daten durch jede Migration
- StorageBox-Härtung: eigener Sub-Account je Host + automatische tägliche Snapshots, max. Slots (read-only, per SSH nicht löschbar — der Ransomware-Schutz; append-only gestrichen, s. Review D3)
- Appliance-Konfig-Backups: UDM-Pro (Pflicht — auch Eingangskriterium E9), UNAS, ESPHome, Zigbee-Coordinator + Netzwerk-Key
- Monitoring-Notpflaster (Übergang bis E3): ContainerDown je Container fixen + externer Dead-Man-Switch (z.B. healthchecks.io) · NUC-Backup-Alerts nach aiserver-Vorbild
- borgmatic-Configs (NUC+aiserver+hetzner) versionieren (Secrets via Infisical/Agent) · predeploy-Doku-Drift (#71)
- Rebuild-Runbook je Host (Compose-Repo + Infisical + Borg ⇒ Wiederaufbau; deckt den bootstrap.sh-Befund)
- Notfallzettel & Zugriffs-Teilung (Lars) + Break-Glass-Konzept (Robins Wunsch): je System ein SSO-unabhängiger Notzugang (lokaler Admin), sicher verwahrt — Detailform (Proton-Emergency vs. geteilter Bitwarden-Eintrag vs. Papier) in der Design-Session
- Lars' Geräte ins Tailnet (iPhone + Laptop) — Abnahme: 1 Woche unfallfreier Immich-Auto-Upload
- Restore-Probe (1 Datei + 1 DB + 1 Foto-Album aus Offsite) · danach quartalsweise als Kalender-Issue · Borg-Keys/Passphrasen-Export in Proton Pass verifizieren
Abnahme: Restore-Probe bestanden · ausbleibendes Backup löst nachweislich Alarm aus (Test) · Mount-weg-Test ⇒ Fehler · Lars hat den Notfallzettel einmal real durchgespielt.
D1 · Ziel-Topologie & Service-Placement — Denk-Session direkt nach E1 (Ende Sept/Anf. Okt), VOR dem doco-cd-Rollout¶
Beantwortet „Server neu sortieren?" — Robins Rahmen (24.08.): alle Server bleiben; es geht um Placement nach Auslastung & Hardware-Fähigkeiten, nicht ums Abschaffen. - Placement-Karte: Welcher Dienst liegt wo am besten? (z.B. Jellyfin bleibt am Intel-QSV/NUC — HW-Transcoding dort reifer als AMD/VAAPI, und die aiserver-GPU gehört den LLMs · Immich-ML-Kandidat aiserver → E4-Eval · was entlastet den NUC-Swap?) - Externer-Server-Frage: Brauchen wir den Hetzner-VPS überhaupt? Optionen sauber bewerten: (a) behalten, (b) SaaS-Substitution (Tailscale-Free statt Headscale, healthchecks.io als Dead-Man, ntfy-Alternativen — Zahlen/Konditionen in der Session verifizieren), (c) Anbieterwechsel (Kandidat: hosting.de — Robins Fund; Preise/Leistung prüfen). StorageBox bleibt unabhängig davon. - Ubuntu-Zielversionen je Host fließen ein (mit E2b) · Ausfall-Szenarien · Hardware-Trigger definieren (kein Kauf ohne Daten) - Ergebnis als ADR · Strom-Nachprüfung nach E3 als D1-Follow-up (Revision nur bei Überraschungen)
E2a · Secrets-Fundament¶
Ziel: Ein Ort, ein Schema, kein Klartext. - Infisical-Konzept-Session (gemeinsam): Ist-Bestand sichten, Pfad-/Namens-Konvention, Machine-Identity je Host, Rotations-Runbook, Break-Glass-Ablage → Konzept-Doc - Migration der Stacks mit Klartext-/.env-Secrets (geleakte zuerst) · gitleaks in prek + CI (Rückfallschutz!) Abnahme: 0 Klartext-Secrets in Repos (Scan grün) · Rotations-Runbook existiert. (History-Rewrite/BFG optional — mit Host-Clones/doco-cd koordinieren.)
E2b · Blueprint, CI & Host-Updates¶
Ziel: Jeder Stack sieht gleich aus; Verstöße werden rot; auch die Hosts patchen sich.
- Compose-Blueprint (Digest-Pins, Healthcheck-Pflicht, no-new-privileges+cap_drop, Infisical-only, Netz-/Traefik-Label-Konvention, Log-Rotation) + docs/blueprint.md + Referenz-Stack
- CI-Guardrails (compose config -q, promtool, yamllint, shellcheck, zizmor, gitleaks) + prek + Branch-Schutz main — Gotcha: Renovate vorm Check-Einführen pausieren!
- Host-Updates as Code: unattended-upgrades auf allen 3 Hosts + Reboot-Fenster + Reboot-Pending-Alert (via E3)
- Ubuntu-Release-Politik (Ist: 22.04 / 24.04 / 26.04 quer durch die Hosts): Zielversion je Host + Upgrade-Pfad terminieren (NUC 22.04→24.04 vor Support-Ende 04/2027; langfristig einheitlich 26.04 LTS, Placement aus D1 beachten). Kein eigener APT-Mirror/Cache — bewusst verworfen (3 Hosts, 3 Releases ⇒ Aufwand & neuer Wartungsdienst > Nutzen; Harmonisierung löst das echte Problem)
Abnahme: Test-PR mit Blueprint-Verstoß wird rot · unattended-upgrades auf 3 Hosts aktiv · Release-Fahrplan als Issue-Kette.
E2c · doco-cd-Pilot (AI-Server → Hetzner*)¶
Ziel: Merge = Deploy, beherrscht statt gehofft. (Hetzner-Teil entfällt/ändert sich, falls D1 den VPS ablöst.) - Pilot aiserver → dann Hetzner · Apprise→ntfy je Deploy - Härtung: doco-cd digest-gepinnt (nie automerge, 0.x!) · Socket-Exposition prüfen · Scheduled-Jobs-Feature meiden (Bug #1674) · Exit-Pfad dokumentiert Abnahme: Rollback-Drill bestanden* (Revert-Commit ⇒ alter Zustand ausgerollt) · Deploy via Merge mit ntfy-Meldung.
E2d · NUC-Rollout & Renovate-Politik¶
Ziel: Robins Update-Toil endet — kontrolliert. - doco-cd auf den NUC (Placement-Karte aus D1 fließt ein) · bonus-tracker ins Deploy-Schema - Renovate-Politik alle Repos (aiserver-App-Berechtigung!) · Stau kontrolliert abbauen (Immich → 3.x als geführtes Major mit Backup; Kuma/HC bei Renovate einfrieren — E3 ersetzt sie) - Dann patch-automerge scharf (Fenster nach dem Backup-Lauf); minor-automerge erst nach E3-Abnahme; stateful-Ausnahmeliste ✓ (Robin bestätigt 24.08.) - Betriebsregel-Update: „NUC-Produktions-Writes macht Robin selbst" → „Kontrolle = PR-Merge" (CLAUDE.md/Memory/Runbooks anpassen) Abnahme: Ein Renovate-Patch-Merge landet ohne Robins Zutun auf allen Hosts, mit ntfy-Meldung.
E6a · Heizung vor dem Winter — Sept/Okt; bewusste Ausnahme von „max 1 Bau-Epic" (klein & saisonkritisch)¶
Rahmen-Korrektur (Robin, 24.08.): Die Heizung läuft bereits seit 2 Heizperioden smart! Neu dazugekommen sind Temperatur- und Fenstersensoren — und „manchmal läuft es nicht so richtig gut". - Neue Sensoren sauber integrieren: Fenster-auf ⇒ Absenkung/Ventil zu · externe Ist-Temperatur je Raum statt TRV-intern (Offsets/Kalibrierung) - Zuverlässigkeit: Zigbee-Netz-Analyse (LQI/Router-Abdeckung/Kanal — Ursache fürs „Zicken" finden), Automations-Review der bestehenden Heizlogik - Voraussetzung: Mosquitto-Auth (E0a) ✓ · TRV-Handbetrieb dokumentiert (→ Notfallzettel) Abnahme: Heizautomatik inkl. neuer Sensoren läuft 2 Wochen ohne Eingriff — und Lars ist zufrieden.
E3 · Monitoring-Neubau — Robins Großumbau¶
Ziel: Ein System, dem du glaubst: alles als Code, ein Kanal, actionable-only.
- Design-Session zuerst: Zielarchitektur (Prometheus/VM/VLogs-Kern bleibt; Kuma+Healthchecks → deklarativ — Gatus als Favorit bestätigt (External Endpoints + heartbeat, ntfy nativ, Backup-Fenster via Maintenance); InfluxDB+Telegraf-Ablösung prüfen (Token-Bug bleibt bis dahin bewusst offen); HA-Prometheus-Export aktivieren; ContainerDown je Container; Alert-Policy critical=Push/warning=Digest; Dead-Man extern; Hetzner-Dienste überwachen; Reboot-Pending-Alert; SMART/Disk-Health: NUC-SSD, TR-004 (USB-Bridge, ggf. -d sat), UNAS)
- Strommessung integrieren (NUC/aiserver/UNAS/Netz) → Nachprüfung für D1
- Homepage v2 als Familien-Startseite · Grafana auf 3–4 kuratierte Boards
Abnahme: 2 Wochen Betrieb: 0 Fehlalarme + 1 injizierter Testausfall je Kategorie wird gemeldet · alle Checks/Alerts im Repo.
E4 · AI-Konsolidierung¶
Ziel: ADR-011 vollendet; der AI-Server arbeitet. - aiserver „Task 6"-Abschluss · WebUI: Modell-Kuratierung, Lars-Konto (Admin+Signup-Schließung schon E0a) - NUC-AI-Stack abschalten nach 1 Woche „vermisst-nichts" · 60 GB frei - Immich-ML → aiserver evaluieren (VOR dem E5-Massenimport; D1-Placement-Karte umsetzen) - HA-Voice-Pipeline auf aiserver-Endpunkte + Basis-Test · Tailscale auf aiserver Abnahme: Nutzungsmetrik über 2–4 Wochen (llama-swap-Ladehistorie: regelmäßige Nutzung durch beide).
E5 · Immich wird Familien-Primärsystem — braucht E1 + E2; iCloud-Kündigung = E10¶
- Lars: Immich-Konto + iPhone-Auto-Upload (via Tailscale) · Robin ebenso komplett
- iOS-Realität einpreisen: Hintergrund-Upload „holt nach" statt „sofort" (BG-App-Refresh an, App nie force-quitten, gelegentlich öffnen)
- iCloud-Bestände exportieren & importieren (beide) · Dubletten/Alben/Gesichter kuratieren · immich-import-Reste final klären
- Betriebsregeln: Speicher-Wachstum im Blick, Backup-Kette verifiziert · iCloud bleibt Sharing-Kanal bis E10 Abnahme: Beide Handys sichern nach Immich (holt binnen weniger Tage auf) · Stichproben-Restore eines Albums · Gate: Notfallzettel (E1) steht · Lars ist zufrieden.
E6 · HA-Neustart (Rest) — wichtigstes Produkt; verzahnt mit E5-Wartephasen¶
- Frische Inventur via ha-mcp (alte PR-#2-Zahlen verwerfen) → Cleanup als Issues — darf E6a-Heizung nicht brechen
- Lars als HA-User + App · Voice-Exposure erweitern, wenn Basis-Test (E4) angenommen
- Zielfelder iterativ (je Mini-Projekt mit Abnahme): Warnungen & Schutz → Licht-Automatik → Energie-Transparenz (Heizung ✓ E6a) Abnahme je Feld: Alltagsnutzen funktioniert 2 Wochen ohne Eingriff — und Lars ist zufrieden.
E7 · Paperless v3 Neustart (Greenfield nach Blueprint)¶
- Alten leeren Stack entsorgen → v3 nach Blueprint (Infisical, CI, Backup ab Tag 1 — Datenpfade in die Borg-Quellen!)
- Zulauf: Scanner → Netzwerk-Share → consume (ohne Syncthing) · Korrespondenten/Tags-Startschema
- KI: native v3-KI (
openai-like→ llama-swap,de-de; Faktencheck D8) · paperless-gpt nur falls Vision-OCR nötig · RAG-Suggestion-Performance beachten · Lars-Login Abnahme: 20 echte Dokumente gescannt → korrekt getaggt & auffindbar · Restore einer Datei geprobt.
E8 · Identity-Ausbau (intern)¶
- Authelia-OIDC-Clients von harmlos nach kritisch: Grafana, Open WebUI → Paperless, Immich (intern) → Headscale zuletzt
- HA: kein Forward-Auth vor HA (bricht Companion-App)! Weg =
hass-oidc-auth(Device-Code-Flow) — vor E8-Start Stand neu prüfen (Faktencheck D1) - Headscale-OIDC-Vorkehrungen (Faktencheck D6): Nodes neu registrieren (keine User-Migration; ACLs prüfen) ·
only_start_if_oidc_is_available: false+ Startreihenfolge + Runbook · Break-Glass: Pre-Auth-Key via SSH-CLI ·node.expirybewusst (90–180 d) - lldap-Gruppenmodell vereinfachen · CrowdSec Variante B als E10-Vorbereitung · restliche Infisical-Migrationen abschließen Abnahme: Robin+Lars melden sich an den internen Kern-Diensten mit EINEM Konto an (SSO), MFA aktiv · Headscale-Break-Glass einmal geprobt.
E9 · Netzwerk/VLAN¶
- Denk-Session schon im Nov (RFC-004 challengen: 9 VLANs vs. pragmatische 3–4) → Geräteinventar → UDM-Matrix → Umbau-Wochenende Anfang Dez mit Ansage
- Eingangskriterium: UDM-Config-Backup steht (E1) Abnahme: Erreichbarkeits-Testmatrix grün · dokumentiertes Rollback-Kriterium vorm Umbau.
E10 · Public-Exposition¶
- Frühvarianten-Prüfung schon im Nov (mit der E9-Denk-Session): Kann Public-Immich sauber isoliert auch OHNE/VOR VLAN live gehen? — fürs Jahresend-Ziel wichtig
- Immich öffentlich (OIDC + CrowdSec + Rate-Limit + DNS/UDM-443 sauber neu)
- Kündigungs-Kriterien VOR „iCloud kündigen 🎉": externer Port-/Vuln-Scan + Auth-Bypass-Test + CrowdSec-Nachweis · realer Sharing-Test mit Dritt-Empfänger · Lars-Gate · Notfallzettel aktuell
- Jellyfin öffentlich → zuletzt HA (Kriterien: hass-oidc-auth + native MFA + CrowdSec/Rate-Limit; kein Forward-Auth; sonst Ausstiegsklausel → bleibt VPN)
Dauerläufer¶
- Doku-Sanierung (eine Session nach E2) · Quartalsweise Restore-Probe · Service-Audit-Reste · Blueprint-Sweep · Modell-Radar · Steuerstand-Pflege — issue-getrieben
Reihenfolge-Logik & Kalender (v3 — Robins Ansage: alles bis 31.12.2026)¶
- Logik: Datenverlust-Risiken vor Komfort (E1) · D1 als Denk-Session direkt nach E1 (Placement vor GitOps-Rollout & Immich-ML) · Toil-Killer früh (E2) · Heizung = E6a vor der Saison · VLAN vor Public (mit Frühvarianten-Prüfung für Immich) · max. 1 aktives Bau-Epic (Ausnahme E6a); Wartephasen überlappen erlaubt
- Kalender: Sept: E0a → E0c → E1 (E0b nebenher) · E6a startet · Ende Sept/Anf. Okt: D1-Session · Okt: E2a–E2d + E6a-Abschluss · Nov: E3 · E4 · E5-Start (Uploads als Wartephase) · E9-Denk-Session + E10-Frühvarianten-Check · Dez: E5-Abschluss · E6-Kern · E7 · E8 · E9-Umbau-Wochenende · E10-Immich → iCloud kündigen vor Silvester 🎉
- Ehrliche Ansage dazu: Das ist ~2× v1-Tempo bei 5–8 h/Woche — es hält nur mit konsequentem Ritual, harten Timeboxen und ggf. Zusatzstunden in Schlüsselwochen. Sicherheitsventil (nur falls nötig, in dieser Reihenfolge rutschen): E8-Vollausbau (Headscale-OIDC) → Licht/Energie-Felder → E9/E10 als Paket. Die Familien-Kernziele (E5, E6a, Warnungen) rutschen NICHT. Re-Schätz-Punkt nach E1 (Ende Sept) mit echten Velocity-Daten.
Offen für die jeweiligen Design-Sessions (bewusst NICHT jetzt entschieden)¶
Break-Glass-Detailform (E1) · Extern-Server-Entscheid inkl. Anbieter (D1) · Gatus-Feinentscheid (E3) · Vision-OCR ja/nein (E7) · HA-OIDC-Stand neu prüfen (E8) · VLAN-Anzahl (E9) · Zensical (Doku-Session).