====== Multiple Services ===== Run multiple services behind Caddy with proper routing. > //Caddy can route traffic to multiple services based on domain or path.// ===== Overview ===== Caddy can route traffic to multiple backend services based on domain name or path. This allows you to host multiple applications on a single server. ===== Complete docker-compose.yml ===== ```yaml services: caddy: image: caddy:2-alpine container_name: caddy restart: unless-stopped ports: - "80:80" - "443:443" volumes: - ./Caddyfile:/etc/caddy/Caddyfile:ro - caddy_data:/data - caddy_config:/config networks: - app-network whoami: image: traefik/whoami:latest container_name: whoami restart: unless-stopped networks: - app-network nginx: image: nginx:alpine container_name: nginx restart: unless-stopped networks: - app-network networks: app-network: volumes: caddy_data: caddy_config: ``` ===== Caddyfile for Multiple Services ===== ``` your-domain.com { reverse_proxy whoami:80 } api.your-domain.com { reverse_proxy nginx:80 } ``` ===== Service Discovery ===== All services on the same network can reach each other by service name. Caddy can reach `whoami:80` and `nginx:80` because they share the `app-network`. ===== Adding New Services ===== To add a new service: 1. Add service to docker-compose.yml 2. Add entry to Caddyfile 3. Restart services ===== References ===== * [[https://jamongx.com/caddy-reverse-proxy-docker-https-guide/|Setting Up Caddy Reverse Proxy with Automatic HTTPS (Docker)]] ===== See Also ===== * [[hosting:caddy:start|Caddy Overview]] * [[hosting:caddy:configuration|Caddyfile Configuration]] Last updated: 2026-06-19 * [[hosting:start|Return to hosting]]