Files
agentmon/docker-compose.yaml
2026-05-20 22:19:58 -07:00

176 lines
4.6 KiB
YAML

services:
postgres:
image: postgres:16.13
container_name: agentmon-db
environment:
POSTGRES_PASSWORD: pass
POSTGRES_DB: agentmon
ports:
- "5432:5432"
volumes:
- postgres-data:/var/lib/postgresql/data
- ./deploy/k8s/postgres.sql:/docker-entrypoint-initdb.d/init.sql
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 5s
timeout: 5s
retries: 5
labels:
agentmon.monitor: "true"
agentmon.group: agentmon
agentmon.role: db
restart: unless-stopped
nats:
image: nats@sha256:7971c76fcd4057c090faf5bc7673199ffe0ae586704518e9a469f156155b4e47
container_name: agentmon-nats
ports:
- "4222:4222"
command: "--jetstream"
volumes:
- nats-data:/data
labels:
agentmon.monitor: "true"
agentmon.group: agentmon
agentmon.role: queue
restart: unless-stopped
ingest-gateway:
build: .
container_name: agentmon-ingest
command: ingest-gateway
ports:
- "8080:8080"
depends_on:
nats:
condition: service_started
environment:
AGENTMON_ADDR: :8080
NATS_URL: nats://nats:4222
NATS_TOPIC: agentmon.events.v1
labels:
agentmon.monitor: "true"
agentmon.group: agentmon
agentmon.role: api
agentmon.port: "8080"
restart: unless-stopped
query-api:
build: .
container_name: agentmon-query
command: query-api
ports:
- "8081:8081"
depends_on:
nats:
condition: service_started
postgres:
condition: service_healthy
environment:
AGENTMON_QUERY_ADDR: :8081
DATABASE_URL: postgres://postgres:pass@postgres:5432/agentmon?sslmode=disable
AGENTMON_QUERY_BASE: http://localhost:8081
NATS_URL: nats://nats:4222
NATS_TOPIC: agentmon.events.v1
labels:
agentmon.monitor: "true"
agentmon.group: agentmon
agentmon.role: api
agentmon.port: "8081"
restart: unless-stopped
web-ui:
build: .
container_name: agentmon-ui
command: web-ui
ports:
- "8082:8082"
depends_on:
query-api:
condition: service_started
environment:
AGENTMON_UI_ADDR: :8082
AGENTMON_QUERY_BASE: http://query-api:8081
labels:
agentmon.monitor: "true"
agentmon.group: agentmon
agentmon.role: api
agentmon.port: "8082"
restart: unless-stopped
event-processor:
build: .
container_name: agentmon-processor
command: event-processor
depends_on:
postgres:
condition: service_healthy
nats:
condition: service_started
environment:
DATABASE_URL: postgres://postgres:pass@postgres:5432/agentmon?sslmode=disable
NATS_URL: nats://nats:4222
NATS_TOPIC: agentmon.events.v1
labels:
agentmon.monitor: "true"
agentmon.group: agentmon
agentmon.role: worker
restart: unless-stopped
swarm-monitor:
build: .
container_name: agentmon-swarm-monitor
command: swarm-monitor
network_mode: host
depends_on:
nats:
condition: service_started
environment:
NATS_URL: nats://localhost:4222
NATS_TOPIC: agentmon.events.v1
POLL_INTERVAL: 30s
LITELLM_BASE_URL: http://localhost:18804
LITELLM_MASTER_KEY: ${LITELLM_MASTER_KEY:-}
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
labels:
agentmon.monitor: "true"
agentmon.group: agentmon
agentmon.role: worker
restart: unless-stopped
openclaw-monitor:
build: .
container_name: agentmon-openclaw-monitor
command: openclaw-monitor
network_mode: host
depends_on:
nats:
condition: service_started
environment:
NATS_URL: nats://localhost:4222
NATS_TOPIC: agentmon.events.v1
OPENCLAW_REGISTRY: /openclaw-registry/openclaw-instances.json
POLL_INTERVAL: 30s
OPENCLAW_MINIO_INSTANCE: zap
OPENCLAW_MINIO_ENDPOINT: http://192.168.153.253:9000
OPENCLAW_MINIO_BUCKET: zap
OPENCLAW_MINIO_PREFIX: backups
volumes:
- /home/will/.claude/state/openclaw-instances.json:/openclaw-registry/openclaw-instances.json:ro
- /home/will/.aws:/root/.aws:ro
- /var/run/libvirt/libvirt-sock:/var/run/libvirt/libvirt-sock
- /home/will/.ssh/id_rsa:/root/.ssh/id_rsa:ro
- /home/will/.ssh/id_rsa.pub:/root/.ssh/id_rsa.pub:ro
- /home/will/.ssh/authorized_keys:/root/.ssh/authorized_keys:ro
- /var/lib/libvirt:/var/lib/libvirt:ro
labels:
agentmon.monitor: "true"
agentmon.group: agentmon
agentmon.role: worker
restart: unless-stopped
volumes:
postgres-data:
nats-data: