# Ingress for the optional `caddy` compose profile (issue #88). # $DOMAIN comes from .env; a real domain gets automatic Let's Encrypt # certificates (ports 80+443 must be reachable from the internet), the # `localhost` default uses Caddy's internal CA. Routing mirrors # deployment.md: /api → api, /collab (WebSocket) → collab, rest → web. {$DOMAIN:localhost} { encode gzip handle /api/* { reverse_proxy api:3000 } handle /collab* { reverse_proxy collab:3000 } handle { reverse_proxy web:8080 } }