Docker 部署私人 AI 电脑助手 Moltbot
介绍如何使用 Docker 部署开源 AI 助手 Moltbot。内容包括环境准备、Docker Compose 配置、模型接入、聊天渠道绑定及 Web 控制台访问设置。通过自托管方案,实现本地隐私保护下的 AI 电脑控制能力,支持 Telegram 等多种通信协议。教程涵盖了从创建目录、编写配置文件到首次运行 Onboarding 向导的完整流程,并提供了反向代理配置及常见问题排查方法。

介绍如何使用 Docker 部署开源 AI 助手 Moltbot。内容包括环境准备、Docker Compose 配置、模型接入、聊天渠道绑定及 Web 控制台访问设置。通过自托管方案,实现本地隐私保护下的 AI 电脑控制能力,支持 Telegram 等多种通信协议。教程涵盖了从创建目录、编写配置文件到首次运行 Onboarding 向导的完整流程,并提供了反向代理配置及常见问题排查方法。

Moltbot 是什么?
Moltbot(之前叫 Clawdbot,现在最新的名字叫 OpenClaw)是一个开源的、高度可自托管的 AI 个人助手项目。它最大的特点是:
Telegram、WhatsApp、Discord、Slack、企业微信、飞书等)来和 AI 对话。AI 直接操作你的电脑(浏览器、文件、终端命令、截图、鼠标键盘等),而不是只能聊天。Ollama、Llama.cpp),也可以用 Claude、GPT-4o、Gemini 等云模型。Moltbot(最新版)的主要特点:
10+ 聊天渠道(Telegram、WhatsApp、Discord、Slack、iMessage、Signal 等)Puppeteer)、终端执行、文件读写、Canvas 绘画、定时任务(cron)Claude 3.5/Opus、GPT-4o、Gemini 1.5 Pro、本地 Ollama、Qwen 等Control UI / Dashboard)Docker 部署,支持一键安装脚本Moltbot 的典型应用场景包括:
AI 帮你批量处理网页、下载文件、填写表单、监控价格Telegram 远程操作家里的 NAS / 服务器AI 帮你写并执行 shell / Python 代码AI 接入各种已有 IM,打造私人 JarvisMoltbot = '把 Claude / GPT 装进你的 Telegram / WhatsApp,让它真的能通过电脑帮你做事'
在支持 Docker 的机器(如 NAS、服务器、PC)上以 Docker 方式安装。
因为 Moltbot 的权限很高,对运行的主机而言,存在文件误删等风险,所以建议用 docker 部署,可以把权限关在笼子里。虽然自主性可能会受限,需要手动确认某些操作,但好处是作为 NAS 用户,不用再单独去购买 Mac mini 或 VPS。
目前最推荐的方式是使用官方镜像配合 docker-compose 进行部署。
Docker 的机器(NAS、服务器、PC)Docker + Docker Compose 已安装API Key:Claude / MiniMax 等的 API Key(至少一个)通过 SSH 登录到您的服务器,执行下面的命令创建目录:
# 新建文件夹 moltbot 和子目录
mkdir -p /data/docker/moltbot/{config,data}
# 进入 moltbot 目录
cd /data/docker/moltbot
# 确保权限正确(node 用户 UID 1000)
chown -R 1000:1000 {config,data}
将以下内容保存为 docker-compose.yml 文件:
version: '3.8'
services:
moltbot-gateway:
image: ghcr.io/moltbot/moltbot:main
container_name: moltbot-gateway
restart: unless-stopped
ports:
- "18789:18789"
volumes:
- ./config:/home/node/.clawdbot
- ./data:/home/node/clawd
environment:
- HTTP_PROXY=http://<proxy_ip>:<proxy_port>
- HTTPS_PROXY=http://<proxy_ip>:<proxy_port>
- NO_PROXY="localhost,127.0.0.1,::1"
shm_size: 2g
command: node /app/dist/index.js gateway --port 18789
moltbot-cli:
image: ghcr.io/moltbot/moltbot:main
container_name: moltbot-cli
network_mode: "service:moltbot-gateway"
volumes:
- ./config:/home/node/.clawdbot
- ./data:/home/node/clawd
entrypoint: ["node", "dist/index.js"]
| 参数 | 说明 |
|---|---|
image | 使用的 Docker 镜像,指定 ghcr.io/moltbot/moltbot:main。 |
container_name | 容器的名称,为 moltbot-gateway,便于识别和管理。 |
restart | 容器的重启策略,设置为 unless-stopped,表示容器在非手动停止时会自动重启。 |
ports | 映射的端口,"18789:18789" 使主机的 18789 端口映射到容器的 18789 端口。 |
volumes | 挂载的本地目录,./config 目录映射到容器的 /home/node/.clawdbot,./data 映射到 /home/node/clawd。 |
environment | (非必须),通过环境变量设置代理,包括 HTTP 和 HTTPS 代理地址,以及不使用代理的地址列表。 |
shm_size | 设置共享内存大小为 2 GB,允许容器使用更大的共享内存。 |
command | 指定容器启动时的命令,运行 Node.js 应用,设定网关端口为 18789。 |
Clawdbot 之前改名为了 Moltbot,使用 /home/node/.clawdbot,容器中有提示要改为 /home/node/.moltbot,但是真用 /home/node/.moltbot,在执行 onboarding 时又无法生成 moltbot.json;| 参数 | 说明 |
|---|---|
image | 使用的 Docker 镜像,指定 ghcr.io/moltbot/moltbot:main。 |
container_name | 容器的名称,为 moltbot-cli,便于识别和管理。 |
network_mode | 设置网络模式为 service:moltbot-gateway,共享 moltbot-gateway 容器的网络栈和端口。 |
volumes | 挂载的本地目录,./config 映射到容器的 /home/node/.clawdbot,./data 映射到 /home/node/clawd。 |
entrypoint | 指定容器启动时的入口点,运行 Node.js 应用。 |
moltbot-gateway 时,用的地址是 127.0.0.1,只有设置了 network_mode: "service:moltbot-gateway",才能共享 moltbot-gateway 容器的网络栈和端口;moltbot-gateway 保持一致;# 运行设置
docker compose run --rm -it moltbot-cli onboard
交互向导出现后,按提示完成,会在 config 目录中生成 moltbot.json 设置文件。
第一步的 I understand this is powerful and inherently risky. Continue? 必须选择 Yes。
Onboarding mode 可以选择 QuickStart。
接下来选择模型,免费额度用于测试应该是可以的。
验证方式用了 OAuth。
稍等一会儿会出现一个链接,将其复制到浏览器中,用自己的账号登录。
验证通过后,选中模型,默认的就可以。
接下来选择通信软件,填入对应的 Bot Token。
Telegram 里搜索 @BotFather/newbotBotFather 给你的 token 复制下来SSH 终端,粘贴这个 token接下来会设置 skills 和 hooks。可以先跳过,后面随时可以加。
看到 Onboarding complete. 就设置完成了。
设置完成后,就可以启动 gateway 服务:
# 启动 gateway 服务
docker-compose up -d moltbot-gateway
上一步的 onboarding 设置中,会看到 Dashboard 的地址。
如果访问 http://<your_nas_ip>:18789/?token=<your token>,页面会显示错误 disconnected (1008): control ui requires HTTPS or localhost (secure context)。
建议使用反向代理方案实现外网访问。
在反向代理中的设置如下:
| 域名 | 局域网地址 | 备注 |
|---|---|---|
<your_domain> | http://<your_nas_ip>:18789 | moltbot 的访问地址 |
还需要将下面的代码填入到反向代理的 Advanced 中:
location /telegram-webhook {
proxy_pass http://<your_nas_ip>:18789//telegram-webhook;
proxy_method POST;
proxy_set_header Content-Type $content_type;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
}
现在访问 https://<your_domain>/?token=<your token>,如果显示需要配对 disconnected (1008): pairing required。
需要给 moltbot.json 增加写权限,否则修改不会生效。
需要给 moltbot.json 加一行 "trustedProxies": [<your_proxy_container_ip>, <your_host_ip>],也就是受信任的地址,需要考虑整个链路上的 IP,可能包括:
moltbot-gateway 的 IPIPIP 等;当然最好的办法还是查看 moltbot-gateway 容器的日志,看看哪个地址不受信任。
现在访问 https://<your_domain>/?token=<your token>。
显示需要配对。
回到 SSH 客户端列出设备:
# 列出当前已配对和待配对的设备
docker-compose run --rm moltbot-cli devices list
通过命令批准配对:
# 批准配对
docker-compose run --rm moltbot-cli devices approve <Request-ID>
# 实例
docker-compose run --rm moltbot-cli devices approve b332768e-cff3-437d-a1f8-262a51fcb0eb
如果觉得麻烦,可以修改 moltbot.json 改为自动批准,但不推荐。
{"gateway":{"deviceApproval":{"mode":"auto"}}}
现在就可以开始聊天了。
onboarding 向导设置时已经选择了 Telegram,但是向机器人发 /start,并没有得到回应,既然网页已经 OK 了,可以让 Moltbot 自己解决。
最后发现还是网络问题,所以在 moltbot.json 中增加了代理服务地址设置:
"channels":{"telegram":{"enabled":true,"botToken":"你的 TG_BOT_TOKEN","dmPolicy":"pairing","groupPolicy":"allowlist","streamMode":"partial","network":{"autoSelectFamily":true},"proxy":"http://<proxy_ip>:<proxy_port>"}},
再次发送 /start,就获得了回应,得到了配对码。
回到 SSH 客户端批准配对:
# 批准配对
docker-compose run --rm moltbot-cli pairing approve telegram <code>
完成配对之后,就可以开始工作了。
在网页端能同步可以看到相同的内容。
Moltbot 是目前最接近「把大模型变成电脑遥控器」的开源项目之一。
Docker 部署方式让它门槛大幅降低,但真正发挥威力还需要你不断调教模型、渠道、工具权限。
希望这套流程能帮助你快速上手。祝你玩得开心,AI 助你事半功倍!
moltbot/moltbot: Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞
地址:https://github.com/moltbot/moltbot
Moltbot — Personal AI Assistant
地址:https://www.molt.bot/
Docker - Moltbot
地址:https://docs.molt.bot/install/docker

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online
JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online
使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online
Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online