services: api: build: . restart: unless-stopped volumes: - snapshot:/app/var expose: - "8000" web: build: context: ./client args: NEXT_PUBLIC_API_BASE: https://api.example.com # your API hostname restart: unless-stopped expose: - "3000" caddy: image: caddy:2 restart: unless-stopped ports: - "80:80" - "443:443" volumes: - ./deploy/Caddyfile:/etc/caddy/Caddyfile:ro - caddy_data:/data - caddy_config:/config depends_on: - api - web volumes: snapshot: caddy_data: caddy_config: