Migration Log – 2026-03-25
# 🗓️ Migration Log – 2026-03-25 ## 🔧 Ziel der Session * Bereinigung und Härtung der bestehenden Container-Architektur * Umstellung auf Git-basierte Stacks (Gitea + Portainer) * Entfernung unnötiger Angriffsflächen (Ports, bridge-Netzwerke) --- ## 🔐 Vaultwarden – Finalisierung ### Änderungen * Migration auf `frontend_net` * Entfernung von Host-Port * Integration über Traefik (`vault.kaleschke.info`) * Nutzung von `ADMIN_TOKEN_FILE` statt Klartext * Entfernung alter `config.json` ### Ergebnis * sauberer, sicherer Betrieb * keine Secrets im Klartext * reproduzierbar über Git --- ## 🗄️ PostgreSQL (postgresql17) – Migration ### Ausgangszustand * lief als Einzelcontainer * im `bridge` Netzwerk * Port `5432` öffentlich * Passwort im Klartext sichtbar ### Änderungen * Migration in Git-Stack (`infra/postgresql17`) * Entfernung von Port-Binding (`5432`) * nur noch im `backend_net` * Einführung von Secret-Datei (`POSTGRES_PASSWORD_FILE`) * Restart-Policy auf `unless-stopped` ### Vorgehen 1. Backup via `pg_dumpall` 2. Zustand via `docker inspect` gesichert 3. Container gestoppt & entfernt 4. neuer Stack über Gitea deployed 5. Funktion geprüft (DB + abhängige Services) ### Ergebnis * Daten unverändert erhalten * kein externer Zugriff mehr möglich * zentrale DB für: * mail-archiver * paperless-ngx --- ## 🍽️ Mealie – Neuaufbau ### Ausgangszustand * Zugriff über Port `9935` * DB im `frontend_net` * Klartext-Passwort in Compose * kein Traefik ### Änderungen #### Architektur * Einführung von `mealie_internal` Netzwerk * `mealie-postgres` nur noch intern erreichbar * `mealie` in: * `frontend_net` (Traefik) * `mealie_internal` (DB) #### Zugriff * Entfernung von Port `9935` * Integration über Traefik (`mealie.kaleschke.info`) #### Secrets * Entfernung von Klartext-Passwort aus Compose * Nutzung von Portainer Environment Variable: * `MEALIE_DB_PASSWORD` ### Besonderheit * `env_file` mit Host-Pfad funktionierte nicht * Ursache: Portainer Git-Stacks haben keinen Zugriff auf `/mnt/...` ### Lösung * Secrets über Portainer UI verwaltet * Compose nutzt `${MEALIE_DB_PASSWORD}` ### Ergebnis * saubere Trennung von App und DB * keine offenen Ports * Git-Repo ohne Secrets --- ## 🔁 DIUN ### Änderungen * Integration ins `frontend_net` * Nutzung von Container-Namen für Gotify --- ## ⚠️ Wichtige Learnings ### Portainer + Git + env_file * Host-Pfade (`/mnt/...`) sind nicht erreichbar * `env_file` daher ungeeignet 👉 Lösung: * Nutzung von Portainer Environment Variables --- ### `_FILE` Support ist nicht universell * Vaultwarden → unterstützt `_FILE` * PostgreSQL → unterstützt `_FILE` * Mealie → unterstützt `_FILE` **nicht** --- ### Migration ohne Risiko * Daten liegen immer im Volume * Container können jederzeit neu gebaut werden * Backup + Inspect vor Änderung ist Pflicht --- ## 🏁 Fazit Alle kritischen Services wurden erfolgreich: * abgesichert * strukturiert * in Git überführt 👉 System ist jetzt: * reproduzierbar * deutlich sicherer * architektonisch sauber
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# 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 von bestehenden Docker-Containern hin zu einem GitOps-basierten Setup (Gitea + Portainer)
|
||||
|
||||
## Status-Legende
|
||||
|
||||
|
||||
Reference in New Issue
Block a user