services: web: build: . image: djnizz-website:latest container_name: djnizz-web restart: unless-stopped # Nur auf Loopback veroeffentlicht: aus dem Internet nicht erreichbar, # aber ein bereits vorhandener Reverse-Proxy auf dem Host kann darauf # zugreifen. Mit eigenem Caddy (Profil "edge") laeuft der Verkehr # stattdessen ueber das interne Docker-Netz. ports: - '${WEB_BIND:-127.0.0.1:4321}:4321' networks: - djnizz security_opt: - no-new-privileges:true caddy: # Startet nur mit: docker compose --profile edge up -d # Weglassen, wenn auf dem Server bereits ein Reverse-Proxy die Ports # 80/443 belegt - zwei Prozesse koennen sich einen Port nicht teilen. profiles: ['edge'] image: caddy:2-alpine container_name: djnizz-caddy restart: unless-stopped ports: - '80:80' - '443:443' - '443:443/udp' # HTTP/3 environment: DOMAIN: ${DOMAIN:-djnizz.at} ACME_EMAIL: ${ACME_EMAIL:-business.djnizz@gmail.com} volumes: - ./Caddyfile:/etc/caddy/Caddyfile:ro - caddy_data:/data # Zertifikate - dieses Volume nicht loeschen - caddy_config:/config - caddy_logs:/var/log/caddy depends_on: - web networks: - djnizz security_opt: - no-new-privileges:true volumes: caddy_data: caddy_config: caddy_logs: networks: djnizz: