跳到主要内容Docker 部署私人 AI 电脑助手 Moltbot | 极客日志JavaScriptNode.jsAI
Docker 部署私人 AI 电脑助手 Moltbot
综述由AI生成介绍如何使用 Docker 部署开源 AI 助手 Moltbot。内容包括环境准备、Docker Compose 配置、模型接入、聊天渠道绑定及 Web 控制台访问设置。通过自托管方案,实现本地隐私保护下的 AI 电脑控制能力,支持 Telegram 等多种通信协议。教程涵盖了从创建目录、编写配置文件到首次运行 Onboarding 向导的完整流程,并提供了反向代理配置及常见问题排查方法。
星河入梦21K 浏览 Docker 部署私人 AI 电脑助手 Moltbot
简介
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 等
- 记忆系统(长期记忆 + 会话记忆)
- Web 控制面板(
Control UI / Dashboard)
- 完全
Docker 部署,支持一键安装脚本
应用场景
Moltbot 的典型应用场景包括:
- 个人效率工具:让
AI 帮你批量处理网页、下载文件、填写表单、监控价格
- 远程控制电脑:出差时用手机
Telegram 远程操作家里的 NAS / 服务器
- 自动化脚本替代品:用自然语言描述需求,
AI 帮你写并执行 shell / Python 代码
- 极客玩具:把
AI 接入各种已有 IM,打造私人 Jarvis
Moltbot = '把 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 登录到您的服务器,执行下面的命令创建目录:
mkdir -p /data/docker/moltbot/{config,data}
cd /data/docker/moltbot
chown -R 1000:1000 {config,data}
创建 docker-compose.yml
将以下内容保存为 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"]
moltbot-gateway 容器参数说明
| 参数 | 说明 |
|---|
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;
- 环境变量中的网络代理设置是非必须的,主要解决跟国外的聊天软件的联通问题,如果你用国内的飞书等,可以不需要设置;
moltbot-cli 容器参数说明
| 参数 | 说明 |
|---|
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 保持一致;
首次运行 onboarding
docker compose run --rm -it moltbot-cli onboard
交互向导出现后,按提示完成,会在 config 目录中生成 moltbot.json 设置文件。
第一步的 I understand this is powerful and inherently risky. Continue? 必须选择 Yes。
Onboarding mode 可以选择 QuickStart。
稍等一会儿会出现一个链接,将其复制到浏览器中,用自己的账号登录。
接下来选择通信软件,填入对应的 Bot Token。
- 在
Telegram 里搜索 @BotFather
- 给它发送
/newbot
- 给你的机器人起个名字(随便起,好记就行)
- 把
BotFather 给你的 token 复制下来
- 回到
SSH 终端,粘贴这个 token
接下来会设置 skills 和 hooks。可以先跳过,后面随时可以加。
看到 Onboarding complete. 就设置完成了。
启动 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;
}
修改 moltbot.json
现在访问 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 的 IP
- 反向代理容器的
IP
- 家宽的公网
IP 等;
当然最好的办法还是查看 moltbot-gateway 容器的日志,看看哪个地址不受信任。
访问 Web 控制台(Control UI)
现在访问 https://<your_domain>/?token=<your token>。
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"}}}
在 Telegram 中使用
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,就获得了回应,得到了配对码。
docker-compose run --rm moltbot-cli pairing approve telegram <code>
结语
Moltbot 是目前最接近「把大模型变成电脑遥控器」的开源项目之一。
Docker 部署方式让它门槛大幅降低,但真正发挥威力还需要你不断调教模型、渠道、工具权限。
希望这套流程能帮助你快速上手。祝你玩得开心,AI 助你事半功倍!
参考文档
相关免费在线工具
- RSA密钥对生成器
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
- Mermaid 预览与可视化编辑
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
- 随机西班牙地址生成器
随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online
- Keycode 信息
查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online
- Escape 与 Native 编解码
JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online
- JavaScript / HTML 格式化
使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online