refactor: rename clawdbot to moltbot with legacy compat

This commit is contained in:
Peter Steinberger
2026-01-27 12:19:58 +00:00
parent 83460df96f
commit 6d16a658e5
1839 changed files with 11250 additions and 11199 deletions

View File

@@ -1,5 +1,5 @@
---
summary: "Optional Docker-based setup and onboarding for Clawdbot"
summary: "Optional Docker-based setup and onboarding for Moltbot"
read_when:
- You want a containerized gateway instead of local installs
- You are validating the Docker flow
@@ -11,12 +11,12 @@ Docker is **optional**. Use it only if you want a containerized gateway or to va
## Is Docker right for me?
- **Yes**: you want an isolated, throwaway gateway environment or to run Clawdbot on a host without local installs.
- **Yes**: you want an isolated, throwaway gateway environment or to run Moltbot on a host without local installs.
- **No**: youre running on your own machine and just want the fastest dev loop. Use the normal install flow instead.
- **Sandboxing note**: agent sandboxing uses Docker too, but it does **not** require the full gateway to run in Docker. See [Sandboxing](/gateway/sandboxing).
This guide covers:
- Containerized Gateway (full Clawdbot in Docker)
- Containerized Gateway (full Moltbot in Docker)
- Per-session Agent Sandbox (host gateway + Docker-isolated agent tools)
Sandboxing details: [Sandboxing](/gateway/sandboxing)
@@ -61,9 +61,9 @@ Running on a VPS? See [Hetzner (Docker VPS)](/platforms/hetzner).
### Manual flow (compose)
```bash
docker build -t clawdbot:local -f Dockerfile .
docker compose run --rm clawdbot-cli onboard
docker compose up -d clawdbot-gateway
docker build -t moltbot:local -f Dockerfile .
docker compose run --rm moltbot-cli onboard
docker compose up -d moltbot-gateway
```
### Extra mounts (optional)
@@ -71,7 +71,7 @@ docker compose up -d clawdbot-gateway
If you want to mount additional host directories into the containers, set
`CLAWDBOT_EXTRA_MOUNTS` before running `docker-setup.sh`. This accepts a
comma-separated list of Docker bind mounts and applies them to both
`clawdbot-gateway` and `clawdbot-cli` by generating `docker-compose.extra.yml`.
`moltbot-gateway` and `moltbot-cli` by generating `docker-compose.extra.yml`.
Example:
@@ -97,14 +97,14 @@ named volume here (not a bind path); for bind mounts, use
Example:
```bash
export CLAWDBOT_HOME_VOLUME="clawdbot_home"
export CLAWDBOT_HOME_VOLUME="moltbot_home"
./docker-setup.sh
```
You can combine this with extra mounts:
```bash
export CLAWDBOT_HOME_VOLUME="clawdbot_home"
export CLAWDBOT_HOME_VOLUME="moltbot_home"
export CLAWDBOT_EXTRA_MOUNTS="$HOME/.codex:/home/node/.codex:ro,$HOME/github:/home/node/github:rw"
./docker-setup.sh
```
@@ -172,17 +172,17 @@ Use the CLI container to configure channels, then restart the gateway if needed.
WhatsApp (QR):
```bash
docker compose run --rm clawdbot-cli channels login
docker compose run --rm moltbot-cli channels login
```
Telegram (bot token):
```bash
docker compose run --rm clawdbot-cli channels add --channel telegram --token "<token>"
docker compose run --rm moltbot-cli channels add --channel telegram --token "<token>"
```
Discord (bot token):
```bash
docker compose run --rm clawdbot-cli channels add --channel discord --token "<token>"
docker compose run --rm moltbot-cli channels add --channel discord --token "<token>"
```
Docs: [WhatsApp](/channels/whatsapp), [Telegram](/channels/telegram), [Discord](/channels/discord)
@@ -190,7 +190,7 @@ Docs: [WhatsApp](/channels/whatsapp), [Telegram](/channels/telegram), [Discord](
### Health check
```bash
docker compose exec clawdbot-gateway node dist/index.js health --token "$CLAWDBOT_GATEWAY_TOKEN"
docker compose exec moltbot-gateway node dist/index.js health --token "$CLAWDBOT_GATEWAY_TOKEN"
```
### E2E smoke test (Docker)
@@ -242,7 +242,7 @@ precedence, and troubleshooting.
### Default behavior
- Image: `clawdbot-sandbox:bookworm-slim`
- Image: `moltbot-sandbox:bookworm-slim`
- One container per agent
- Agent workspace access: `workspaceAccess: "none"` (default) uses `~/.clawdbot/sandboxes`
- `"ro"` keeps the sandbox workspace at `/workspace` and mounts the agent workspace read-only at `/agent` (disables `write`/`edit`/`apply_patch`)
@@ -258,9 +258,9 @@ If you plan to install packages in `setupCommand`, note:
- Default `docker.network` is `"none"` (no egress).
- `readOnlyRoot: true` blocks package installs.
- `user` must be root for `apt-get` (omit `user` or set `user: "0:0"`).
Clawdbot auto-recreates containers when `setupCommand` (or docker config) changes
Moltbot auto-recreates containers when `setupCommand` (or docker config) changes
unless the container was **recently used** (within ~5 minutes). Hot containers
log a warning with the exact `clawdbot sandbox recreate ...` command.
log a warning with the exact `moltbot sandbox recreate ...` command.
```json5
{
@@ -272,7 +272,7 @@ log a warning with the exact `clawdbot sandbox recreate ...` command.
workspaceAccess: "none", // none | ro | rw
workspaceRoot: "~/.clawdbot/sandboxes",
docker: {
image: "clawdbot-sandbox:bookworm-slim",
image: "moltbot-sandbox:bookworm-slim",
workdir: "/workspace",
readOnlyRoot: true,
tmpfs: ["/tmp", "/var/tmp", "/run"],
@@ -290,7 +290,7 @@ log a warning with the exact `clawdbot sandbox recreate ...` command.
nproc: 256
},
seccompProfile: "/path/to/seccomp.json",
apparmorProfile: "clawdbot-sandbox",
apparmorProfile: "moltbot-sandbox",
dns: ["1.1.1.1", "8.8.8.8"],
extraHosts: ["internal.service:10.0.0.5"]
},
@@ -325,7 +325,7 @@ Multi-agent: override `agents.defaults.sandbox.{docker,browser,prune}.*` per age
scripts/sandbox-setup.sh
```
This builds `clawdbot-sandbox:bookworm-slim` using `Dockerfile.sandbox`.
This builds `moltbot-sandbox:bookworm-slim` using `Dockerfile.sandbox`.
### Sandbox common image (optional)
If you want a sandbox image with common build tooling (Node, Go, Rust, etc.), build the common image:
@@ -334,11 +334,11 @@ If you want a sandbox image with common build tooling (Node, Go, Rust, etc.), bu
scripts/sandbox-common-setup.sh
```
This builds `clawdbot-sandbox-common:bookworm-slim`. To use it:
This builds `moltbot-sandbox-common:bookworm-slim`. To use it:
```json5
{
agents: { defaults: { sandbox: { docker: { image: "clawdbot-sandbox-common:bookworm-slim" } } } }
agents: { defaults: { sandbox: { docker: { image: "moltbot-sandbox-common:bookworm-slim" } } } }
}
```
@@ -350,7 +350,7 @@ To run the browser tool inside the sandbox, build the browser image:
scripts/sandbox-browser-setup.sh
```
This builds `clawdbot-sandbox-browser:bookworm-slim` using
This builds `moltbot-sandbox-browser:bookworm-slim` using
`Dockerfile.sandbox-browser`. The container runs Chromium with CDP enabled and
an optional noVNC observer (headful via Xvfb).
@@ -379,7 +379,7 @@ Custom browser image:
{
agents: {
defaults: {
sandbox: { browser: { image: "my-clawdbot-browser" } }
sandbox: { browser: { image: "my-moltbot-browser" } }
}
}
}
@@ -398,14 +398,14 @@ Prune rules (`agents.defaults.sandbox.prune`) apply to browser containers too.
Build your own image and point config to it:
```bash
docker build -t my-clawdbot-sbx -f Dockerfile.sandbox .
docker build -t my-moltbot-sbx -f Dockerfile.sandbox .
```
```json5
{
agents: {
defaults: {
sandbox: { docker: { image: "my-clawdbot-sbx" } }
sandbox: { docker: { image: "my-moltbot-sbx" } }
}
}
}
@@ -437,11 +437,11 @@ Example:
## Troubleshooting
- Image missing: build with [`scripts/sandbox-setup.sh`](https://github.com/clawdbot/clawdbot/blob/main/scripts/sandbox-setup.sh) or set `agents.defaults.sandbox.docker.image`.
- Image missing: build with [`scripts/sandbox-setup.sh`](https://github.com/moltbot/moltbot/blob/main/scripts/sandbox-setup.sh) or set `agents.defaults.sandbox.docker.image`.
- Container not running: it will auto-create per session on demand.
- Permission errors in sandbox: set `docker.user` to a UID:GID that matches your
mounted workspace ownership (or chown the workspace folder).
- Custom tools not found: Clawdbot runs commands with `sh -lc` (login shell), which
- Custom tools not found: Moltbot runs commands with `sh -lc` (login shell), which
sources `/etc/profile` and may reset PATH. Set `docker.env.PATH` to prepend your
custom tool paths (e.g., `/custom/bin:/usr/local/share/npm-global/bin`), or add
a script under `/etc/profile.d/` in your Dockerfile.