Files
pgames-manager/docker-compose.yml
T
mrleo1nid c8d83b3fe7 feat: add mod editing, revision merges and secure game storage
Add immutable revisions, PGVN editor, asset replacement, merge and rebase workflows, authenticated media delivery and reachability GC. Harden the script interpreter, pin unrpyc and remove tracked build metadata. Include current compatibility checks, Naninovel import and regression tests.
2026-10-25 04:42:48 +03:00

74 lines
1.8 KiB
YAML

services:
db:
image: postgres:16-alpine
restart: unless-stopped
environment:
POSTGRES_USER: pgames
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-pgames}
POSTGRES_DB: pgames
volumes:
- db:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U pgames"]
interval: 5s
retries: 20
backend:
build: ./backend
restart: unless-stopped
env_file: ${ENV_FILE:-.env}
environment:
DATABASE_URL: postgresql+asyncpg://pgames:${POSTGRES_PASSWORD:-pgames}@db:5432/pgames
DATA_DIR: /data
volumes:
- ${DATA_PATH:-./data}:/data
healthcheck:
test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8000/api/health')"]
interval: 5s
retries: 30
depends_on:
db:
condition: service_healthy
worker:
build: ./backend
restart: unless-stopped
command: ["python", "-m", "app.worker"]
env_file: ${ENV_FILE:-.env}
environment:
DATABASE_URL: postgresql+asyncpg://pgames:${POSTGRES_PASSWORD:-pgames}@db:5432/pgames
DATA_DIR: /data
volumes:
- ${DATA_PATH:-./data}:/data
depends_on:
backend:
condition: service_healthy # migrations are applied by backend
web:
build: ./frontend
restart: unless-stopped
ports:
- "${HTTP_PORT:-8080}:80"
volumes:
- ${DATA_PATH:-./data}:/data:ro
depends_on:
- backend
gc:
build: ./backend
profiles: [maintenance]
entrypoint: [python, -m, app.gc]
command: []
env_file: ${ENV_FILE:-.env}
environment:
DATABASE_URL: postgresql+asyncpg://pgames:${POSTGRES_PASSWORD:-pgames}@db:5432/pgames
DATA_DIR: /data
volumes:
- ${DATA_PATH:-./data}:/data
depends_on:
backend:
condition: service_healthy
volumes:
db: