| title | Service Architecture Reference |
|---|---|
| category | Reference |
| tags | architecture, services, infrastructure |
- Purpose: Primary database
- Port: 5432
- Credentials: polar/polar
- Volume: postgres_data
- Health check: pg_isready (2s interval)
- Purpose: Cache and job queue backend
- Port: 6379
- Health check: redis-cli ping
- Purpose: File storage
- Ports: 9000 (API), 9001 (Console)
- Credentials: polar/polarpolar
- Volume: minio_data
- Buckets: polar-s3, polar-s3-public
- Purpose: REST API server
- Port: 8000
- Image: Python 3.14 + uvicorn
- Hot-reload: Enabled
- Startup tasks:
- Sync dependencies
- Build email templates
- Run migrations
- Load seed data
- Purpose: Async task processing
- Image: Same as API
- Queues: high_priority, medium_priority, low_priority
- Hot-reload: Enabled
- Depends on: API (waits for initialization)
- Purpose: User interface
- Port: 3000
- Image: Node 24 + Turbopack
- Memory limit: 4GB
- Hot-reload: Enabled
- Purpose: Metrics collection
- Port: 9090
- Retention: 1 day
- Enable: --monitoring flag
- Purpose: Dashboards
- Port: 3001
- Credentials: polar/polar
- Enable: --monitoring flag
minio-setup → minio (healthy)
api → db (healthy), redis (healthy), minio-setup (complete)
worker → db, redis, minio-setup, api (started)
web → api (started)
grafana → prometheus (started)
| Volume | Purpose |
|---|---|
| postgres_data | Database |
| minio_data | Files |
| server_uv_cache | Python packages |
| api_venv | API virtual env |
| worker_venv | Worker virtual env |
| pnpm_store | Node packages |
| web_node_modules | Frontend deps |
| web_next_cache | Build cache |
All services on internal Docker network using service names:
db:5432redis:6379minio:9000api:8000