docs/MIGRATION_LOG.md aktualisiert
This commit is contained in:
+89
-41
@@ -1,70 +1,118 @@
|
||||
# Migration Log — Homelab GitOps
|
||||
|
||||
Dieses Dokument verfolgt den Fortschritt der Migration von bestehenden Docker-Containern hin zu einem GitOps-basierten Setup (Gitea + Portainer)
|
||||
Dieses Dokument verfolgt den Fortschritt der Migration hin zu einem vollständigen GitOps-Setup (Gitea + Komodo).
|
||||
|
||||
## Status-Legende
|
||||
|
||||
- ⏳ = geplant
|
||||
- 🔄 = in Arbeit
|
||||
- ✅ = migriert
|
||||
- 🔄 = in Bearbeitung
|
||||
- ✅ = abgeschlossen
|
||||
- ⚠️ = Problem / prüfen
|
||||
|
||||
---
|
||||
|
||||
## Phase 1 — Kritische Services
|
||||
## Sprint 1 — Quick Wins + Vaultwarden ✅
|
||||
|
||||
| Service | Status | Ziel | Notizen |
|
||||
|---------------|--------|------|--------|
|
||||
Vaultwarden | ✅ | Git + Traefik | Migration abgeschlossen |
|
||||
| PostgreSQL | ✅ | backend_net | Port entfernen |
|
||||
| DIUN | ✅ | Gotify fix | Netzwerkproblem |
|
||||
| Mealie | ✅ | internes Netz | DB trennen |
|
||||
| Service | Status | Ergebnis |
|
||||
|---|---|---|
|
||||
| Vaultwarden | ✅ | Git-Stack, Traefik, `ADMIN_TOKEN_FILE`, Port entfernt |
|
||||
| PostgreSQL 17 | ✅ | `backend_net`, Port entfernt, `POSTGRES_PASSWORD_FILE` |
|
||||
|
||||
---
|
||||
|
||||
## Phase 2 — Anwendungen
|
||||
## Sprint 2 — postgresql17 + diun/gotify ✅
|
||||
|
||||
| Service | Status | Ziel | Notizen |
|
||||
|---------------|--------|------|--------|
|
||||
| Paperless | ⏳ | Traefik | aktuell nicht aktiv |
|
||||
| Gotify | ⏳ | intern + Traefik | Notification Hub |
|
||||
| Immich | ⏳ | internes Netz + Proxy | komplex |
|
||||
| Mail-Archiver | ⏳ | Backend + Proxy | DB gekoppelt |
|
||||
| Stash | ⏳ | optional | prüfen |
|
||||
| Service | Status | Ergebnis |
|
||||
|---|---|---|
|
||||
| postgresql17 | ✅ | Git-Stack abgeschlossen |
|
||||
| gotify | ✅ | `GOTIFY_DEFAULTUSER_PASS_FILE`, Traefik aktiv |
|
||||
| diun | ✅ | **Entfernt** (2026-03-28) — Update-Monitoring via Komodo |
|
||||
|
||||
---
|
||||
|
||||
## Phase 3 — Operations / Tools
|
||||
## Sprint 3 — mealie + mail-archiver ✅
|
||||
|
||||
| Service | Status | Ziel | Notizen |
|
||||
|---------------|--------|------|--------|
|
||||
| Portainer | ⏳ | Git Stack | zentrale Verwaltung |
|
||||
| Dozzle | ⏳ | Proxy + Auth | Logs |
|
||||
| UptimeKuma | ⏳ | Proxy + Auth | Monitoring |
|
||||
| dashdot | ⏳ | Proxy + Auth | Systemstatus |
|
||||
| Filebrowser | ⏳ | intern | Zugriff prüfen |
|
||||
| Scrutiny | ⏳ | Proxy | SMART |
|
||||
| Code-Server | ⏳ | VPN-only | Sicherheit |
|
||||
| LuckyBackup | ⏳ | intern | Backup Tool |
|
||||
| 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 |
|
||||
|
||||
---
|
||||
|
||||
## Phase 4 — Infrastruktur & Spezialfälle
|
||||
## Sprint 4 — Frontend-Stack + Traefik Cleanup + Komodo ✅
|
||||
|
||||
| Service | Status | Ziel | Notizen |
|
||||
|---------------|--------|------|--------|
|
||||
| Tailscale | ⏳ | Host | VPN |
|
||||
| Pi-hole | ⏳ | Host | DNS |
|
||||
| Plex | ⏳ | Host | Discovery |
|
||||
| Netdata | ⏳ | Host | Monitoring |
|
||||
| Glances | ⏳ | Host | Monitoring |
|
||||
| Netalertx | ⏳ | Host | Netzwerk |
|
||||
| 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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user