133 lines
2.9 KiB
YAML
133 lines
2.9 KiB
YAML
version: '3.8'
|
|
|
|
services:
|
|
# --- UI & Dashboard ---
|
|
dashboard:
|
|
build:
|
|
context: ./dashboard
|
|
container_name: clawdhub
|
|
restart: unless-stopped
|
|
ports:
|
|
- "3000:3000"
|
|
environment:
|
|
- VITE_CLAWDBOT_API=http://clawdbot:18789
|
|
- VITE_OPENPOKE_API=http://openpoke:8000
|
|
- VITE_AGENT_ZERO_API=http://agentzero:8080
|
|
networks:
|
|
- clawd-mesh
|
|
depends_on:
|
|
- clawdbot
|
|
- openpoke
|
|
- agentzero
|
|
|
|
# --- Agent Runtimes ---
|
|
|
|
# Clawdbot (The Headless Runtime)
|
|
# Uses the official image or builds from source
|
|
clawdbot:
|
|
image: ghcr.io/clawdbot/clawdbot:latest
|
|
container_name: clawdbot
|
|
volumes:
|
|
- ./data/clawdbot:/var/lib/clawdbot
|
|
- /var/run/docker.sock:/var/run/docker.sock # Needs docker access for tools
|
|
environment:
|
|
- CLAWDBOT_PORT=18789
|
|
- ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
|
|
networks:
|
|
- clawd-mesh
|
|
|
|
# OpenPoke (The Proactive Assistant)
|
|
# Requires Postgres and Redis
|
|
openpoke:
|
|
image: ghcr.io/composiohq/open-poke:latest
|
|
container_name: openpoke
|
|
ports:
|
|
- "8000:8000"
|
|
environment:
|
|
- DATABASE_URL=postgresql://user:password@postgres:5432/poke
|
|
- REDIS_URL=redis://redis:6379
|
|
depends_on:
|
|
- postgres
|
|
- redis
|
|
networks:
|
|
- clawd-mesh
|
|
|
|
# Agent Zero (The Autonomous Agent)
|
|
agentzero:
|
|
image: agentzero/agent-zero:latest
|
|
container_name: agentzero
|
|
privileged: true # Needs root for OS control
|
|
ports:
|
|
- "8080:8080"
|
|
volumes:
|
|
- ./data/agentzero_memory:/app/memory
|
|
networks:
|
|
- clawd-mesh
|
|
|
|
# --- Infrastructure & Observability ---
|
|
|
|
postgres:
|
|
image: postgres:15-alpine
|
|
- "${CLAWDBOT_GATEWAY_PORT:-18789}:18789"
|
|
- "${CLAWDBOT_BRIDGE_PORT:-18790}:18790"
|
|
init: true
|
|
restart: unless-stopped
|
|
command:
|
|
[
|
|
"node",
|
|
"dist/index.js",
|
|
"gateway",
|
|
"--bind",
|
|
"${CLAWDBOT_GATEWAY_BIND:-lan}",
|
|
"--port",
|
|
"${CLAWDBOT_GATEWAY_PORT:-18789}"
|
|
]
|
|
|
|
moltbot-cli:
|
|
image: ${CLAWDBOT_IMAGE:-moltbot:local}
|
|
environment:
|
|
POSTGRES_USER: user
|
|
POSTGRES_PASSWORD: password
|
|
POSTGRES_DB: poke
|
|
volumes:
|
|
- postgres_data:/var/lib/postgresql/data
|
|
networks:
|
|
- clawd-mesh
|
|
|
|
redis:
|
|
image: redis:alpine
|
|
networks:
|
|
- clawd-mesh
|
|
|
|
prometheus:
|
|
image: prom/prometheus
|
|
volumes:
|
|
- ./observability/prometheus.yml:/etc/prometheus/prometheus.yml
|
|
ports:
|
|
- "9090:9090"
|
|
networks:
|
|
- clawd-mesh
|
|
|
|
grafana:
|
|
image: grafana/grafana
|
|
ports:
|
|
- "3001:3000"
|
|
networks:
|
|
- clawd-mesh
|
|
|
|
# Tailscale (Optional - Uncomment to join mesh)
|
|
# tailscale:
|
|
# image: tailscale/tailscale
|
|
# network_mode: host
|
|
# privileged: true
|
|
# environment:
|
|
# - TS_AUTHKEY=${TS_AUTHKEY}
|
|
# - TS_STATE_DIR=/var/lib/tailscale
|
|
|
|
networks:
|
|
clawd-mesh:
|
|
driver: bridge
|
|
|
|
volumes:
|
|
postgres_data:
|