Files
worldquant-alpha-system/compose.public.yaml
T

60 lines
1.6 KiB
YAML
Raw Normal View History

# Standalone public deployment: docker compose -f compose.public.yaml up -d --build
name: wq-alpha
services:
db:
image: postgres:17-alpine
environment:
POSTGRES_USER: wq
POSTGRES_DB: wq
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:?required}
volumes:
- postgres_data:/var/lib/postgresql/data
healthcheck:
test: [CMD-SHELL, "pg_isready -U wq -d wq"]
interval: 5s
timeout: 5s
retries: 20
restart: unless-stopped
backend:
build:
context: .
dockerfile: Dockerfile.backend
environment:
DATABASE_URL: postgresql+asyncpg://wq:${POSTGRES_PASSWORD:?required}@db:5432/wq
ADMIN_USERNAME: ${ADMIN_USERNAME:-admin}
ADMIN_PASSWORD: ${ADMIN_PASSWORD:?required}
ENCRYPTION_KEY: ${ENCRYPTION_KEY:?required}
PUBLIC_ORIGIN: https://${DOMAIN:?Set DOMAIN to your real hostname}
COOKIE_SECURE: "true"
depends_on:
db:
condition: service_healthy
healthcheck:
test: [CMD, python, -c, "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8000/api/v1/health', timeout=3)"]
interval: 10s
timeout: 5s
retries: 12
start_period: 20s
restart: unless-stopped
web:
build:
context: .
dockerfile: Dockerfile.frontend
environment:
SITE_ADDRESS: ${DOMAIN:?required}
ports:
- "80:80"
- "443:443"
- "443:443/udp"
volumes:
- caddy_data:/data
- caddy_config:/config
depends_on:
backend:
condition: service_healthy
restart: unless-stopped
volumes:
postgres_data:
caddy_data:
caddy_config: