Docker
Run and operate the full stack with Docker Compose and Docker Swarm.
This guide covers the repo's Docker files and exactly when to use each.
Use docker-compose.yml for developer backing services and optional local feature services.
Use docker-compose-app.yml to run app/admin/web/worker plus infra on one machine.
Use docker-stack.yml with GitLab CI/CD for production-like rolling updates and controlled deploys.
Compose File Roles
docker-compose.yml (infra-first local)
Best for local development backing services:
- postgres, redis, minio, createbuckets, maildev
- optional: searxng, qdrant, neo4j, converter
- optional worker profile:
worker
Start all services:
docker compose up -dStart infra + worker profile:
docker compose --profile worker up -ddocker-compose-app.yml (full runtime on one host)
Best for running app + admin + web + worker with infra in one Compose project.
docker compose -f docker-compose-app.yml up -d
docker compose -f docker-compose-app.yml logs -f appdocker-stack.yml (Swarm production)
Best for GitLab-driven production deploys with replicas and rolling updates.
docker swarm init
docker stack deploy -c docker-stack.yml ai --with-registry-auth
docker stack services ai
docker stack ps aiCommon Operations
Health checks
bun health
bun health:waitLogs and status
docker compose ps
docker compose logs -f
docker compose logs -f appFor stack mode:
docker stack services ai
docker service logs -f ai_appMigrations and seed
Local:
bun db:migrate
bun db:seed:plansContainer-based:
docker compose exec app bun run db:migrate
docker compose exec app bun run packages/db/src/seed-plans.tsMinimal Services Mode
Run only required local services:
docker compose up postgres redis minio createbuckets maildev -dThen disable optional capabilities in env files:
FEATURE_SEARCH_ENABLED=falseFEATURE_DEEP_SEARCH_ENABLED=falseFEATURE_MEMORY_ENABLED=falseDEVELOPMENT_MODE=true