services:
caddy:
image: caddy:2-alpine
ports:
- "80:80"
- "443:443"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile:ro
- caddy_data:/data
- caddy_config:/config
depends_on:
- stats-compass
restart: unless-stopped
stats-compass:
build: .
expose:
- "8000"
environment:
# Server config
- STATS_COMPASS_HOST=0.0.0.0
- STATS_COMPASS_PORT=8000
- STATS_COMPASS_MEMORY_LIMIT_MB=500
- STATS_COMPASS_SESSION_TTL_HOURS=24
- STATS_COMPASS_MAX_SESSIONS=100
# Public URL for upload links (set in .env for your domain)
- STATS_COMPASS_SERVER_URL=${STATS_COMPASS_SERVER_URL:-http://localhost:8000}
# Storage config (local for dev, S3 for prod)
- STORAGE_BACKEND=local
- LOCAL_STORAGE_PATH=/tmp/stats-compass-uploads
# Uncomment for S3 storage:
# - STORAGE_BACKEND=s3
# - S3_BUCKET=your-bucket-name
# - S3_PREFIX=uploads
# - S3_REGION=us-east-1
# - AWS_ACCESS_KEY_ID=your-access-key
# - AWS_SECRET_ACCESS_KEY=your-secret-key
volumes:
# Persist uploads and exports between restarts
- uploads:/tmp/stats-compass-uploads
- exports:/tmp/stats-compass-exports
healthcheck:
test: [ "CMD", "curl", "-s", "--max-time", "5", "http://localhost:8000/mcp" ]
interval: 30s
timeout: 10s
retries: 3
start_period: 10s
restart: unless-stopped
volumes:
uploads:
exports:
caddy_data:
caddy_config: