9943fd4410
Spirit now monitors #notifications Matrix room for Prometheus alerts, auto-investigates issues, takes corrective action (container restarts, disk cleanup, etc.), and documents incidents in Wiki.js. Changes: - Custom spirit-ops Docker image (Docker CLI + SSH + diagnostic tools) - Docker socket mount for local container management - SSH keys for remote access to hf-pdocker-02 and bart - Wiki.js API integration for incident documentation - Prometheus probe for Spirit gateway health - Safety guardrails: protected services, rate limiting, escalation Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
126 lines
4.0 KiB
YAML
126 lines
4.0 KiB
YAML
services:
|
|
margaret:
|
|
image: margaret-openclaw:latest
|
|
container_name: margaret
|
|
restart: unless-stopped
|
|
network_mode: host
|
|
user: "0:0"
|
|
environment:
|
|
- NODE_ENV=production
|
|
- HOME=/home/glyptic
|
|
- USER=glyptic
|
|
- ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
|
|
- OPENCLAW_STATE_DIR=/home/glyptic/.openclaw
|
|
- OPENCLAW_CONFIG_PATH=/home/glyptic/.openclaw/openclaw.json
|
|
volumes:
|
|
- /mnt/infrastructure/margaret:/home/glyptic/.openclaw
|
|
command: ["sh", "-c", "mkdir -p /home/glyptic && node --max-old-space-size=1500 /usr/local/lib/node_modules/openclaw/dist/index.js gateway --allow-unconfigured"]
|
|
mem_limit: 2G
|
|
memswap_limit: 2G
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "50m"
|
|
max-file: "3"
|
|
|
|
spirit:
|
|
image: spirit-ops:latest
|
|
container_name: spirit
|
|
restart: unless-stopped
|
|
network_mode: host
|
|
user: "0:0"
|
|
labels:
|
|
- com.centurylinklabs.watchtower.enable=false
|
|
environment:
|
|
- NODE_ENV=production
|
|
- HOME=/home/glyptic
|
|
- USER=glyptic
|
|
- ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
|
|
- WIKIJS_API_KEY=${WIKIJS_API_KEY}
|
|
- OPENCLAW_STATE_DIR=/home/glyptic/.spirit
|
|
- OPENCLAW_CONFIG_PATH=/home/glyptic/.spirit/openclaw.json
|
|
volumes:
|
|
- /mnt/infrastructure/spirit:/home/glyptic/.spirit
|
|
- /var/run/docker.sock:/var/run/docker.sock
|
|
- /mnt/infrastructure/spirit/ssh:/root/.ssh:ro
|
|
command: ["sh", "-c", "mkdir -p /home/glyptic && node --max-old-space-size=1500 /usr/local/lib/node_modules/openclaw/dist/index.js gateway --allow-unconfigured"]
|
|
mem_limit: 3G
|
|
memswap_limit: 3G
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "50m"
|
|
max-file: "3"
|
|
|
|
bob:
|
|
image: margaret-openclaw:latest
|
|
container_name: bob
|
|
restart: unless-stopped
|
|
network_mode: host
|
|
user: "0:0"
|
|
environment:
|
|
- NODE_ENV=production
|
|
- HOME=/home/glyptic
|
|
- USER=glyptic
|
|
- ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
|
|
- OPENCLAW_STATE_DIR=/home/glyptic/.bob
|
|
- OPENCLAW_CONFIG_PATH=/home/glyptic/.bob/openclaw.json
|
|
volumes:
|
|
- /mnt/infrastructure/bob:/home/glyptic/.bob
|
|
command: ["sh", "-c", "mkdir -p /home/glyptic && node --max-old-space-size=1500 /usr/local/lib/node_modules/openclaw/dist/index.js gateway --allow-unconfigured"]
|
|
mem_limit: 2G
|
|
memswap_limit: 2G
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "50m"
|
|
max-file: "3"
|
|
|
|
clippy:
|
|
image: margaret-openclaw:latest
|
|
container_name: clippy
|
|
restart: unless-stopped
|
|
network_mode: host
|
|
user: "0:0"
|
|
environment:
|
|
- NODE_ENV=production
|
|
- HOME=/home/glyptic
|
|
- USER=glyptic
|
|
- ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
|
|
- OPENCLAW_STATE_DIR=/home/glyptic/.clippy
|
|
- OPENCLAW_CONFIG_PATH=/home/glyptic/.clippy/openclaw.json
|
|
volumes:
|
|
- /mnt/infrastructure/clippy:/home/glyptic/.clippy
|
|
command: ["sh", "-c", "mkdir -p /home/glyptic && node --max-old-space-size=1500 /usr/local/lib/node_modules/openclaw/dist/index.js gateway --allow-unconfigured"]
|
|
mem_limit: 2G
|
|
memswap_limit: 2G
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "50m"
|
|
max-file: "3"
|
|
|
|
travis:
|
|
image: travis-nemoclaw:latest
|
|
container_name: travis
|
|
restart: unless-stopped
|
|
network_mode: host
|
|
user: "0:0"
|
|
environment:
|
|
- NODE_ENV=production
|
|
- HOME=/home/glyptic
|
|
- USER=glyptic
|
|
- ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
|
|
- OPENCLAW_STATE_DIR=/home/glyptic/.travis
|
|
- OPENCLAW_CONFIG_PATH=/home/glyptic/.travis/openclaw.json
|
|
volumes:
|
|
- /mnt/infrastructure/travis:/home/glyptic/.travis
|
|
command: ["sh", "-c", "mkdir -p /home/glyptic && openclaw plugins install /opt/nemoclaw 2>/dev/null; node --max-old-space-size=1500 /usr/local/lib/node_modules/openclaw/dist/index.js gateway --allow-unconfigured"]
|
|
mem_limit: 2G
|
|
memswap_limit: 2G
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "50m"
|
|
max-file: "3"
|