Skip to main content

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

1

Clone the repository

2

Initialize environment

Run the initialization script to generate secure secrets:
This creates a .env file from .env.example and generates:
  • POSTGRES_PASSWORD
  • FLASK_SECRET_KEY
  • AUTH_SECRET
  • SEARXNG_SECRET
3

Configure LLM API key

Edit .env and add at least one LLM API key:
Get API keys from:
4

Start Aurora

For development:
For production-like deployment (prebuilt images):
Or build from source:
5

Access the UI

Wait 30-60 seconds for services to start, then open:Additional UIs:

Architecture

The Docker Compose stack includes:

Configuration

Environment Variables

Key configuration options in .env:

Required

URLs

Object Storage

For production, use external S3-compatible storage:

Vault

On first startup, get the Vault token:
Copy the root token and add it to .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.3 to pin a specific release:

Troubleshooting

Services Not Starting

Check if .env exists:
If missing, run:

Port Conflicts

If ports are already in use, edit .env to change:

Database Connection Errors

Check Postgres is healthy:
Reset database:

Vault Not Initialized

On first run, Vault auto-initializes. Get the token:
Add to .env:
Restart services:

SeaweedFS Bucket Missing

The aurora-storage bucket is auto-created. If missing:
Manually create:

Out of Memory

Reduce resource usage by limiting services:
Or increase Docker memory limit (Docker Desktop: Settings → Resources).

Updating

Update to Latest

Update Single Service

Data Persistence

Data is stored in Docker volumes:
  • postgres-data - PostgreSQL database
  • weaviate_data - Vector embeddings
  • vault-data - Secrets storage
  • vault-init - Vault initialization state
  • seaweedfs_master_data - Object storage metadata
  • seaweedfs_volume_data - Object storage files
  • seaweedfs_filer_data - Object storage index
  • memgraph-data - Graph database
  • terraform-workdir - Terraform state files
Backup volumes:

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