Self-host with Docker
Docker mode runs two services:
- App (control plane): UI + scheduler/state machine + SQLite + SSE
- Runner (execution plane): isolated execution (starts sandbox containers and streams logs back)
Quick start
Section titled “Quick start”-
Download
docker-compose.release.ymland.env.productionTerminal window curl -fsSL -o docker-compose.release.yml https://raw.githubusercontent.com/obiscr/maia/main/docker-compose.release.ymlcurl -fsSL -o .env.production https://raw.githubusercontent.com/obiscr/maia/main/env.example -
Edit
.env.productionand setRUNNER_TOKEN..env.production RUNNER_TOKEN=your-token -
Start
Terminal window docker compose -f docker-compose.release.yml --env-file .env.production up -d
Set up
Section titled “Set up” Initial setup Open http://localhost:3690 to run the initial setup wizard.
Get updates
Section titled “Get updates”When you use docker-compose.release.yml (pre-built image) to deploy, updates usually involve “pulling new image → rebuilding and restarting”:
docker compose -f docker-compose.release.yml --env-file .env.production pulldocker compose -f docker-compose.release.yml --env-file .env.production up -d --remove-orphans