Nur noch eine docker-compose.yml und eine .env

Der zweite Stack unter docker/ war ein Duplikat aus Februar, das nie
mitgepflegt wurde - und genau deshalb schwer zu finden und leicht falsch zu
bedienen. Statt ihn zu loeschen (Caddy ist fuer Betreiber ohne eigenen
Reverse-Proxy zurecht gewuenscht) ist er jetzt in den Hauptstack integriert:

- caddy als optionaler Dienst mit `profiles: ["caddy"]` in docker-compose.yml.
  Ohne `--profile caddy` wird er nicht einmal angelegt - empirisch geprueft mit
  einem separaten Testprojekt: `up -d` startete nur den ungeschuetzten Dienst.
  Der laufende Stack bleibt damit unveraendert.
- Caddyfile in den Projektstamm verschoben, proxy-Ziel auf den Dienstnamen
  `opencrm` angepasst, Zertifikate unter ./data/caddy wie alle anderen Daten.
- DOMAIN, CADDY_DIR und CADDY_CONFIG_DIR in die .env.example aufgenommen.
- docker/ entfernt (Dockerfile, entrypoint.sh, docker-compose.yml,
  .env.example, README.md). Das dortige Dockerfile basierte noch auf Alpine -
  genau die Variante, von der das Projekt wegen Prisma-/TLS-Problemen bewusst
  auf node:20-slim gewechselt ist. Das gepflegte backend/Dockerfile baut
  Frontend und Backend ebenso.
- README: Abschnitt "Docker (Produktion)" ersetzt durch "Betrieb mit eigenem
  SSL", inkl. Hinweisen zu Let's-Encrypt-Limits, DNS-Voraussetzung,
  HTTPS_ENABLED und dem weiterhin offenen App-Port. Projektbaum und
  .dockerignore nachgezogen.

Geprueft: docker-compose config gueltig, caddy validate gueltig, laufende
Container unberuehrt.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-19 19:40:43 +02:00
co-authored by Claude Opus 5
parent ee83b09ed8
commit 22501f4650
10 changed files with 70 additions and 484 deletions
+24
View File
@@ -90,6 +90,30 @@ services:
# Auto-aktualisierter BLZ-/Bankdaten-Datensatz (Bundesbank-Bankleitzahlen)
- ${BANKDATA_DIR:-./data/bankdata}:/app/bankdata
# Optionaler Reverse-Proxy mit automatischem SSL nur fuer Betreiber OHNE
# eigenen Proxy. Startet NICHT mit `docker-compose up -d`, sondern nur mit:
# docker-compose --profile caddy up -d
# Wer nginx / Nginx Proxy Manager / Traefik davor hat, laesst das weg.
caddy:
image: caddy:2-alpine
container_name: opencrm-caddy
restart: unless-stopped
profiles: ["caddy"]
depends_on:
- opencrm
environment:
DOMAIN: ${DOMAIN:-localhost}
ports:
- "80:80"
- "443:443"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile:ro
# Zertifikate liegen wie alle Daten unter ./data/ nicht loeschen,
# sonst werden bei jedem Start neue Zertifikate angefordert
# (Let's-Encrypt-Limits!).
- ${CADDY_DIR:-./data/caddy}:/data
- ${CADDY_CONFIG_DIR:-./data/caddy-config}:/config
adminer:
image: adminer:latest
container_name: opencrm-adminer