version: '3' services: # Next.js Frontend frontend: build: context: . dockerfile: Dockerfile container_name: myp-frontend restart: unless-stopped environment: - NODE_ENV=production - NEXT_PUBLIC_API_URL=https://raspberrypi:443 - NEXT_PUBLIC_BACKEND_HOST=raspberrypi:443 - PORT=80 volumes: - ./certs:/app/certs ports: - "80" networks: - myp-network healthcheck: test: ["CMD", "wget", "--spider", "http://localhost:80/health"] interval: 30s timeout: 10s retries: 3 start_period: 40s # Caddy Proxy für SSL-Terminierung caddy: image: caddy:2.7-alpine container_name: myp-caddy restart: unless-stopped ports: - "80:80" - "443:443" volumes: - ./docker/caddy/Caddyfile:/etc/caddy/Caddyfile - ./certs:/etc/caddy/certs - caddy_data:/data - caddy_config:/config networks: - myp-network depends_on: - frontend extra_hosts: - "host.docker.internal:host-gateway" - "raspberrypi:192.168.0.105" - "m040tbaraspi001.de040.corpintra.net:127.0.0.1" environment: - CADDY_HOST=m040tbaraspi001.de040.corpintra.net - CADDY_DOMAIN=m040tbaraspi001.de040.corpintra.net cap_add: - NET_ADMIN networks: myp-network: driver: bridge volumes: caddy_data: caddy_config: