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/paperlessfehlen. 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¶
- 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.) - 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.
ContainerDown(der wichtigste Alert) feuert praktisch nie:absent()über 5er-Regex wird erst leer, wenn alle fünf Container gleichzeitig weg sind.- Healthchecks-Mails gehen vermutlich ins Leere:
EMAIL_HOST_USERim falschen SMTP2GO-Format (Mailadresse stattrobinwerner.net-<name>) — bei Authelia am 14.07. gefixt, bei Healthchecks nie. - Dauerfeuer + Einheitspriorität: 61×
NfsMountLost, 30×HighCPU, alles critical/Priority 5 → Alarm-Müdigkeit. - AI-Server-Fehlalarm seit 14.08.: borgmatic-Hook scheitert an Rechten (
CAP_DAC_OVERRIDEfehlt; Zielverzeichnisrobin:robin) → 9 Nächte „Backup fehlgeschlagen" +AiserverBackupStalecritical, obwohl Backups laufen. - Niemand überwacht den Wachposten: kein Monitor für die Hetzner-Dienste selbst, kein Dead-Man's-Switch von außen.
- 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.)
- Strukturproblem dahinter: Alle Monitor-/Alarm-Definitionen leben unversioniert als Klick-Zustand in DBs (Kuma-MariaDB, HC-Postgres) — nicht reviewbar, nicht reproduzierbar, nicht gesichert.
- 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-monitorverliert 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.shkann 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=trueoffen 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/.envmit 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-Fallbackpaperless. - Traefik hat keine Security-Middlewares (kein Rate-Limit, keine IP-Allowlist, keine Header außer 2) —
CLAUDE.mdbehauptet 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 (
:roschü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 namensorigin/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-inframit 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)¶
- 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, …)
- 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).
- 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
~/.claudeinkl. 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).