slimcore-website/infra/marketing-vps/docker-compose.yml

51 lines
1.3 KiB
YAML
Raw Permalink Normal View History

# Marketing-VPS Stack — eine Caddy-Instanz für alle statischen Marken-Sites
# plus Uptime Kuma für Status-Monitoring.
#
# Verzeichnis-Struktur auf dem VPS:
# /home/deploy/marketing/ ← diese Compose-Datei + Caddyfile
# /var/www/<domain>/ ← rsync-Ziel pro Marke (Caddy liest read-only daraus)
# /var/log/caddy/ ← Access-Logs pro Domain
services:
caddy:
image: caddy:2-alpine
container_name: marketing-caddy
restart: unless-stopped
ports:
- '80:80'
- '443:443'
- '443:443/udp' # HTTP/3
- '127.0.0.1:2019:2019' # Admin-API + Metrics, nur lokal
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile:ro
- /var/www:/var/www:ro
- /var/log/caddy:/var/log/caddy
- caddy-data:/data
- caddy-config:/config
networks:
- marketing
healthcheck:
test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://127.0.0.1:2019/config/"]
interval: 30s
timeout: 5s
retries: 3
uptime:
image: louislam/uptime-kuma:1
container_name: marketing-uptime
restart: unless-stopped
ports:
- '127.0.0.1:3001:3001'
volumes:
- ./uptime-data:/app/data
networks:
- marketing
volumes:
caddy-data:
caddy-config:
networks:
marketing:
driver: bridge