Caddy per Schalter in der .env statt per CLI-Flag

Frage aus dem Betrieb: laesst sich ein Compose-Abschnitt ueber eine Variable
in der .env zu- und abschalten, statt ihn auszukommentieren? Bedingte Bloecke
kennt Compose nicht - aber COMPOSE_PROFILES darf in der .env stehen und
aktiviert das Profil, ohne dass ein Flag noetig ist.

  COMPOSE_PROFILES=        -> Caddy wird nicht angelegt (Standard)
  COMPOSE_PROFILES=caddy   -> Caddy startet bei `docker-compose up -d` mit

Vorteil gegenueber `--profile caddy`: der Schalter wirkt auch bei down, logs
und ps, wo das Flag leicht vergessen wird und dann verwaiste Container
zurueckbleiben.

Empirisch geprueft mit einem separaten Testprojekt (compose 1.29.2): ohne den
Eintrag startete nur der ungeschuetzte Dienst, mit Eintrag beide.

Dokumentiert in .env.example, im Kommentar am caddy-Dienst und in der README.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-19 19:43:59 +02:00
co-authored by Claude Opus 5
parent 22501f4650
commit ffeb4dbfd8
3 changed files with 30 additions and 13 deletions
+12 -7
View File
@@ -826,17 +826,22 @@ dahinter hängst.
Hast du **keinen**, kannst du Caddy als optionalen Dienst dazuschalten. Er holt
und erneuert das SSL-Zertifikat automatisch:
```bash
# In der .env die Domain setzen
Dafür gibt es einen Schalter in der `.env` nichts muss auskommentiert werden:
```env
COMPOSE_PROFILES=caddy # leer = kein Caddy (Standard)
DOMAIN=crm.example.de
HTTPS_ENABLED=true
# Mit Caddy starten (Ports 80 + 443 müssen frei sein)
docker-compose --profile caddy up -d
```
Ohne `--profile caddy` bleibt Caddy aus und nichts ändert sich der Dienst
wird dann gar nicht erst angelegt.
```bash
docker-compose up -d # startet jetzt zusätzlich Caddy
```
Solange `COMPOSE_PROFILES` leer ist, wird der Caddy-Dienst **gar nicht erst
angelegt** der Stack verhält sich exakt wie ohne ihn. Der Schalter wirkt auch
bei `down`, `logs` und `ps`, im Gegensatz zum Flag `--profile caddy`, das man
bei Folgebefehlen leicht vergisst.
**Was dabei zu beachten ist:**