Edit: /opt/mawid/docker-compose.prod.yml (1033B)
# Production/staging overlay: docker compose -f docker-compose.yml -f docker-compose.prod.yml
# Adds Caddy (auto-HTTPS), restart policies, and unbinds internal ports.
services:
postgres:
restart: unless-stopped
ports: !reset []
redis:
restart: unless-stopped
ports: !reset []
api:
restart: unless-stopped
ports: !reset []
environment:
NODE_ENV: production
APP_BASE_URL: https://${API_DOMAIN:?}
DASHBOARD_BASE_URL: https://${DASHBOARD_DOMAIN:?}
dashboard:
restart: unless-stopped
ports: !reset []
build:
args:
NEXT_PUBLIC_API_URL: https://${API_DOMAIN:?}
caddy:
image: caddy:2
restart: unless-stopped
ports:
- '80:80'
- '443:443'
environment:
API_DOMAIN: ${API_DOMAIN:?}
DASHBOARD_DOMAIN: ${DASHBOARD_DOMAIN:?}
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile:ro
- caddy_data:/data
- caddy_config:/config
depends_on:
- api
- dashboard
volumes:
caddy_data:
caddy_config: