176 lines
4.6 KiB
YAML
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:
|