HOMELAB_ARCHITECTURE_MASTER_V2.md aktualisiert
This commit is contained in:
@@ -548,6 +548,90 @@ Damit ist sofort klar:
|
||||
- welche Ausnahmen bewusst dokumentiert sind
|
||||
|
||||
---
|
||||
## ⚠️ Erweiterte Learnings (Portainer + GitOps)
|
||||
|
||||
### Secrets in Portainer Git-Stacks
|
||||
|
||||
Bei Deployments über Portainer mit Git-Repositories gilt:
|
||||
|
||||
* Host-Pfade in `env_file` (z. B. `/mnt/...`) sind **nicht verfügbar**
|
||||
* Portainer-Container hat keinen Zugriff auf diese Pfade
|
||||
|
||||
#### Konsequenz
|
||||
|
||||
* `env_file` ist für Secrets ungeeignet in diesem Setup
|
||||
|
||||
#### Standardlösung
|
||||
|
||||
* Verwendung von **Portainer Environment Variables**
|
||||
* Compose nutzt Variablen:
|
||||
|
||||
* `POSTGRES_PASSWORD: ${VARIABLE_NAME}`
|
||||
|
||||
👉 Ergebnis:
|
||||
|
||||
* keine Secrets im Git
|
||||
* funktionierender Git-Deployment-Flow
|
||||
|
||||
---
|
||||
|
||||
### Umgang mit `_FILE` Variablen
|
||||
|
||||
Nicht alle Container unterstützen `_FILE`-basierte Secrets.
|
||||
|
||||
#### Übersicht
|
||||
|
||||
* Vaultwarden → unterstützt `_FILE`
|
||||
* PostgreSQL → unterstützt `_FILE`
|
||||
* Mealie → unterstützt `_FILE` **nicht**
|
||||
|
||||
#### Regel
|
||||
|
||||
* Wenn `_FILE` nicht unterstützt wird:
|
||||
→ Nutzung von Environment Variables über Portainer
|
||||
|
||||
---
|
||||
|
||||
### Netzwerk-Standard für Apps mit Datenbanken
|
||||
|
||||
#### Architektur-Regel
|
||||
|
||||
* App → `frontend_net` + internes Netzwerk
|
||||
* Datenbank → nur internes Netzwerk (`internal: true`)
|
||||
|
||||
#### Beispiel (Mealie)
|
||||
|
||||
* `mealie` → `frontend_net` + `mealie_internal`
|
||||
* `mealie-postgres` → nur `mealie_internal`
|
||||
|
||||
👉 Vorteil:
|
||||
|
||||
* Datenbank vollständig isoliert
|
||||
* keine externe Erreichbarkeit möglich
|
||||
|
||||
---
|
||||
|
||||
### Migrations-Standard für kritische Services
|
||||
|
||||
Bei Änderungen an Datenbanken oder Core-Services:
|
||||
|
||||
#### Vorgehen
|
||||
|
||||
1. Backup erstellen (`pg_dumpall`)
|
||||
2. aktuellen Zustand sichern (`docker inspect`)
|
||||
3. neue Compose in Git definieren
|
||||
4. Container stoppen & entfernen
|
||||
5. neuen Stack deployen
|
||||
6. Funktion prüfen (Logs + abhängige Services)
|
||||
|
||||
#### Grundsatz
|
||||
|
||||
* Daten liegen im Volume → bleiben erhalten
|
||||
* Container sind austauschbar
|
||||
|
||||
👉 Ziel:
|
||||
|
||||
* risikoarme Migration ohne Datenverlust
|
||||
|
||||
## Schlussformel
|
||||
|
||||
|
||||
Reference in New Issue
Block a user