# IT0 OpenClaw Bridge

Custom Docker image that bundles the official [OpenClaw](https://github.com/openclaw/openclaw) agent with the IT0 Bridge process, enabling IT0's agent-service to manage and monitor OpenClaw instances.

## Architecture

```
Container (single image, two processes via supervisord)
  ├── openclaw gateway  (internal port 18789, NOT exposed)
  └── it0-bridge        (external port 3000, exposed to IT0)
        ├── GET  /health    — liveness probe
        ├── GET  /status    — detailed status
        ├── POST /task      — submit task to OpenClaw
        ├── GET  /sessions  — list sessions
        └── GET  /metrics   — usage metrics
```

## Build & Push

```bash
docker build -t it0hub/openclaw-bridge:latest .
docker push it0hub/openclaw-bridge:latest
```

## Environment Variables

| Variable | Required | Description |
|---|---|---|
| `OPENCLAW_GATEWAY_TOKEN` | Yes | Internal OpenClaw gateway auth token |
| `CLAUDE_API_KEY` | Yes | Anthropic API key (injected by IT0) |
| `IT0_INSTANCE_ID` | Yes | UUID from IT0's agent_instances table |
| `IT0_AGENT_SERVICE_URL` | Yes | IT0 agent-service URL for heartbeat |

## Deploy (via iAgent SSH)

```bash
docker run -d \
  --name openclaw-{instanceId} \
  --restart unless-stopped \
  -p {hostPort}:3000 \
  -v /data/openclaw/{instanceId}:/home/node/.openclaw \
  -e OPENCLAW_GATEWAY_TOKEN={token} \
  -e CLAUDE_API_KEY={claudeApiKey} \
  -e IT0_INSTANCE_ID={instanceId} \
  -e IT0_AGENT_SERVICE_URL=https://it0api.szaiai.com \
  it0hub/openclaw-bridge:latest
```
