Docker Compose Deployment

Run BMAD agents locally with Docker Compose.

Prerequisites

Setup

Step 1: Clone the Repository

git clone https://github.com/t4tarzan/agent0-bmad-k8.git
cd agent0-bmad-k8

Step 2: Configure API Keys

Create the .env.live file with your API keys:

cat > .env.live << 'EOF'
API_KEY_OPENROUTER=sk-or-v1-your-openrouter-key
OPENAI_API_KEY=sk-your-openai-key-for-embeddings
EOF

Step 3: Configure the Agent .env

Create the mounted .env that Agent Zero reads internally:

mkdir -p a0-dotenv
cat > a0-dotenv/.env << 'EOF'
AUTH_LOGIN=admin
AUTH_PASSWORD=your-secure-password
A0_SET_mcp_server_token=your-api-token
A0_SET_chat_model_provider=openrouter
A0_SET_chat_model_name=moonshotai/kimi-k2.5
A0_SET_util_model_provider=openrouter
A0_SET_util_model_name=google/gemini-2.5-flash-preview
A0_SET_embed_model_provider=openai
A0_SET_embed_model_name=text-embedding-3-small
API_KEY_OPENROUTER=sk-or-v1-your-openrouter-key
OPENAI_API_KEY=sk-your-openai-key
EOF

Step 4: Start Agents

# Live demo config (5 agents)
docker compose -f docker-compose.live.yml up -d

# Full BMAD team (9 agents)
docker compose -f docker-compose.bmad.yml up -d

Agents take ~60 seconds to initialize. Check status:

docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}" | grep bmad

Compose Files

FileAgentsPortsUse Case
docker-compose.live.yml550001–50005Live demo, lighter resource usage
docker-compose.bmad.yml950001–50009Full BMAD team, complete workflow

Live Demo Agents (5)

ContainerAgentPort
bmad-live-orchestratorBMAD (Orchestrator)50001
bmad-live-analystMary (Analyst)50002
bmad-live-pmJohn (PM)50003
bmad-live-architectFred (Architect)50004
bmad-live-devDana (Developer)50005

Volumes

  • shared-projects — shared between all agents for collaboration artifacts
  • ./agents/bmad-{role}/ — per-agent profile (prompts, settings, skills)
  • ./a0-dotenv/.env — mounted to /a0/.env in each container

Starting the GMeet Interface

# Backend
cd gmeet/backend
npm install
node server.js   # Runs on ports 4000 (API) and 4001 (WS)

# Frontend (separate terminal)
cd gmeet/frontend
npm install
npm run dev      # Runs on port 5174 with hot reload

Stopping

# Stop containers (preserves volumes)
docker compose -f docker-compose.live.yml down

# Stop and remove volumes
docker compose -f docker-compose.live.yml down -v

Logs and Debugging

# All containers
docker compose -f docker-compose.live.yml logs -f

# Specific agent
docker logs -f bmad-live-orchestrator

# Check agent health
for port in 50001 50002 50003 50004 50005; do
  echo -n "Port $port: "
  curl -s -o /dev/null -w "%{http_code}" http://localhost:$port/
  echo
done