基于 Docker 部署 Moltbot 私人 AI 助手指南
介绍使用 Docker 在 NAS 或服务器部署 Moltbot 开源项目的完整流程。Moltbot 是一个支持多平台聊天软件接入的自托管 AI 个人助手,具备电脑控制能力。内容包含环境准备、Docker Compose 配置、Onboarding 向导设置、Web 控制台反向代理配置以及 Telegram 设备配对步骤,解决了网络代理与信任 IP 等常见问题。

介绍使用 Docker 在 NAS 或服务器部署 Moltbot 开源项目的完整流程。Moltbot 是一个支持多平台聊天软件接入的自托管 AI 个人助手,具备电脑控制能力。内容包含环境准备、Docker Compose 配置、Onboarding 向导设置、Web 控制台反向代理配置以及 Telegram 设备配对步骤,解决了网络代理与信任 IP 等常见问题。


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,打造私人 Jarvis
Moltbot = '把 Claude / GPT 装进你的 Telegram / WhatsApp,让它真的能通过电脑帮你做事'
在群晖上以 Docker 方式安装。
因为 Moltbot 的权限很高,对运行的主机而言,存在文件误删等风险,所以建议用 docker 最合适,可以把权利关在笼子里,带来的问题就是可能自主性会被中断,需要你帮助执行。
当然好处也是很明显的,作为 NAS 用户,不用再单独去购买 Mac mini,也不用去买 VPS,省下了一大笔钱。
目前最推荐的方式仍然是使用官方的 docker-setup.sh 脚本,它会自动帮你处理大部分配置、卷、网络、onboarding 向导。
不过这种方式需要下载源码,并在本地编译,在群晖上也不是不行,只是更愿意使用已构建好的镜像,这样不会把环境搞乱。
Docker 的机器(NAS、服务器、PC)Docker + Docker Compose 已安装API Key:Claude / MiniMax 等的 API Key(至少一个)通过 SSH 登录到您的群晖,执行下面的命令创建目录:
# 新建文件夹 moltbot 和 子目录
mkdir -p /volume1/docker/moltbot/{config,data}
# 进入 moltbot 目录
cd /volume1/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>:<PORT>
- HTTPS_PROXY=http://<PROXY_IP>:<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。

接下来选择模型,免费额度用于测试应该是可以的。

验证方式用了 Qwen OAuth。

稍等一会儿会出现一个链接,https://chat.qwen.ai/authorize?user_code=xxxxxxxx&client=qwen-code。

将其复制到浏览器中,用自己的账号登录。

验证通过后,选中模型,默认的就可以。

接下来选择通信软件,选择了 Telegram。

填入 Telegram bot token,获取的方法在红框中。
Telegram 里搜索 @BotFather/newbotBotFather 给你的 token 复制下来SSH 终端,粘贴这个 token
接下来会设置 skills 和 hooks。可以先直接跳过了,后面随时可以加。

看到 Onboarding complete. 就设置完成了。

设置完成后,就可以启动 gateway 服务。
# 启动 gateway 服务
docker-compose up -d moltbot-gateway
上一步的 onboarding 设置中,会看到 Dashboard 的地址。

如果访问 http://<NAS_IP>:18789/?token=<your token>,页面会显示错误 disconnected (1008): control ui requires HTTPS or localhost (secure context)。

实际访问地址为:https://moltbot.example.com。
| 域名 | 局域网地址 | 备注 |
|---|---|---|
moltbot.example.com | http://<NAS_IP>:18789 | moltbot 的访问地址 |
在反向代理中的设置。

还需要将下面的代码填入到反向代理的 Advanced 中。
location /telegram-webhook {
proxy_pass http://<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://moltbot.example.com/?token=<your token>,如果显示需要配对 disconnected (1008): pairing required。

给
moltbot.json文件增加写权限,否则修改不会生效;
需要给 moltbot.json 加一行 "trustedProxies": [<REVERSE_PROXY_IP>, <NAS_IP>],也就是受信任的地址,需要考虑整个链路上的 IP,可能包括:
moltbot-gateway 的 IP
IP;IP 等;当然最好的办法还是查看 moltbot-gateway 容器的日志,看看哪个地址不受信任。
{"gateway":{"trustedProxies":["127.0.0.1","192.168.160.1","172.17.0.1","172.18.0.0/16","<PUBLIC_IP>","<REVERSE_PROXY_IP>"]}}
现在访问 https://moltbot.example.com/?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 中增加了代理服务地址设置 "proxy": "http://<PROXY_IP>:<PORT>"。
"channels":{"telegram":{"enabled":true,"botToken":"你的 TG_BOT_TOKEN","dmPolicy":"pairing","groupPolicy":"allowlist","streamMode":"partial","network":{"autoSelectFamily":true},"proxy":"http://<PROXY_IP>:<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
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online