Docker Configuration
GAIA uses Docker Compose to orchestrate multiple services for development. Our setup includes the backend API, databases, message queues, and worker processes.Quick Start
Start all services:Service Architecture
Core Services
gaia-backend - Main FastAPI application- Port:
8000:80 - Auto-reload enabled for development
- Depends on all database services
- Port:
5432:5432 - Credentials:
postgres/postgres
- Port:
6379:6379
- Port:
8080:8000
- Port:
27017:27017
Worker Services
arq_worker - Background job processing- Uses Redis for task queue
- Environment:
WORKER_TYPE=arq_worker
- AMQP Port:
5672:5672 - Management UI:
15672:15672
Development Tools
mongo_express - MongoDB web interface- Port:
8081:8081 - Credentials:
admin/password
Profiles
Docker Compose profiles let you run specific service groups:Default Profile (Empty)
Runs all services including frontend, backend, databases, workers, and development tools:Backend Only
Runs backend services, databases, workers, and development tools - excludes the frontend:The
backend-only profile is recommended for development when you want to run
the frontend manually with mise dev for faster hot reloading.Health Checks
All services include health checks for reliable startup:- Backend: HTTP health endpoint
- Databases: Connection tests
- Workers: Service status checks
Data Persistence
Persistent volumes maintain data across container restarts:chroma_data- Vector embeddingspgdata- PostgreSQL dataredis_data- Redis cachemongo_data- MongoDB documentsrabbitmq_data- Message queue data
