Zum Inhalt

Homelab-Bestandsaufnahme — 2026-08-23

Erhoben in einer Read-only-Session: 6 Repos analysiert (homeserver, aiserver, homelab-external, ha-config, homelab-documentation, claude-code-setup), 3 Server live inspiziert (NUC, AI-Server, Hetzner-VPS), GitHub-Issues/PRs ausgewertet, doco-cd recherchiert. Nichts wurde verändert. (Einziger Seiteneffekt: ein 401-Logeintrag in HA durch einen curl-Test.)


1. Gesamtbild in fünf Sätzen

Das Homelab ist substanziell in besserem Zustand als gefühlt: 65/65 Container auf dem NUC laufen, der AI-Server ist fertig aufgebaut (nicht halb!), das NUC-Backup läuft nächtlich auf zwei Ziele mit vollen Consistency-Checks, die Doku-Drehscheibe ist aktuell gepflegt. Das Gefühl „Überblick verloren" kommt nicht von fehlender Arbeit, sondern von einem wiederkehrenden Muster: Projekte werden zu 90 % fertig, dann fehlt die letzte Meile (Merge, Scharfschalten, Doku-Nachzug, Issue schließen) — und ohne sichtbaren Abschluss wirkt alles unfertig. Es gibt zwei echte P0-Probleme: Die Immich-Fotos und Paperless-Dokumente sind nicht im Backup, und die Alerting-Kette ist an ≥7 Stellen unabhängig voneinander defekt — deine Wahrnehmung („bringt mir nichts, alarmiert falsch") ist zu 100 % korrekt und jetzt Punkt für Punkt belegt. Alles andere ist Hygiene, Abschlussarbeit und bewusste Zukunftsentscheidungen (VLAN, Identity/OIDC, GitOps-Deploy).


2. Maschinen-Status

Host Zustand Auffälligkeiten
NUC 10.10.10.3 (Ubuntu 22.04, Kernel 5.15) 65/65 Container up, 0 failed Units, RAID5 clean Reboot ausstehend (libc6), 86 d Uptime, Swap 100 % voll, SSD 63 % (davon ~338 GB Leichen), NUT-Restart-Loop (551×)
AI-Server 10.10.10.7 (Ubuntu 26.04, Strix Halo, 128 GB) 5/5 Container healthy, idle 9–10 W GPU borgmatic-Hook defekt (Fehlalarme seit 14.08.), Swap-Unit rot, kein Tailscale, Ports LAN-offen ohne Auth
Hetzner-VPS 49.13.70.218 (CX23, Ubuntu 24.04) 12/12 Container up, UFW+fail2ban sauber Kein Backup! Reboot ausstehend seit 29.07., Auto-Update-Cron fehlt (Server seit 14.07. eingefroren), keine Docker-Log-Rotation
UNAS Pro 10.10.10.150 91 TB RAID6, 22 TB belegt, NFS v3 nicht direkt inspiziert; NfsMountLost /mnt/unas feuerte historisch 61×
UDM Pro 10.10.10.1 flaches Netz 10.10.10.0/24, kein VLAN Port-Forward 443→NUC liegt an, aber *.home.… ist öffentlich NICHT auflösbar → faktisch ungenutzt
Tailnet (Headscale) nuc + hetzner online iPhone/iPad/Mac sporadisch, novabrands-mgmt seit 05.05. tot

Außenfläche heute (verifiziert via DNS): öffentlich erreichbar sind nur die Hetzner-Dienste (*.homelab-external.…), docs.robinwerner.net (Cloudflare Pages+Access) und was der Cloudflare-Tunnel exponiert (Ingress nur im CF-Dashboard sichtbar — im Repo unsichtbar, zu klären!). *.home.… existiert öffentlich nicht.


3. Die Kernbefunde (nach Schwere)

🔴 P0-1 · Fotos & Dokumente sind nicht im Backup

  • borgmatic-Quellen (beide Configs): /etc, /opt, /root, /home, /var, /mnt/ssd/container-data/mnt/immich (bzw. live /mnt/pictures) und /mnt/paperless fehlen. Das sind exakt die zwei unersetzbaren Datenbestände.
  • UNAS-RAID6 ist Redundanz, kein Backup (Löschung/Ransomware/Bug repliziert sofort).
  • Immich-DB ist gesichert (liegt auf SSD, nächtliche Dumps laufen nachweislich) — ohne Bilddateien aber fast wertlos.
  • Rahmenbedingung: StorageBox 1 TB (58 % belegt) → für Fotos vermutlich zu klein → Größen-/Kostenentscheidung nötig.
  • Positiv als Basis: Die NUC-Backup-Maschine selbst ist top (täglich 2 Ziele, Prune/Compact, volle Repo- und Archiv-Checks, 19 Archive bis Jan zurück, DB-Dumps vorher).

🔴 P0-2 · Alerting ist faktisch blind — 8 unabhängige Defekte

  1. ntfy: subscribers=0 über 8 Tage durchgehend — kein Client hält je eine Verbindung. Meldungen versauern im Cache. (iOS-Zustellung via ntfy.sh-Upstream unklar → praktisch testen.)
  2. Uptime-Kuma-Backup-Monitore strukturell kaputt: tägliches Backup mit 60-s-Push-Fenster → dauerhaft rot → ein echter Ausfall kann keinen Statuswechsel mehr auslösen.
  3. ContainerDown (der wichtigste Alert) feuert praktisch nie: absent() über 5er-Regex wird erst leer, wenn alle fünf Container gleichzeitig weg sind.
  4. Healthchecks-Mails gehen vermutlich ins Leere: EMAIL_HOST_USER im falschen SMTP2GO-Format (Mailadresse statt robinwerner.net-<name>) — bei Authelia am 14.07. gefixt, bei Healthchecks nie.
  5. Dauerfeuer + Einheitspriorität: 61× NfsMountLost, 30× HighCPU, alles critical/Priority 5 → Alarm-Müdigkeit.
  6. AI-Server-Fehlalarm seit 14.08.: borgmatic-Hook scheitert an Rechten (CAP_DAC_OVERRIDE fehlt; Zielverzeichnis robin:robin) → 9 Nächte „Backup fehlgeschlagen" + AiserverBackupStale critical, obwohl Backups laufen.
  7. Niemand überwacht den Wachposten: kein Monitor für die Hetzner-Dienste selbst, kein Dead-Man's-Switch von außen.
  8. NUC-Backup hat NULL Monitoring (kein Alert, keine Hook-Pings) — der AI-Server hat dafür 3 Regeln, die Hauptmaschine keine. (Live pingt der Nachtlauf Healthchecks+Kuma — aber genau diese Empfänger sind Punkt 2/4.)
  9. Strukturproblem dahinter: Alle Monitor-/Alarm-Definitionen leben unversioniert als Klick-Zustand in DBs (Kuma-MariaDB, HC-Postgres) — nicht reviewbar, nicht reproduzierbar, nicht gesichert.
  10. Dazu Grafana: InfluxDB-Datasource ohne Token (env wird nie injiziert) → Speedtest/HA-Longterm-Panels tot; HA-Prometheus-Export live nicht aktiv → HA fehlt komplett im Monitoring.

🔴 P0-3 · USV-Shutdown-Kette unzuverlässig

  • nut-upsd-Container: 551 Restarts (sauberes SIGTERM — irgendetwas startet ihn von außen neu, Ursache unbekannt); Host-nut-monitor verliert dabei jedes Mal die Verbindung (57× „Data stale" in 7 Tagen). Bei Stromausfall im falschen Moment kein sauberer Shutdown. USV selbst gesund (100 %, ~24 min Runtime).

🟠 P1-4 · Identity: ein Commit vom Schutz entfernt, aber 3 Löcher

  • Authelia + lldap laufen seit 14.07. healthy auf Hetzner; Forward-Auth fertig geschrieben in PR #18 — seit 40 Tagen mergebar (0 technische Blocker laut GitHub).
  • lldap-Admin-UI steht OHNE Authelia im offenen Internet (Router hat die Middleware nicht — auch PR #18 fixt das nicht; nur lldap-eigener Login, kein 2FA, kein Rate-Limit).
  • OIDC = 0 % — der eigentliche Zielzustand (Entscheidung 29.06.: nativer OIDC für Immich/HA/Grafana; Forward-Auth nur für Hetzner-Tools; CrowdSec Variante B). Plan A Tasks 6–8 offen; Task-6-Plan liegt nicht im Repo.
  • Hetzner-VPS ohne jedes Backup → Serververlust = alle TOTP-Enrollments, Headscale-Node-Keys, lldap-User, Monitor-Definitionen, acme.json weg.
  • Nebenbefunde: Repo ist public (bewusst?); hardening.conf (SSH) kam nie auf dem Server an; DERP/STUN 3478 fehlverdrahtet (Ports am falschen Container) → schlechtere Direktverbindungen; bootstrap.sh kann den Identity-Stack nicht mehr reproduzieren (Secrets/Verzeichnisse fehlen im Skript); teardown.sh hinterlässt Dangling-DNS (auth, ldap).

🟠 P1-5 · AI-Server fertig, aber ungenutzt — und NUC fährt den Doppelstack weiter

  • llama-swap mit 10 Rollen läuft seit 2 Wochen stabil; in 14 Tagen kein einziges Heavy-Modell geladen. Open WebUI: kein Konto angelegt, ENABLE_SIGNUP=true offen im LAN.
  • Der „Drive-Verlust" ist datierbar: 14.08. 11:56 beide PRs gemergt → nur Task 6 („Abschluss": CLAUDE.md/Memory/Verifikation) fehlte → CLAUDE.md behauptet seither fälschlich „Rollout offen". Dazu 9 Nächte Fehlalarme.
  • NUC-seitig läuft parallel der komplette Alt-Stack (ollama-ipex, ollama-vision, Open WebUI v0.10.2, Voice parakeet+piper) — ADR-011 sagt: llama-swap ist das einzige Backend. Gehalten wird der NUC-Stack von der RAG-Kette (Qdrant + Docling + Open-WebUI-RAG), die auf dem AI-Server nicht nachgebaut ist.
  • HA-Voice nutzt Gemini 2.5 Flash (bewusst, dokumentiert) + NUC-Wyoming — Umstellung auf AI-Server-Endpunkte + Wake-Word (Stage 2) offen. Paperless-v3-Plan (Juni) zielt noch auf NUC-Ollama → kollidiert mit ADR-011, ist auf llama-swap-Rollen (ocr/json existieren!) umzuplanen.
  • AI-Server: kein Tailscale, kein Traefik (wartet bewusst auf RFC-002/Headscale-Umbau); Inferenz-Ports LAN-offen ohne Auth.

🟠 P1-6 · Sicherheit im flachen Netz

  • 8 Klartext-Secrets im homeserver-Repo (privat, aber: Git-History, Bot-Zugriffe): TUNNEL_TOKEN (volle Tunnel-Kontrolle), traefik/.env mit Cloudflare-DNS-Token ist getrackt (vor der gitignore-Regel committet, in keinem Issue!), Paperless-Secret-Key, Sonarr/Radarr-API-Keys, TS3-DB-Passwörter, Traefik-Dashboard admin/admin, HC-Ping-UUID, Postgres-Fallback paperless.
  • Traefik hat keine Security-Middlewares (kein Rate-Limit, keine IP-Allowlist, keine Header außer 2) — CLAUDE.md behauptet das Gegenteil (Copy-Paste-Doku als Quelle).
  • Mosquitto ohne Auth auf :1883 → jeder im LAN kann Zigbee schalten/HA-Zustände lesen. Ollama :11434/:11435, InfluxDB :8086, AI-Server-Ports — alles LAN-offen ohne Auth. Im flachen Netz (kein VLAN, RFC-004 nur draft) ist „LAN = vertrauenswürdig" die tragende Annahme.
  • Portainer mit rw-Docker-Socket; docker.sock auch an Headplane/Traefik (:ro schützt nicht vor API-Writes).
  • Secrets-Zielbild (Robin): alles in Infisical (eu.infisical.com) — Ist: Agent-Pattern läuft sauber für 2/27 Stacks, Konzept angefangen, unstrukturiert.

🟡 P2-7 · Stille Funktionsdefekte (gefunden nebenbei)

Defekt Wo
Syncthing→Paperless-Kette gebrochen (consume-Pfad paperless-ngx/ vs paperless/) NUC (sofern kein Symlink)
unbound-Healthcheck kaputt (drill-hc fehlt im Image), 118k Fails, seit 41 d unhealthy NUC
/etc/cron.daily/borgmatic scheitert täglich still (PATH); Doppel-Backup-Zeitbombe NUC
btrfs-Scrub-Log wertlos (status direkt nach start) — Scrub selbst ok NUC
docling-serve ohne Volume (Modell-Cache flüchtig) NUC
ha-config-Journal: Cron läuft 15-minütlich, aber nur 2 Commits ever (03.07.) — push ok? NUC
Secrets im Journal (Kuma-Push-Token, HC-UUID klartext, adm-lesbar) NUC
Samba nmbd flutet Error-Log (15 Docker-Bridges) NUC
Swap-Unit rot (btrfs-Swapfile-Falle) AI-Server
8 verwaiste orca-remote-Prozesse (~750 MB) AI-Server
dockge-ACME-Leiche: täglicher Zertifikats-Fehler Hetzner
Traefik (Hetzner) als einziger Container ohne Healthcheck Hetzner
Headscale-Node novabrands-mgmt seit 05.05. tot; lldap-User lars ohne Headscale-Konto; vpn-users-Gruppe wirkungslos Hetzner

🟡 P2-8 · Platz & Leichen

  • NUC-SSD: 300 GB /mnt/ssd/tmp/immich-import (seit 19.04. unberührt, von keinem Container gemountet) + 38 GB Nextcloud ohne Container + 58 GB reclaimable Images + 7,7 GB verwaiste Volumes.
  • Repo-Leichen: pzserver/ (nicht baubar), proxy-manager/ (Port-Kollision mit Traefik, tot, Issue #82), monitoring-stack/DOKUMENTATION.md (629-Zeilen-Duplikat von März), lokaler Branch namens origin/main (Stolperfalle), 10 [gone]- + ~18 verwaiste renovate-Branches, bonus-tracker läuft außerhalb des Deploy-Repos mit uncommitteter Prod-Änderung.
  • AI-Server: 8 GB Ollama-Image ungenutzt. Hetzner: 4 GB verwaiste Images.

🟡 P2-9 · Update-/Deploy-Prozess

  • Renovate-Stau: homeserver 28 ausstehende Image-Updates (10 PRs + 18 rate-limited, inkl. 8er-Major-Gruppe: Homepage v2, Paperless, ha-mcp…; Immich 2.7.5→3.1.0 ist ein Major dahinter), external 8 (inkl. Kuma 2.5, Headscale 0.29 — Vorsicht: Kuma-Update kann die verifizierten Bypass-Regexe brechen), docs 6 PRs. Kein minimumReleaseAge, kein automerge (außer external: Patch-Automerge ohne Checks — riskant andersherum). aiserver: renovate.json liegt da, App nie berechtigt → 0 Bot-Aktivität.
  • Deploy überall manuell (SSH + git pull + compose up); Hetzner-Auto-Update-Script existiert, Cron fehlt → Server seit 14.07. eingefroren. Policy-Konflikt zu klären: Der gelebte Grundsatz „Produktions-Writes macht Robin selbst" vs. Wunsch nach doco-cd-GitOps.
  • doco-cd-Recherche (Kurzfazit): passt ungewöhnlich gut — Polling (NAT gelöst), natives Infisical inkl. eu-Instanz, Renovate-first, Apprise→ntfy, eine schlanke Instanz pro Host. Risiken: v0.x, hohe Release-Kadenz, Bus-Faktor 1, kein Auto-Rollback (Revert-Commit-Modell). Alternativen: GH-Actions+Self-hosted-Runner (Platz 2), Komodo (zu schwer), Portainer (UI-zentriert), Watchtower (Original archiviert; passt nicht zu digest-Pins).

🟡 P2-10 · Prozess & Wissens-Hygiene (die Wurzel des „Überblick verloren")

  • Stillstands-Daten: ha-config 03.07. (MCP-Rollout Schritt 5) · homelab-external 14.07. (PR #18 offen) · homeserver 13.07./14.08. · aiserver 14.08. (nur „Abschluss"-Task fehlte) · claude-code-setup 07.07. (+22 Tage uncommitted). Muster: fertig bis auf die letzte Meile, kein Abschluss-Ritual, kein Ort, der „offen" anzeigt.
  • Issues sind write-only: homeserver 17 offen / 0 je geschlossen (dt. „Schließt #NNN" schließt nicht — bekanntes Gotcha); ha-config/aiserver nutzen gar keine Issues; RFCs haben null Tracking-Issues; Pläne liegen in offenen/geschlossenen PRs begraben (HA-Cleanup PR #2, 88 Tage; Paperless-v3 #139; borgmatic-Hooks #71; Immich-pg16 #54).
  • Keine CI im homeserver-Repo (27 Stacks, 15 Alert-Regeln — kein compose-config-Check, kein promtool), kein Branch-Schutz, 35 Direkt-Commits vom NUC.
  • Doku-Schichten: 18.08.-Welle top (AI, Identity, Architektur) — aber 50 Dateien vom 21.03. nie angefasst (ADR-001–010, ganzer Backup-Block, viele Service-Docs mit veralteten Versionen); RFC-002 kennt noch OVH; ADR-006 verweist auf archiviertes claude-pi.
  • ~/.claude/ ist ein Single Point of Failure: Skills/Hooks/Rules (inkl. homelab-infra mit dem gesamten Infra-Wissen) existieren genau 1× unversioniert auf diesem Laptop. Skill selbst veraltet (kennt AI-Server nicht). auto-docs-update wurde einmal gebaut und wieder beerdigt; AGENTIC-ROADMAP untracked und halb überholt (agentmemory-Prämisse).
  • Unbekanntes Objekt: Repo k3s-hetzner (zuletzt 16.08.) — taucht in keiner Doku auf.

4. Was solide ist (nicht anfassen, drauf aufbauen)

  • Backup-Engine NUC: borgmatic 2 Ziele, nächtlich, volle Checks, DB-Dumps, saubere Retention. Nur Abdeckung + Monitoring fehlen.
  • AI-Server-Substanz: Turnier-basierte Modellauswahl (dokumentiert!), llama-swap-Rollenkarte, Hardening, Digest-Pins, GPU-Metriken, eigenes Backup.
  • Doku-System: MkDocs+LikeC4+ADR/RFC-Struktur mit CI (SHA-gepinnt) — besser als 95 % aller Homelabs; es fehlt der Pflege-Loop, nicht das System.
  • Headscale/VPN: läuft stabil, saubere Tags/ACL-Grundlage, Headplane-UI.
  • Hetzner-Grundhärtung: UFW eng, fail2ban wirksam, Container-Hardening (cap_drop, no-new-privileges) durchgängig, Images gepinnt.
  • HA-Substanz: 2 durchdachte Dashboards, Packages-Struktur, dreifach gesichert (borgmatic + predeploy + auto_backup); Inventur + 11-Schritte-Cleanup-Plan liegen fertig.
  • Prozess-Werkzeuge existieren: Infisical-Agent-Pattern, prek, Renovate, superpowers-Planungsdisziplin — sie sind nur nicht flächig ausgerollt.

5. Offene Entscheidungen (Robin) — Katalog

Grundsatz/Rahmen 1. Nutzerkreis: Wer außer dir nutzt was (Haushalt? lars? weitere)? → bestimmt SSO-, Immich-, Voice-Scope. 2. Externer Zugriff: Was muss wirklich von außen gehen — VPN-first (Tailscale für dich/Familie) vs. öffentliche Exposition + OIDC (Plan B)? Was exponiert der Cloudflare-Tunnel heute? 3. Zeitbudget/Woche + Arbeitsmodus (issue-getriebene Sessions? Wochenend-Blöcke?). 4. Offsite-Budget Fotos: StorageBox-Upgrade (1→5 TB ≈ +9 €/Mon) oder Selektiv-Backup?

Alerting 5. Für welche Ereignisse willst du wirklich geweckt werden (Zielbild: <1 Alarm/Woche)? Kanal-Konsolidierung (ntfy only)? iOS-Zustellung testen. NfsMountLost — bekannter Dauerzustand oder echtes Problem? 6. Deklaratives Monitoring: Kuma-Klickzustand ins Repo exportieren oder durch Gatus o.ä. (config-as-code) ersetzen?

Identity 7. PR #18 mergen+deployen? lldap-UI sofort schützen (auch ohne PR)? OIDC-Client-Reihenfolge (Headscale? Immich? Grafana? HA?)? Wo liegt der Task-6-Plan? 8. homelab-external public lassen?

Deploy/Updates 9. GitOps (doco-cd) einführen → bricht bewusst mit „Robin deployt selbst". Ja/nein, und falls ja: welcher Host zuerst? Renovate-Standard (minimumReleaseAge 7d, automerge patch nach CI) überall durchziehen?

AI 10. RAG-Kette (Qdrant/Docling/WebUI) auf AI-Server nachbauen → NUC-Ollama-Stack abschalten (ADR-011 vollenden)? Open WebUI konsolidieren (eine Instanz, welche)? Familie als Nutzer? 11. HA-Voice auf AI-Server-Endpunkte + Wake-Word (Stage 2)? Paperless-v3-Plan auf llama-swap umschreiben? Immich-ML perspektivisch auf AI-Server? 12. AI-Server: Tailscale + Traefik jetzt oder weiter auf RFC-002 warten?

Netz 13. VLAN (RFC-004): dieses Jahr angehen? Voraussetzungen: Geräteinventar, UDM-Firewall-Matrix, Wochenend-Fenster.

HA 14. Cleanup-Plan (11 Schritte, PR #2): ausführen? Als Issues zerlegen? Widerspruch Schritt 7 vs. 10 (Lichtgruppen vs. Szenen) auflösen. Voice-Exposure 32→92? HA-MCP an Claude anbinden (welcher der 2 Einträge)?

Storage/Backup 15. Hetzner-VPS-Backup (Borg → StorageBox oder NUC)? UNAS-Datenklassen definieren (was ist Priorität A)? Restore-Probe terminieren? borgmatic-Configs ins Repo versionieren?

Dashboard 16. Homepage (v1→v2 Major ansteht, Config unversioniert, 2 offene ToDos) ernsthaft ausbauen, mit Grafana verheiraten — oder bewusst streichen? Was würdest du täglich wirklich öffnen?

Kleinvieh (Sammel-Freigabe) 17. Reboots NUC+Hetzner; 300 GB immich-import (nach Verifikation) + 38 GB Nextcloud löschen; pzserver/proxy-manager/DOKUMENTATION.md/origin/main-Branch entfernen; Portainer behalten?; NUT-Fix; unbound-Healthcheck; cron.daily-borgmatic; scheudler-Typo; k3s-hetzner erklären. 😊


6. Rohmaterial

Die 9 Detail-Reports (Repo-Analysen, Server-Inspektionen, doco-cd-Recherche) liegen im Session-Transkript. Dieses Dokument ist die konsolidierte Sicht; Detailfragen → Reports.


7. Nachträge aus der Session (Robins Wünsche)

  1. Service-Audit: Alle ~65 Dienste nacheinander durchgehen — „brauche ich das wirklich noch?" (Kandidaten aus der Analyse: proxy-manager, pzserver, Portainer, Snowflake, TS3, InfluxDB+Telegraf, NUC-Ollama-Stack, doppelte Open WebUIs, homebridge-Reste, Nextcloud-Daten, wallos, vscode-server, …)
  2. Compose-Blueprint: Ein verbindlicher Standard, wie jede Compose-Datei aussehen muss (Basis vorhanden: Hardening-Muster aus aiserver/homelab-external — no-new-privileges, cap_drop, Digest-Pins, Healthchecks, Secrets via Infisical, Netz-Konvention, Traefik-Labels, Logging). Danach Consistency-Sweep über alle Stacks (deckt Issue #83, #74, Pinning-Lücken ab).
  3. Secrets-Zielbild: ALLE Homelab-Secrets & Zugänge strukturiert in Infisical (Konzept begonnen, unstrukturiert; Agent-Pattern als technische Basis vorhanden).

8. Korrekturen & Antworten aus dem Gespräch (laufend gepflegt)

  • Paperless ist NICHT produktiv — nur einmal hochgezogen, es sind keine Dokumente drin. (Lehre für die ganze Analyse: „Container läuft" ≠ „wird genutzt" — Nutzung wird pro Dienst separat erfragt.) → Backup-Lücke /mnt/paperless ist damit aktuell gering; Backup wird Go-Live-Voraussetzung.
  • Nutzerkreis: Robin + Partner Lars. Keine Zugänge für externe Dritte geplant. (Formulierung korrigiert 24.08. — stammte aus der Zeit vor der Klärung lars=Partner)
  • Zugriff von unterwegs: ausschließlich Tailscale/VPN. → Cloudflare-Tunnel-Zweck unklar, UDM-Port-Forward evtl. abschaltbar.
  • Foto-Offsite: Messen → StorageBox passend erweitern, Fotos (+ später Dokumente) in die Borg-Kette.
  • Zeitbudget: 5–8 h/Woche.
  • Alerting-Philosophie: nur actionable & selten (<1 Push/Woche als Ziel).
  • ntfy auf iOS: Pushes kamen grundsätzlich schon an → Transport funktioniert(e), Problem sind die Auslöser.
  • Monitoring-Sanierung: Robin will direkt den großen Umbau auf ein deklaratives Ziel-Setup (nicht inkrementell).
  • NfsMountLost-Dauerfeuer: überrascht Robin → zuerst Alert-Konstruktion prüfen, nicht NFS verdächtigen.

Antworten Runde 0 + 3 (2026-08-23)

Birds-View: - Motive: alle — Reihenfolge passt: Datensouveränität > Lernen > Familien-Services > Basteln > eigene Apps. - 12-Monats-Bild: (1) Fotos raus aus iCloud → Immich für beide; (2) HA/Immich/Jellyfin von überall sicher erreichbar; (3) AI-Stack läuft nachhaltig; (4) HA sauber und hilft im Haus. - Produkt-Dienste (müssen zuverlässig): Smart Home (Zigbee+HA) an erster Stelle, dann Jellyfin, Immich, pkv-app. - K8s: bewusst NEIN fürs Homelab (Migrationsaufwand + bräuchte 3 Nodes) — Compose bleibt; K8s = Lern-/Job-Thema. k3s-hetzner inaktiv. - Maschinen-Rollen: Robin will das Gefüge ernsthaft hinterfragen (Architektur-Diskussion einplanen). - Energiefresser = Aktuell-Halten + ständig neue Baustellen (Spaß ist alles andere) → Plan-Nordstern: Wartungs-Toil minimieren.

Ist-Klärung: - CF-Tunnel: war für Homelab-Fernzugriff, durch Tailscale ersetzt → Stilllegungs-Kandidat (erledigt auch Secret-Issue #77). - k3s-hetzner: altes, inaktives Projekt. - lars = Partner — braucht Zugriff auf viele Services (Liste noch offen). - Nutzung: Immich (Robin aktiv, Partner soll dazu) · Jellyfin+arr (beide, Produkt) · Open WebUI NUC: unbenutzt → soll auf aiserver · TS3 (mit Freunden! → Wie verbinden die sich? Klären) · Snowflake behalten · Wallos hinterfragen · vscode: behalten (Quick-Edits) · Speedtest: behalten · pkv-app: wichtig · bonus-tracker: behalten · Syncthing: läuft aktuell nutzlos, Zukunft = Scanner→Paperless · ESPHome = Serverschrank-Lüftung · Portainer tot → entfernen. - immich-import 300 GB = Dropbox-Bilder, Import „sollte drin sein" → verifizieren, dann löschen. - UNAS 22 TB: Filme/Serien (Großteil) + Monitoring + Bilder. Keine weiteren unersetzbaren Bestände genannt. - HA-Voice: komplett ungenutzt (auch Gemini-Pipeline nicht im Alltag). - NUT-Restarts: Ursache unbekannt → Untersuchungsauftrag. - Infisical: Ziel „alle Zugänge+Secrets", Ist-Stand unbekannt → gemeinsame Review-Session.

Entscheidungen Runden 4–8 (2026-08-23)

Thema Entscheidung
Fernzugriff Hybrid: VPN (Tailscale) als Standard; Immich, Jellyfin und HA sollen perspektivisch öffentlich erreichbar werden — mit OIDC/Schutzschicht (CrowdSec, Rate-Limits).
TS3 Freunde kommen via UDM-Port-Forward → in Außenflächen-Inventur aufnehmen & absichern, Dienst bleibt.
Lars braucht Immich, Jellyfin, Home Assistant, Paperless (eigene Konten).
Alt-Zugänge CF-Tunnel-Ingress inventarisieren → Tunnel + UDM-443 stilllegen (bis Public-Exposition bewusst neu aufgebaut wird).
GitOps doco-cd: Pilot auf AI-Server → Hetzner → NUC (Polling, Infisical-Integration, ntfy-Notify). Kontrolle wandert zum PR-Merge.
Renovate Patch+Minor automerge nach CI, Major manuell; minimumReleaseAge: 7d; erst Stau kontrolliert abbauen, dann Automerge scharf.
Blueprint Voller Standard mit CI-Erzwingung (Pins, Healthchecks, Hardening, Infisical-only-Secrets, Netz-/Label-Konventionen) + schrittweiser Consistency-Sweep über 27 Stacks.
CI/Schutz Volle Guardrails (compose config, promtool, yamllint, shellcheck, zizmor, prek) + Branch-Schutz auf main.
NUC-AI-Stack Komplett abschalten ohne RAG-Nachbau (ADR-011 vollenden); aiserver-WebUI wird die Chat-Oberfläche.
Voice Erst Basis testen: Pipeline auf aiserver-Endpunkte, per HA-App testen; Wake-Word/Hardware erst bei echter Nutzung.
Open WebUI Konten für Robin + Lars, Signup danach schließen; später OIDC.
Paperless Frisch mit v3 + KI-Kette (llama-swap ocr/json; paperless-gpt vs. native KI im Teilprojekt recherchieren); Scanner→Netzwerk-Share→consume (ohne Syncthing; korrigiert 24.08.); Backup ab Tag 1. (Faktencheck 24.08.: v3 hat native KI — paperless-gpt nur noch für Vision-OCR nötig.)
HA-Cleanup Alten Plan verwerfen, frisch inventarisieren (via ha-mcp), dann als Issues abarbeiten.
HA-MCP An Claude Code anbinden (toten Doppel-Eintrag bereinigen).
VLAN Erst gemeinsam durchdenken (RFC-004 challengen: 9 VLANs vielleicht zu viel) — Termin erst danach.
Dashboard Homepage als Familien-Startseite + Grafana auf 3–4 kuratierte Dashboards eindampfen.
Backlog GitHub-Issues + 1 Projects-Board über alle Repos + Abschluss-Ritual (jede Session endet mit Issue-/Doku-Pflege, engl. „Closes #"). RFCs bekommen Tracking-Issues.
Doku Einmal-Sanierung der 21.03.-Schicht + Session-Ritual; homelab-infra-Skill refresh + Versionierung.
Arbeitsmodus Großputz-Woche zuerst (Quick-Wins, Lärm-Killer, Leichen), danach ein Epic nach dem anderen komplett inkl. letzter Meile.

Issue-Sweep-Nachtrag

  • pkv-app #61: Backup deckt PDF-Anhänge nicht ab → Backup-Epic. pkv-app #48: API ohne Auth/CORS-Wildcard/0.0.0.0 → Security-Liste.
  • homeserver-Issues #74–#119 wie erfasst; andere Repos nur Renovate-Dashboards; sharetab-app = eigenes Produkt, außerhalb Homelab-Scope.

Antworten Runden 9–12 + Schlussfragen (2026-08-23)

  • Infisical: Cloud EU bleibt; nur Maschinen-Secrets (persönliche Zugänge: Proton Pass/Robin, Bitwarden/Lars); Borg-Passphrase in Proton Pass ✓; Konzept-Session gemeinsam, früh in E2.
  • Haushalt: nur Robin + Lars. Lars-Geräte: iPhone + Mac/Windows-Laptop (noch NICHT im Tailnet). VPN-UX: ausprobieren.
  • Foto-Sharing an Dritte ist regelmäßig wichtig → Public-Immich hat echten Bedarf; Brücke: iCloud-Abos parallel bis Public-Immich steht.
  • HA-Ziele: alle vier Felder (Heizung, Licht, Warnungen, Energie). Keine PV (auch nicht geplant). Zigbee zickt gelegentlich → Netz-Analyse. USV: NUC + UNAS + Netzwerk hängen dran (gut) — nur NUT-Doppelinstanz ist das Problem.
  • Budget: monatlich flexibel mit Begründung; Hardware nach Bedarf mit Trigger. Wartung: flexibel mit Ansage an Lars.
  • Scanner: kann direkt in Netzwerkordner scannen → Syncthing überflüssig (Streich-Kandidat).
  • Konsolidierung: gemeinsam datengetrieben durchdenken; Stromverbrauch ist wichtig → in Monitoring aufnehmen (D1 nach E3).
  • Grafana-Wünsche: Backup-Status, Strom, Internet-Speed, Zigbee-Gesundheit, AI-Auslastung — keine Disk-Trends; offen für Vorschläge.
  • pkv-app: nur Robin, Datenverlust wäre schlimm (Backup-Prio A). bonus-tracker: unkritisch.
  • docs.robinwerner.net: liest Robin aktuell nicht, würde er aber gerne → Doku-Session soll die Site attraktiv machen.
  • Kein Mac im Serverschrank (homelab-infra-Skill ist da falsch → Korrektur in E0).
  • Nichts weiter offen — Fragephase abgeschlossen. → Ergebnis: 02-zielbild-roadmap.md (Entwurf zur Freigabe).

Nachtrag 2026-08-24 — Seitenreview + Robins Gegenlese-Punkte

  • Seitenreview durchgeführt (eigener Reread + 2 unabhängige Review-Agents + Web-Faktencheck über 8 Kernannahmen) → Ergebnisse in 03-seitenreview.md; Roadmap auf v2 angehoben. Zwei Alt-Zeilen oben korrigiert (Nutzerkreis-Formulierung, Paperless-Zulauf).
  • Robin ergänzt: (1) Der Claude-Code-Client/Laptop als Steuerstand war unterrepräsentiert → jetzt eigener E0c-Block + Leitplanke „Steuerstand" (Versionierung ~/.claude inkl. Memory, claude-code-setup als Single Source, Planungsordner in die Doku-Drehscheibe, Frage „Was liegt NUR auf dem Laptop?"). (2) K8s: bleibt bewusst verworfen (Robins Entscheidung Runde 0; Leitplanke Plattform — Begründung jetzt sichtbar). (3) Server-Neusortierung: ist D1 (datengetrieben nach E3-Stromdaten; im Review trigger-basiert vorgezogen, Immich-ML-Vorfrage in E4).

Antworten Gegenlesen-Runde (2026-08-24, nach dem Seitenreview) → eingearbeitet in 02 v3

  • Bestätigt/gelobt: Bus-Faktor-Item, Heizung-vor-Winter, Host-OS-Patching, die §C-Erkenntnisse aus 03.
  • APT-Mirror-Frage: Robin fragt, ob sich ein eigener Mirror lohnt (3 Hosts, 3 verschiedene Ubuntu-Versionen). → Antwort: Nein — weder Voll-Mirror (TB-Sync-Aufwand) noch apt-cacher-ng (3 Hosts auf 3 Releases ⇒ Cache-Hits ≈ 0; neuer Wartungsdienst widerspricht dem Nordstern). Das echte Problem ist der Versions-Zoo → Release-Harmonisierung als E2b-Baustein (Zielversion je Host + Upgrade-Pfad).
  • D1 vorgezogen & neu gerahmt: Nicht stromdaten-abhängig. Alle Server bleiben — es geht um Service-Placement nach Auslastung/Hardware-Fähigkeiten (Beispiel Robin: Jellyfin braucht HW-Transcoding → Intel QSV besser als AMD → bleibt NUC). D1 = Denk-Session direkt nach E1, VOR doco-cd-Rollout; Strom-Nachprüfung nach E3.
  • Externer Server grundsätzlich diskussionswürdig (Hetzner-Preiserhöhungen; Robins Fund: hosting.de/server als Kandidat) → D1 klärt erst OB nötig (SaaS-Substitution: z.B. Tailscale-Free statt Headscale, healthchecks.io als Dead-Man — Konditionen in der Session verifizieren), dann WO. StorageBox bleibt unabhängig davon; das E1-VPS-Backup lohnt trotzdem (schützt Identity-Daten durch jede Migration).
  • homelab-external-Repo: wieder auf privat (E0a).
  • Heizung — wichtige Korrektur: Läuft bereits seit 2 Heizperioden smart (TRVs vorhanden, kein Kaufbedarf). Neu dazugekommen: Temperatursensoren + Fenstersensoren, „läuft manchmal nicht so richtig gut" → E6a = Sensor-Integration + Zuverlässigkeit (Fenster-auf-Absenkung, externe Ist-Temperatur/Offsets, Zigbee-Analyse), NICHT Greenfield.
  • Automerge-Stufung: bestätigt (patch sofort nach E2, minor nach E3, stateful manuell).
  • Notfallzugang: Detailform noch offen; Robins Wunsch: Break-Glass-Zugang für ALLE Systeme (SSO-unabhängige Notzugänge) → Konzept-Teil von E1 + E2a.
  • Kalender: KEINE Streckung — Ziel: alles bis 31.12.2026. (Risiko einmal klar benannt; Sicherheitsventil- Reihenfolge + Re-Schätz-Punkt nach E1 vereinbart; Familien-Kernziele rutschen nie.)
  • Freigabe: Robin hat die Roadmap v3 am 24.08. freigegeben — Planungsphase abgeschlossen. Nächste Session startet E0a (Board/Issues zuerst, dann Fehlalarm-Fixes + PR #18).