51 lines
1.3 KiB
YAML
51 lines
1.3 KiB
YAML
|
|
# 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
|