Files
walkup/docker-compose.yml
2026-04-22 06:46:23 -05:00

81 lines
2.0 KiB
YAML

version: "3.9"
services:
db:
image: postgres:16-alpine
environment:
POSTGRES_DB: ${POSTGRES_DB:-walkup}
POSTGRES_USER: ${POSTGRES_USER:-walkup}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-walkup}
ports:
- "5432:5432"
volumes:
- postgres-data:/var/lib/postgresql/data
backend:
build:
context: ./backend
depends_on:
- db
env_file:
- .env
environment:
DATABASE_URL: ${DATABASE_URL:-postgresql+psycopg://walkup:walkup@db:5432/walkup}
MEDIA_ROOT: ${MEDIA_ROOT:-/app/storage}
BACKEND_CORS_ORIGINS: ${BACKEND_CORS_ORIGINS:-https://kif.local.ascorrea.com}
TEAMSNAP_CLIENT_ID_FILE: /run/secrets/teamsnap_client_id
TEAMSNAP_CLIENT_SECRET_FILE: /run/secrets/teamsnap_client_secret
ports:
- "8000:8000"
volumes:
- ./backend:/app
- backend-media:/app/storage
secrets:
- teamsnap_client_id
- teamsnap_client_secret
command: uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload --proxy-headers
frontend:
build:
context: ./frontend
depends_on:
- backend
env_file:
- .env
ports:
- "5173:5173"
volumes:
- ./frontend:/app
- frontend-node-modules:/app/node_modules
command: sh -c "npm ci && npm run dev -- --host 0.0.0.0 --port 5173"
proxy:
image: caddy:2.9-alpine
depends_on:
- backend
- frontend
ports:
- "${PROXY_HTTP_PORT:-80}:80"
- "${PROXY_HTTPS_PORT:-443}:443"
volumes:
- ./ops/Caddyfile:/etc/caddy/Caddyfile:ro
- caddy-data:/data
- caddy-config:/config
- ./secrets/dev-proxy-cert.pem:/certs/dev-proxy-cert.pem:ro
- ./secrets/dev-proxy-key.pem:/certs/dev-proxy-key.pem:ro
environment:
APP_HOST: ${APP_HOST:-kif.local.ascorrea.com}
volumes:
postgres-data:
backend-media:
frontend-node-modules:
caddy-data:
caddy-config:
secrets:
teamsnap_client_id:
file: ./secrets/teamsnap_client_id.txt
teamsnap_client_secret:
file: ./secrets/teamsnap_client_secret.txt