Docker Compose

Clone, configure, and run the full Future AGI stack. Covers all three deployment modes.

About

Docker Compose is the supported way to run a self-hosted Future AGI instance. This page covers the full-stack deployment (all 21 services), the dev overlay with hot reload and per-queue workers, and a frontend-only mode for pointing the UI at a remote backend.

Setup

git clone https://github.com/future-agi/future-agi.git
cd future-agi
cp .env.example .env
docker pull futureagi/future-agi:v1.8.19_base
docker compose up

First boot builds from source (~10–15 min). When the backend logs Application startup complete:

Replace CHANGEME secrets in .env before sharing the instance with others. See Environment Variables.


Deployment modes

Mode 1 — Full stack (default)

docker compose up -d          # detached
docker compose ps             # check health
docker compose logs -f backend

Starts all 21 services. Frontend binds on 0.0.0.0:3000; all data stores bind on 127.0.0.1. For production, put a reverse proxy (Caddy, nginx, Traefik) in front for HTTPS.

Mode 2 — Dev overlay

docker compose -f docker-compose.yml -f docker-compose.dev.yml up
What changesDetail
Hot reload./futureagi volume-mounted into backend and workers — Python changes reload without rebuild. Frontend also supports hot-reload in dev mode.
Per-queue workers6 workers (worker-default, worker-tasks-s, worker-tasks-l, worker-tasks-xl, worker-trace-ingestion, worker-agent-compass) instead of one all-queue worker
Public DB portsPostgres, ClickHouse, Redis, MinIO, Temporal all bind on 0.0.0.0 for host tool access
Temporal UIhttp://localhost:8085
FAST_STARTUP=trueMigrations skipped on restart — run manually: docker compose exec -it backend bash -c "python manage.py migrate"

The base worker service is disabled in dev mode (moved to the oss-only profile) to prevent duplicate queue polling.

Mode 3 — Frontend only

For pointing the UI at a remote backend (another Compose project, a VM, or Future AGI Cloud).

VITE_HOST_API=https://api.your-backend.example.com \
  docker compose -f docker-compose.frontend.yml up --build

Warning

VITE_HOST_API is baked into the JS bundle at build time. Changing it requires a rebuild: docker compose -f docker-compose.frontend.yml build --no-cache frontend


Operations

# Logs
docker compose logs -f backend worker

# Shell into a container
docker compose exec backend bash
docker compose exec postgres psql -U futureagi -d futureagi

# Stop (data persists)
docker compose down

# Wipe all data and restart fresh
docker compose down -v

Upgrading

git pull
docker compose build
docker compose up -d

Migrations run automatically on startup. If a migration fails:

docker compose exec backend python manage.py migrate

If the release notes mention PeerDB mirror changes, re-run init after migrations complete:

docker compose run --rm peerdb-init bash /setup.sh

Next Steps

Was this page helpful?

Questions & Discussion