4.5 KiB
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