|
| 1 | +services: |
| 2 | + |
| 3 | + # ── eventage-claw (Rust AI agent, HTTP channel) ──────────────────────────── |
| 4 | + claw: |
| 5 | + image: ${CLAW_IMAGE:-ghcr.io/dwzhangdavid/eventage-claw:latest} |
| 6 | + build: |
| 7 | + # Build context is the workspace root so cargo can see all crates. |
| 8 | + context: ../.. |
| 9 | + dockerfile: crates/example-eventage-claw/Dockerfile |
| 10 | + restart: unless-stopped |
| 11 | + ports: |
| 12 | + - "3000:3000" |
| 13 | + volumes: |
| 14 | + # Persistent data: config.toml, skills/, memory/, tasks.json, events.jsonl |
| 15 | + # Bind-mount a local directory so you can edit config and skills directly. |
| 16 | + - ${CLAW_DATA_DIR:-../../data/claw}:/root/.claw |
| 17 | + environment: |
| 18 | + # LLM credentials — set in .env or environment |
| 19 | + ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY:-} |
| 20 | + OPENAI_API_KEY: ${OPENAI_API_KEY:-} |
| 21 | + LLM_URL: ${LLM_URL:-https://api.anthropic.com/v1} |
| 22 | + LLM_MODEL: ${LLM_MODEL:-claude-sonnet-4-6} |
| 23 | + # To also run the live replay UI: |
| 24 | + # ports: ["3000:3000", "4567:4567"] |
| 25 | + # command: ["--no-tui", "--http-port", "3000", "--replay"] |
| 26 | + |
| 27 | + # ── WhatsApp bridge (Node.js, Baileys) ──────────────────────────────────── |
| 28 | + # Optional: only needed for WhatsApp connectivity. |
| 29 | + # Comment this service out if using claw's HTTP channel directly. |
| 30 | + whatsapp-bridge: |
| 31 | + image: ${BRIDGE_IMAGE:-ghcr.io/dwzhangdavid/eventage-claw-bridge:latest} |
| 32 | + build: |
| 33 | + context: whatsapp-bridge |
| 34 | + dockerfile: Dockerfile |
| 35 | + restart: unless-stopped |
| 36 | + ports: |
| 37 | + - "3001:3001" |
| 38 | + volumes: |
| 39 | + # Baileys auth state (QR / pairing-code session) — must survive restarts |
| 40 | + - ${BRIDGE_AUTH_DIR:-../../data/bridge-auth}:/app/auth |
| 41 | + # Shared with claw so downloaded media is accessible to the agent |
| 42 | + - ${CLAW_DATA_DIR:-../../data/claw}:/root/.claw |
| 43 | + environment: |
| 44 | + CLAW_HTTP_URL: http://claw:3000 |
| 45 | + CLAW_GROUP: ${CLAW_GROUP:-personal} |
| 46 | + BRIDGE_PORT: 3001 |
| 47 | + AUTH_DIR: /app/auth |
| 48 | + # Media written here is read by the agent via RunCommandTool skills |
| 49 | + ATTACHMENTS_DIR: /root/.claw/groups/${CLAW_GROUP:-personal}/attachments |
| 50 | + # Optional: only forward messages starting with this prefix |
| 51 | + TRIGGER_PREFIX: ${TRIGGER_PREFIX:-} |
| 52 | + # Set to your phone number (e.g. +1234567890) to use pairing-code auth |
| 53 | + PAIRING_CODE: ${PAIRING_CODE:-} |
| 54 | + SELF_CHAT: ${SELF_CHAT:-false} |
| 55 | + depends_on: |
| 56 | + - claw |
| 57 | + |
| 58 | + # ── Uncomment to enable Docker-sandboxed tool execution ─────────────────── |
| 59 | + # This mounts the Docker socket so claw can spin up sibling containers. |
| 60 | + # Only needed when docker_enabled = true in config.toml. |
| 61 | + # |
| 62 | + # claw-with-docker: |
| 63 | + # extends: |
| 64 | + # service: claw |
| 65 | + # volumes: |
| 66 | + # - ${CLAW_DATA_DIR:-../../data/claw}:/root/.claw |
| 67 | + # - /var/run/docker.sock:/var/run/docker.sock |
0 commit comments