Deploy with Docker Compose
Run Baker Street locally with Docker Compose for development and testing.
Deploy with Docker Compose
Docker Compose provides a quick way to run Baker Street locally for development and testing. This is not recommended for production use -- see the Kubernetes deployment guide for production.
Prerequisites
- Docker and Docker Compose v2 installed
- An Anthropic API key
- A Voyage AI API key for memory embeddings
Environment Setup
Create a .env file in the project root:
# LLM and Embedding
ANTHROPIC_API_KEY=sk-ant-...
VOYAGEAI_API_KEY=pa-...
# JWT for API authentication
JWT_SECRET=change-this-to-a-random-string
# Optional: messaging integrations
TELEGRAM_BOT_TOKEN=
DISCORD_BOT_TOKEN=
Start the Stack
docker compose up -d
This launches all core services:
| Service | Port | Description |
|---|---|---|
| brain | 3000 | Agent orchestrator |
| worker | -- | Background job processor |
| gateway | 3001 | Telegram/Discord bridge |
| ui | 8080 | Web interface |
| nats | 4222 | Message bus |
| qdrant | 6333 | Vector memory store |
Verify Services
Check that all containers are running:
docker compose ps
Open the web UI at http://localhost:8080 and send a test message.
Viewing Logs
# All services
docker compose logs -f
# Single service
docker compose logs -f brain
Development Workflow
For active development, mount source directories as volumes so changes are reflected without rebuilding:
docker compose -f docker-compose.yml -f docker-compose.dev.yml up -d
The development overlay mounts packages/ and services/ as volumes with hot-reload enabled via tsx watch.
Rebuilding After Changes
docker compose build brain worker gateway
docker compose up -d
Limitations
The Docker Compose setup does not support:
- Task Pods -- these require a Kubernetes API to launch Jobs
- Extensions -- pod-based MCP extensions need Kubernetes service discovery
- Network Policies -- Docker networking does not enforce the same isolation guarantees
- Companion agents -- distributed agent features require NATS accessible from external hosts
For the full feature set, deploy to a Kubernetes cluster.