compose.yaml (990 bytes)
1 # sbm-sync behind Caddy. Caddy gets and renews the TLS certificate for 2 # SBM_DOMAIN by itself. Copy .env.example to .env, set SBM_DOMAIN in it, 3 # then run: docker compose up -d 4 services: 5 caddy: 6 image: caddy:2 7 restart: unless-stopped 8 ports: 9 - "80:80" 10 - "443:443" 11 - "443:443/udp" 12 environment: 13 SBM_DOMAIN: ${SBM_DOMAIN:?set SBM_DOMAIN in .env} 14 volumes: 15 - ./contrib/Caddyfile:/etc/caddy/Caddyfile:ro 16 - caddy-data:/data 17 - caddy-config:/config 18 19 sbm-sync: 20 build: . 21 restart: unless-stopped 22 # sbm-sync uses the network of caddy. Caddy connects to it on 23 # 127.0.0.1, and sbm-sync trusts X-Real-IP only from 127.0.0.1. So the 24 # sign-in limits count the address of each client, not of Caddy. 25 network_mode: service:caddy 26 env_file: .env 27 environment: 28 SBM_URL: https://${SBM_DOMAIN} 29 SBM_ADDR: 127.0.0.1:8750 30 volumes: 31 - sbm-data:/data 32 33 volumes: 34 caddy-data: 35 caddy-config: 36 sbm-data: