Files
ess-docker-compose/compose-variants/docker-compose.caddy.yml
T
wmair 5cc781b57e Simplify compose file structure: Use docker-compose.yml as default
Changes:
- Renamed docker-compose.production.yml → docker-compose.yml (main config)
- Moved unused compose files to compose-variants/ folder:
  - docker-compose.local.yml → compose-variants/
  - docker-compose.authelia.yml → compose-variants/
  - docker-compose.caddy.yml → compose-variants/
  - docker-compose.yml (old) → compose-variants/docker-compose.old.yml
- Added compose-variants/README.md explaining the variants

Benefits:
- Default command now works: docker compose up -d (no -f flag needed)
- Cleaner project root directory
- Clear separation between active config and variants
- Multi-machine deployment is the default mode

Updated Documentation:
- MULTI_MACHINE_CONFIG_SNIPPETS.md: Removed -f flags from all commands
- README.md: Updated deploy commands to use simplified syntax
- All commands now use: docker compose up -d

Deployment Modes (from docker-compose.yml):
1. Multi-machine (default):
   docker compose up -d
   → Starts: Synapse, MAS, Element, PostgreSQL only

2. Single-machine with Authelia:
   docker compose --profile single-machine --profile authelia up -d
   → Starts everything including Caddy and Authelia

3. Single-machine without Authelia:
   docker compose --profile single-machine up -d
   → Starts everything with Caddy, no Authelia

This makes the default behavior match the multi-machine architecture
where Caddy and Authelia run on separate servers.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-29 19:05:03 +01:00

36 lines
1.1 KiB
YAML

# Standalone Caddy deployment for production
# Deploy this on your SSL termination/reverse proxy machine
# This machine should have:
# - Public IP with ports 80/443 accessible
# - DNS A records pointing to this machine
# - Network access to Matrix server machine
#
# Configuration:
# - Update caddy/Caddyfile.production with your domains and backend IPs
# - Ensure proper firewall rules between this and Matrix server
services:
caddy:
image: caddy:2-alpine
container_name: caddy-proxy
restart: unless-stopped
ports:
- "80:80" # HTTP (redirects to HTTPS)
- "443:443" # HTTPS
- "443:443/udp" # HTTP/3
- "2019:2019" # Admin API (restrict access!)
volumes:
- ./caddy/Caddyfile.production:/etc/caddy/Caddyfile:ro
- ./caddy/data:/data
- ./caddy/config:/config
networks:
- caddy-network
environment:
- ACME_AGREE=true
# Optional: restrict admin API to localhost only
# command: caddy run --config /etc/caddy/Caddyfile --adapter caddyfile --admin localhost:2019
networks:
caddy-network:
driver: bridge