Docker Compose Deployment
Deploy Aurora locally using Docker Compose for development, testing, or small-scale production use.Prerequisites
- Docker Engine 20.10 or newer
- Docker Compose v2.0 or newer
- 8GB RAM minimum (16GB recommended)
- 20GB free disk space
Quick Start
Initialize environment
Run the initialization script to generate secure secrets:This creates a
.env file from .env.example and generates:POSTGRES_PASSWORDFLASK_SECRET_KEYAUTH_SECRETSEARXNG_SECRET
Configure LLM API key
Edit Get API keys from:
.env and add at least one LLM API key:- OpenRouter: https://openrouter.ai/keys (recommended, supports multiple models)
- OpenAI: https://platform.openai.com/api-keys
- Anthropic: https://console.anthropic.com/
- Google AI: https://makersuite.google.com/app/apikey
Access the UI
Wait 30-60 seconds for services to start, then open:
- Frontend: http://localhost:3000
- Backend API: http://localhost:5080
- WebSocket: ws://localhost:5006
- Vault: http://localhost:8200
- Weaviate: http://localhost:8080
- SeaweedFS: http://localhost:8888
- Memgraph Lab: http://localhost:3001
Architecture
The Docker Compose stack includes:| Service | Description | Port |
|---|---|---|
| frontend | Next.js web UI | 3000 |
| aurora-server | Flask REST API | 5080 |
| chatbot | WebSocket chatbot service | 5006 |
| celery_worker | Background task workers | - |
| celery_beat | Task scheduler | - |
| postgres | PostgreSQL database | 5432 |
| redis | Task queue & cache | 6379 |
| weaviate | Vector database | 8080 |
| t2v-transformers | ML embeddings service | - |
| vault | HashiCorp Vault secrets | 8200 |
| seaweedfs-master | Object storage master | 9333 |
| seaweedfs-volume | Object storage volume | 8081 |
| seaweedfs-filer | S3-compatible API | 8333, 8888 |
| memgraph | Graph database | 7687 |
| memgraph-lab | Graph visualization | 3001 |
| searxng | Web search engine | 8082 |
Configuration
Environment Variables
Key configuration options in.env:
Required
URLs
Object Storage
Vault
.env.
Common Operations
View Logs
Restart Services
Stop Services
Clean Up
Fresh Rebuild
Development vs Production
Development Mode (make dev)
- Uses
docker-compose.yaml - Hot reload enabled for code changes
- Source code mounted as volumes
- Debug logging enabled
- No build optimizations
Production Mode (make prod-local)
- Uses
docker-compose.prod-local.yml - Builds optimized production images
- No source code mounts
- Production logging
- Automatic restarts
- Health checks enabled
Prebuilt Images (make prod-prebuilt)
- Pulls images from GitHub Container Registry
- No build step required
- Use
VERSION=v1.2.3to pin a specific release:
Troubleshooting
Services Not Starting
Check if.env exists:
Port Conflicts
If ports are already in use, edit.env to change:
Database Connection Errors
Check Postgres is healthy:Vault Not Initialized
On first run, Vault auto-initializes. Get the token:.env:
SeaweedFS Bucket Missing
Theaurora-storage bucket is auto-created. If missing:
Out of Memory
Reduce resource usage by limiting services:Updating
Update to Latest
Update Single Service
Data Persistence
Data is stored in Docker volumes:postgres-data- PostgreSQL databaseweaviate_data- Vector embeddingsvault-data- Secrets storagevault-init- Vault initialization stateseaweedfs_master_data- Object storage metadataseaweedfs_volume_data- Object storage filesseaweedfs_filer_data- Object storage indexmemgraph-data- Graph databaseterraform-workdir- Terraform state files
Next Steps
Production Deployment
Best practices for production deployments
Kubernetes Deployment
Deploy Aurora on Kubernetes
Scaling
Scale Aurora for high availability
Configuration
Complete environment variable reference