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
worker - Email and scheduled tasks- Uses RabbitMQ for message queuing
- Environment:
WORKER_TYPE=mail_worker
- 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 pnpm 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