Container orchestration for the full web stack.
Source: web/docker-compose.yml
| Service | Image | Port | Description |
|---|---|---|---|
postgres |
postgres:16-alpine |
5432 | Database |
redis |
redis:7-alpine |
6379 | Celery broker + pubsub |
backend |
Built from web/ |
8000 | FastAPI App |
worker |
Built from web/ |
— | Celery App worker |
frontend |
Built from web/frontend/ |
5173 | React dev server |
| Variable | Value | Used By |
|---|---|---|
P2A_DATABASE_URL |
postgresql+asyncpg://... |
Web Database (async) |
P2A_SYNC_DATABASE_URL |
postgresql://... |
Web Database (sync) |
P2A_REDIS_URL |
redis://redis:6379/0 |
Celery App, Events Router |
P2A_UPLOAD_DIR |
/data/uploads |
Storage Service |
P2A_OUTPUT_DIR |
/data/outputs |
Storage Service |
P2A_ALLOWED_ORIGINS |
["http://localhost:5173", ...] |
FastAPI App CORS |
pgdata — PostgreSQL data persistenceredisdata — Redis data persistence/data — Shared between backend and worker for uploads/outputscd web
docker compose up --build # Start all services
docker compose down -v # Stop and remove volumes