Docker方式安装你的私人AI电脑助手Moltbot

简介

Moltbot 是什么?

Moltbot(之前叫 Clawdbot ,现在最新的名字叫 OpenClaw)是一个开源的、高度可自托管的 AI 个人助手项目。它最大的特点是:

  • 不依赖任何专用客户端 :你可以用自己已经有的聊天软件(TelegramWhatsAppDiscordSlack、企业微信、飞书等)来和 AI 对话。
  • 真正的"电脑控制"能力 :支持让 AI 直接操作你的电脑(浏览器、文件、终端命令、截图、鼠标键盘等),而不是只能聊天。
  • 本地优先 + 云模型混合 :可以接本地大模型(OllamaLlama.cpp),也可以用 ClaudeGPT-4oGemini 等云模型。
  • 完全自托管:数据、记忆、配置全部在你自己的机器上,隐私性极高。

主要特点

Moltbot20261 月最新版)的主要特点:

  • 支持 10+ 聊天渠道(TelegramWhatsAppDiscordSlackiMessageSignal 等)
  • 强大的工具集:浏览器控制(Puppeteer)、终端执行、文件读写、Canvas 绘画、定时任务(cron
  • 多模型支持:Claude 3.5/OpusGPT-4oGemini 1.5 Pro、本地 OllamaQwen
  • 记忆系统(长期记忆 + 会话记忆)
  • Web 控制面板(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 KeyClaude / MiniMax 等的 API Key(至少一个)

建目录

通过 SSH 登录到您的群晖,执行下面的命令创建目录

bash 复制代码
# 新建文件夹 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

将以下内容保存为 docker-compose.yml 文件:

yaml 复制代码
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
    #  - ./config:/home/node/.moltbot
      - ./data:/home/node/clawd
    environment:
      - HTTP_PROXY=http://192.168.0.206:2081
      - HTTPS_PROXY=http://192.168.0.206:2081
      - 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
    #   - ./config:/home/node/.moltbot
      - ./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 (非必须),通过环境变量设置代理,包括 HTTPHTTPS 代理地址,以及不使用代理的地址列表。
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

bash 复制代码
# 运行设置
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,免费额度用于测试应该是可以的

验证方式用了 Qwen OAuth

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

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

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

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

填入 Telegram bot token ,获取的方法在红框中

  1. Telegram 里搜索 @BotFather
  2. 给它发送 /newbot
  3. 给你的机器人起个名字(随便起,好记就行)
  4. BotFather 给你的 token 复制下来
  5. 回到 SSH 终端,粘贴这个 token

接下来会设置 skillshooks 。老苏先直接跳过了,后面随时可以加

看到 Onboarding complete. 就设置完成了

启动 gateway 服务

设置完成后,就可以启动 gateway 服务

bash 复制代码
# 启动 gateway 服务
docker-compose up -d moltbot-gateway

使用

上一步的 onboarding 设置中,会看到 Dashboard 的地址

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

反代

老苏用的 npm + cloudflared 方案,

文章传送门:免费的Cloudflared实现外网访问群晖(续)

实际访问地址为: https://moltbot.laosu.tech

域名 局域网地址 备注
moltbot.laosu.tech http://192.168.0.197:18789 moltbot 的访问地址

npm 中的设置

还需要将下面的代码填入到 npmAdvanced

nginx 复制代码
location /telegram-webhook {
    proxy_pass http://192.168.0.197: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://moltbot.laosu.tech/?token=<your token>,如果显示需要配对 disconnected (1008): pairing required

moltbot.json 文件增加写权限,否则修改不会生效;

需要给 moltbot.json 加一行 "trustedProxies": [你的NPM容器IP",或宿主机 IP],也就是受信任的地址,需要考虑整个链路上的IP,可能包括:

  • moltbot-gatewayIP
  • npmIP
  • 家宽的公网 IP 等;

当然最好的办法还是查看 moltbot-gateway 容器的日志,看看哪个地址不受信任

json 复制代码
{
  "gateway": {
    "trustedProxies": [
      "127.0.0.1",
      "192.168.160.1",       // 日志中反复出现的 Docker gateway IP
      "172.17.0.1",          // 常见 Docker bridge 网络
      "172.18.0.0/16",       // Docker 网络段(更宽松,包含 172.20.0.1)
      "219.xx.yy.zz"         // 你的公网 IP(如果 NPM 是宿主机代理)
      "你的NPM容器IP"        // 用 docker inspect npm容器名 | grep IPAddress 查
    ]
  }
}

访问 Web 控制台(Control UI)

现在访问 https://moltbot.laosu.tech/?token=<your token>

显示需要配对

回到 SSH 客户端列出设备

bash 复制代码
# 列出当前已配对和待配对的设备
docker-compose run --rm moltbot-cli devices list

通过命令批准配对

bash 复制代码
# 批准配对
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 改为自动批准,但老苏不推荐

json 复制代码
{
  "gateway": {
    ...
    "deviceApproval": {
      "mode": "auto"
    }
  }
}

现在就可以开始聊天了

在 Telegram 中使用

onboarding 向导设置时已经 Telegram,但是向机器人发 /start ,并没有得到回应,既然网页已经 OK 了,可以让 Moltbot 自己解决

最后发现还是网络问题,所以他在 moltbot.json 中增加了代理服务地址设置"proxy": "http://192.168.0.206:2081"

json 复制代码
  "channels": {
    "telegram": {
      "enabled": true,
      "botToken": "你的TG_BOT_TOKEN",
      "dmPolicy": "pairing",
      "groupPolicy": "allowlist",
      "streamMode": "partial",
      "network": {
        "autoSelectFamily": true
      },
      "proxy": "http://192.168.0.206:2081"
    }
  },

再次发送 /start,就获得了回应,得到了配对码

回到 SSH 客户端批准设备

bash 复制代码
# 批准配对
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

相关推荐
昨夜见军贴06162 小时前
功能决定效率:IACheck的AI审核在生产型检测报告中的实践观察
人工智能
x70x802 小时前
# Docker 搭建 MySQL 8 主从复制(踩坑实录 + 完整验证)
mysql·docker·容器
qq_316837752 小时前
docker 运行 cn_clip
运维·docker·容器
传说故事2 小时前
【论文自动阅读】Goal Force: 教视频模型实现Physics-Conditioned Goals
人工智能·深度学习·视频生成
186******205312 小时前
项目开发基础知识:从概念到落地的全流程指南
大数据·人工智能
说私域2 小时前
AI智能名片商城小程序数据清洗的持续运营策略与实践研究
大数据·人工智能·小程序·流量运营·私域运营
sunshine8853 小时前
合规性管理:财务安全与业务连续性的双重保障
大数据·运维·人工智能
lusasky3 小时前
Claude Code v2.1.0+ 版本集成LSP
大数据·数据库·人工智能
yusur3 小时前
中科驭数CEO鄢贵海:AI尚处“Day 1”,算力基建的价值外溢如同高铁
人工智能·科技·dpu·中科驭数