# Migration Log — Homelab GitOps Dieses Dokument verfolgt den Fortschritt der Migration hin zu einem vollständigen GitOps-Setup (Gitea + Komodo). ## Status-Legende - ⏳ = geplant - 🔄 = in Bearbeitung - ✅ = abgeschlossen - ⚠️ = Problem / prüfen --- ## Sprint 1 — Quick Wins + Vaultwarden ✅ | Service | Status | Ergebnis | |---|---|---| | Vaultwarden | ✅ | Git-Stack, Traefik, `ADMIN_TOKEN_FILE`, Port entfernt | | PostgreSQL 17 | ✅ | `backend_net`, Port entfernt, `POSTGRES_PASSWORD_FILE` | --- ## Sprint 2 — postgresql17 + diun/gotify ✅ | Service | Status | Ergebnis | |---|---|---| | postgresql17 | ✅ | Git-Stack abgeschlossen | | gotify | ✅ | `GOTIFY_DEFAULTUSER_PASS_FILE`, Traefik aktiv | | diun | ✅ | **Entfernt** (2026-03-28) — Update-Monitoring via Komodo | --- ## Sprint 3 — mealie + mail-archiver ✅ | Service | Status | Ergebnis | |---|---|---| | mealie | ✅ | internes Netz (`mealie_internal`), Port entfernt, Traefik aktiv | | mealie-postgres | ✅ | nur internes Netz, isoliert | | mail-archiver | ✅ | `frontend_net` + `backend_net` (Hybrid), Portainer ENV | --- ## Sprint 4 — Frontend-Stack + Traefik Cleanup + Komodo ✅ | Service | Status | Ergebnis | |---|---|---| | paperless-ngx | ✅ | Traefik aktiv, tls=true, Port entfernt | | Paperless-AI | ✅ | Traefik aktiv | | PortainerCE | ✅ | Traefik + Middleware, direkte Ports entfernt — **Legacy**, wird in Sprint 5 abgeschaltet | | Dozzle | ✅ | Traefik + Middleware, direkte Ports entfernt | | dashdot | ✅ | Traefik + Middleware, direkte Ports entfernt | | scrutiny | ✅ | `frontend_net`, Traefik + Middleware, als Git-Stack migriert | | filebrowser | ✅ | `frontend_net`, Traefik + Middleware, Port entfernt | | gitea | ✅ | Traefik aktiv, SSH-Port 222 bleibt (dokumentierte Ausnahme) | | UptimeKuma | ✅ | Traefik aktiv, Port entfernt, Middleware aktiv | | backrest | ✅ | `traefik.docker.network=frontend_net` korrigiert (war `backend_net`) | | **Komodo** | ✅ | **Eingeführt als primärer GitOps-Stack-Manager** | | **Traefik File-Provider** | ✅ | `immich.yml`, `gitea.yml`, `mealie.yml`, `scrutiny.yml`, `vaultwarden.yml.bak` gelöscht — Traefik läuft jetzt 100% auf Docker-Labels | | **immich Bad Gateway** | ✅ | Traefik nutzt jetzt `immich@docker` statt `immich@file` | --- ## Sprint 5 — Compose-Migration Dockerman-Container 🔄 In Bearbeitung | Service | Status | Ziel | |---|---|---| | luckyBackup | ⏳ | `frontend_net`, Traefik, Middleware, Port entfernen | | Stash | ⏳ | Compose-Migration | | Tailscale-Docker | ⏳ | Compose-Migration, `host`-Netz bleibt (dokumentiert) | | netdata | ⏳ | Compose-Migration, leere CLAIM-Vars entfernen | | Plex-Media-Server | ⏳ | Compose-Migration, `host`-Netz bleibt (Discovery) | | Pi-hole | ⏳ | zuletzt konsolidieren | | **PortainerCE** | ⏳ | **abschalten** nach vollständiger Komodo-Übernahme | --- ## Sprint 6 — Hardening / Secrets / Volumes ⏳ Offen | Aufgabe | Status | |---|---| | `immich_default` — `internal: true` setzen | ⏳ | | `immich_redis` — anonymes Volume → named volume | ⏳ | | `immich_server` — anonymes Volume prüfen | ⏳ | | `backrest` — rw-Mount auf konkrete Pfade einschränken | ⏳ | | `filebrowser` — Mount-Pfad einschränken | ⏳ | | Redis — named volume | ⏳ | --- ## Wichtige Entscheidungen & Learnings ### Komodo ersetzt Portainer (2026-03-28) Komodo ist der primäre GitOps-Stack-Manager. Stacks werden via Gitea synchronisiert und über Komodo deployed. Portainer CE läuft noch als Legacy-UI. ### Traefik File-Provider Cleanup (2026-03-28) Statische File-Provider-Configs hatten `@file`-Routen, die mit `@docker`-Routen konkurrierten. In Traefik v3 gewinnt der File-Provider → Immich wurde auf falsche IP geroutet (Bad Gateway). Nach Löschen der statischen Configs läuft alles über Docker-Labels. ### diun entfernt (2026-03-28) Update-Monitoring kann über Komodo's eingebaute Update-Notifications abgedeckt werden. ### Portainer + Git + env_file Host-Pfade (`/mnt/...`) sind in Portainer/Komodo Git-Stacks nicht verfügbar → `env_file` ungeeignet. Lösung: Stack Environment Variables mit `${VARIABLE}` in der Compose. ### `_FILE` Support ist nicht universell | Container | `_FILE` Support | |---|---| | Vaultwarden | ✅ ja | | PostgreSQL | ✅ ja | | Gotify | ✅ ja | | code-server | ✅ ja | | Mealie | ❌ nein → Stack ENV | | paperless-ngx | ❌ nein für DB-Pass → Stack ENV | --- ## Notizen - Keine Migration ohne Test - Immer nur einen Service gleichzeitig - Rollback muss jederzeit möglich sein