Micha
796901ec6b
docs(network): Post-Upgrade Posture-Recheck Unraid 7.3.1 + AdGuard/libvirt-:53-Vorfall
...
Nach Major-Upgrade 7.2.4 -> 7.3.1 read-only Host-Listener gegen dokumentierte
Annahmen geprueft: alle Ausnahmen intakt (InfluxDB 127.0.0.1:8181, AdGuard nur
Tailscale, Gitea-SSH 222 LAN/TS, Traefik einziger 80/443-Owner, libvirt :53 weg).
Docker-Socket-Lage festgehalten (nur komodo-periphery RW; Traefik C-3 ro, kein Regress).
AdGuard-Boot-Race (libvirt-Default-Netz belegte :53 vor AdGuard) + Fix dokumentiert;
Dauerfix-Empfehlung VM-Manager aus. SSH-Haertung nach Upgrade verifiziert.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-07 21:26:59 +02:00
Micha
de7b714b4d
docs(network): SSH-Host-Haertung dokumentieren (key-only root, upgrade-sichere Persistenz)
...
Host gehaertet 2026-06-07: PermitRootLogin prohibit-password,
PasswordAuthentication no, KbdInteractiveAuthentication no; PubkeyAuthentication yes.
Persistenz upgrade-sicher via idempotentem /boot/config/ssh-harden.sh aus
/boot/config/go (sshd -t vor HUP-Reload, Syslog-Selbst-Verifikation).
Manueller Post-Upgrade-Check und Rollback dokumentiert.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-07 11:02:07 +02:00
Micha
8045e22873
authelia-oidc: Immich+Nextcloud bis Onboarding geparkt; aktive Phase abgeschlossen
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-06 19:18:54 +02:00
Micha
52f8c2adcb
posture-check: Tailscale-Docker aus CRITICAL_CONTAINERS entfernen (Container abgebaut)
...
Verhindert Dauer-ntfy-Alarm fuer den entfernten userspace-Docker-Tailscale. Natives Tailscale-Plugin ist kein Container und wird hier bewusst nicht geprueft.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-06 19:15:07 +02:00
Micha
0ddae675a8
plex: add web redirect for public route
2026-06-06 13:45:47 +02:00
Micha
7ce8e948cd
plex: route host network service via traefik file
2026-06-06 13:44:22 +02:00
Micha
2a87220862
plex: expose via traefik domain
2026-06-06 13:41:39 +02:00
Micha
f2d4cad566
paperless: Authelia OIDC SSO additiv (allauth, extra_hosts)
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-06 13:41:16 +02:00
Micha
e7370e4820
authelia-oidc: Mealie erledigt + extra_hosts-Gotcha dokumentieren
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-06 13:37:34 +02:00
Micha
dc26eb313c
mealie: extra_hosts auth.kaleschke.info -> Host-IP fuer OIDC-Erreichbarkeit
...
Mealie-Container konnte auth.kaleschke.info nicht aufloesen/erreichen (httpx.ConnectTimeout beim OIDC-Discovery). extra_hosts-Muster wie Komodo.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-06 13:34:09 +02:00
Micha
dc7cbfa6cd
mealie: Authelia OIDC SSO additiv (lokaler Login bleibt)
...
OIDC_AUTH_ENABLED + Authelia-Provider, Secret via ${MEALIE_OIDC_CLIENT_SECRET} (Stack-ENV). Kein Auto-Redirect, Self-Signup an. Authelia-Client mealie (one_factor) host-seitig angelegt.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-06 13:29:01 +02:00
Micha
cf9ca59eb1
docs: close baerchen veeam recovery test
2026-06-06 13:27:31 +02:00
Micha
d2a9c3b8cb
docs: record baerchen veeam recovery usb boot
2026-06-06 13:25:53 +02:00
Micha
0177350e64
docs: close guest iot network setup
2026-06-06 13:23:35 +02:00
Micha
2f3a029098
authelia-oidc: Grafana-Proof als erledigt dokumentieren + Secret eintragen
...
- SECRETS_MAP: grafana_oidc_client_secret (Datei + __FILE, Hash in Authelia-Host-Config)
- AUTHELIA_OIDC_PLAN: Stufe 1 (Grafana) als erledigt markiert
- MASTER_TODO: OIDC-Proof verifiziert, naechster Schritt Familien-Apps
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-06 13:17:29 +02:00
Micha
a4c79d9d81
docs: record guest iot preflight
2026-06-06 13:14:07 +02:00
Micha
18a90fbb4b
ops: add guest iot network preflight
2026-06-06 13:13:01 +02:00
Micha
30f076c85a
monitoring/grafana: OIDC-SSO via Authelia (Stufe-1-Proof)
...
- generic_oauth gegen Authelia (client_id grafana, PKCE, client_secret via __FILE aus /mnt/user/appdata/secrets/grafana_oidc_client_secret)
- Traefik-Middleware authelia@file entfernt -> OIDC ist jetzt die Auth; lokaler Grafana-Admin bleibt Fallback
- Authelia-Client wurde host-seitig angelegt (Secret nur als Host-Datei + Hash in Authelia-Config)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-06 13:11:00 +02:00
Micha
6e65f81503
docs: record restore freshness negative alert test
2026-06-06 13:04:42 +02:00
Micha
6123584a02
ops: make freshness negative ntfy call robust
2026-06-06 13:03:05 +02:00
Micha
c33e29016b
ops: add restore freshness negative alert test
2026-06-06 13:02:14 +02:00
Micha
2628a0c795
authelia-oidc: Plan + Runbook fuer app-uebergreifendes SSO
...
- docs/AUTHELIA_OIDC_PLAN.md: v4.39-Client-Schema, Endpoints, Secret-Erzeugung, Rollout-Reihenfolge (Grafana-Proof zuerst, dann Familien-Apps), Grafana-Schritt-fuer-Schritt
- MASTER_TODO: OIDC-Punkt auf Plan verweisen, naechster Schritt Grafana-Proof
- README: Doku-Index ergaenzt
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-06 12:58:38 +02:00
Micha
c7eed6bdad
todo: Authelia Rest-2FA als komplett erledigt markieren (Host-Merge + 2FA-Login verifiziert)
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-06 12:55:23 +02:00
Micha
6c61ad3860
authelia: Repo-Baseline an Host-2FA-Endzustand angleichen
...
Expliziten 2FA-Block auf files/scrutiny reduziert (borg/code sind via
Catch-all *.kaleschke.info=two_factor weiterhin 2FA). Damit matcht die
Repo-access_control-Sektion den Host-Stand -> authelia-diff.sh wird clean,
sobald der Host-Repo-Mirror auf diesen Commit gezogen ist.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-06 12:53:20 +02:00
Micha
2d1b541847
todo: offene Operator-Entscheidungen abschliessen; Authelia alle UIs auf 2FA
...
- BitLocker baerchen: bewusst deaktiviert
- Veeam Storage Encryption: bewusst unverschluesselt
- Stromverbrauch: bewusst ohne Messung (geschlossen)
- Nextcloud 2FA: geparkt bis OIDC die App-Login-Ebene erreicht
- Authelia: Catch-all *.kaleschke.info one_factor -> two_factor (Repo-Baseline; Host-Merge + restart + authelia-diff.sh als aktiver Schritt offen)
- Authelia OIDC und Gast-/IoT-Netz als aktive Bloecke aufgenommen
- MASTER_TODO: Operator-Entscheidung-Sektion ohne offene Punkte
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-06 12:32:52 +02:00
Micha
c3491eb382
tailscale: auf natives Plugin konsolidieren, redundanten Docker-Stack entfernen, ACL-Haertung dokumentieren
...
- host-services/tailscale/ (userspace-only Docker-Stack) entfernt; Komodo stop/destroy durch Operator, danach git rm
- Glance-Widget Tailscale-Docker entfernt
- HOMELAB_ARCHITECTURE/SERVICE_CATALOG/DISASTER_RECOVERY/CLAUDE/RESTORE_MATRIX: tailscale als natives Unraid-Plugin dokumentiert; Restore-State-Pfad korrigiert auf /boot/config/plugins/tailscale/state (Flash-Backup)
- NETWORK_INVENTORY: restriktive tag-basierte grants-ACL (2026-06-06; tag:server/tag:operator, tag:family vorbereitet) und Subnet-Router-Befund dokumentiert
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-06 10:58:59 +02:00
Micha
023ee63687
docs: close dr workstation kit
2026-06-06 10:11:17 +02:00
Micha
3a263a4846
docs: update dr workstation readiness
2026-06-06 09:17:23 +02:00
Micha
68d3ace598
ops: add dr workstation readiness check
2026-06-06 08:40:31 +02:00
Micha
0ef98a23e1
docs: close baerchen app license checks
2026-06-06 08:31:17 +02:00
Micha
6353da47c5
ops: add baerchen app license readiness check
2026-06-06 08:27:10 +02:00
Micha
207f49f001
docs: retire home assistant influx todo
2026-06-06 08:22:27 +02:00
Micha
a687d9b73e
docs: record redis restore test
2026-06-06 08:11:03 +02:00
Micha
e3459c76d0
fix: use redis pre-cutover restore artifact
2026-06-06 08:08:52 +02:00
Micha
254eb81496
ops: add redis restore test
2026-06-06 08:07:11 +02:00
Micha
9a6d7123ce
docs: record adguard restore test
2026-06-06 08:03:53 +02:00
Micha
151d253aff
ops: add adguard restore test
2026-06-06 08:01:27 +02:00
Micha
dda6021116
docs: record tailscale acl plan and watcher activation
2026-06-05 23:27:40 +02:00
Micha
2f3d184a3b
ops: prepare docker critical events watcher
2026-06-05 22:25:23 +02:00
Micha
bc3ecad45a
backup: windows image baseline for baerchen
2026-06-05 22:19:27 +02:00
Micha
88a42f3f78
audit: read-only system audit 2026-06-05
...
Windows-Host baerchen (frisch aufgesetzt) und Laufwerksstruktur geprüft.
Rohdaten unter audit/raw/, Bericht unter docs/audit/system-audit-2026-06-05.md.
Homelab-Server-Abschnitt ausstehend (SSH-Bestätigung fehlt).
2026-06-05 09:01:27 +02:00
Micha
af2c6ee533
docs: record final games partition state
2026-06-04 17:37:11 +02:00
Micha
f382c25696
docs: record post reboot boot check
2026-06-04 17:30:20 +02:00
Micha
d710a506e8
docs: record boot cleanup execution
2026-06-04 17:26:55 +02:00
Micha
2ea65e906d
docs: add boot cleanup plan
2026-06-04 15:06:58 +02:00
Micha
2d438cf02b
docs: add drive restructure review follow-up
2026-06-04 14:40:42 +02:00
Micha
7ba10c893b
docs: document drive restructure status
2026-06-04 14:25:10 +02:00
Micha
fb948ac951
docs: add windows postdelta handoff
2026-06-04 11:51:22 +02:00
Micha
9ca6e47472
docs(dr): wsl2 + borg setup-runbook fuer den gaming-pc
...
Schritt-fuer-Schritt Runbook fuer den letzten verbleibenden P1-Operator-
Punkt: WSL2 + Borg-Client + SSH-Keys + Quartals-Smoke-Skript auf dem
Operator-Gaming-PC einrichten.
7 Schritte, ~30-60 Min einmaliger Aufwand. Inhalt:
- WSL2 Ubuntu installieren
- borgbackup installieren
- Hetzner-DR-Key aus offline-USB nach ~/.ssh kopieren
- borg list Smoke gegen Hetzner Storage Box
- GitHub-Deploy-Key analog
- dr-smoke.sh Quartals-Skript ablegen
- Bestaetigung in EXTERNAL_DEPENDENCIES und AUDIT-Restliste nachziehen
Troubleshooting-Sektion fuer die haeufigsten Stolpersteine
(WSL-Update, Key-Permissions, Port-23-Block, HTTPS-vs-SSH-URL).
REPO_MAP.md um Verweis auf das neue Runbook ergaenzt.
Wenn dieses Runbook abgearbeitet ist, sind alle vier Bare-Metal-DR-Pillars
produktionsreif.
2026-06-03 20:32:27 +02:00
Micha
38fa8c5dd5
docs(restore): nextcloud restore-test erfolgreich (2026-06-03)
...
Tier-2-Restore-Tests sind damit komplett belegt.
Verlauf:
- Lauf 1 (commit pre-fix): Borg-Extract+pg_restore ok, HTTP 503 wegen
OC_Util.php:486 chmod-Fehlschlag auf shfs/FUSE
- Lauf 2 (commit 53c34dc , check_data_directory_permissions: false):
HTTP 503 wegen fehlender .ncdata-Marker-Datei
- Lauf 3 (commit ba87719 , .ncdata-Marker): SUCCESS
Endresultat:
- HTTP 200 von /status.php
- occ status maintenance: false
- 126 Tabellen in der wiederhergestellten DB
- Quelle: hetzner_borg_appdata_critical, Archiv
Taegliche-Sicherung-2026-06-03T04:30:41.432
- Report: /mnt/user/backups/restore-reports/nextcloud-2026-06-03.md
Doku-Updates:
- RESTORE_MATRIX.md: Nextcloud-Zeile auf "2026-06-03 / quartalsweise"
gezogen, Nextcloud aus "Naechste Restore-Test-Kandidaten" entfernt
- AUDIT_2026-05-25_TODO.md: Backlog-P1 und Operator-P1 beide auf
"erledigt 2026-06-03"
- DR_DRILL_2026-06-03.md Folge-Iteration: X-1 als erledigt markiert
Restliche P1-Operator-Aufgabe: WSL2+Borg-Client auf DR-Workstation.
2026-06-03 19:35:43 +02:00