乐于分享
好东西不私藏

群晖DS220+使用Docker部署OpenClaw全栈实战

群晖DS220+使用Docker部署OpenClaw全栈实战

群晖NAS装AI助手!

OpenClaw全栈部署实战:DeepSeek + Tailscale + 微信机器人

为什么你的NAS需要一个AI助手?

上篇文章我们聊了DS220+内存升级,从2GB到10GB的质变。很多朋友问:升级之后除了Docker不卡了,还能干点啥?

答案来了——装一个AI助手

想象一下这些场景:

  • 💡 在微信/飞书里直接跟AI对话,让它帮你查资料、写文档
  • 🖥️ 让AI自动操作浏览器,帮你查快递、查天气、下单
  • ⚙️ 通过AI执行NAS上的命令,管理文件、检查服务状态
  • 🔗 把飞书、微信等办公工具和AI打通,一个消息搞定复杂任务
  • 📰 每天早上微信自动推送AI新闻摘要

这就是OpenClaw能帮你做到的事。它不是又一个聊天机器人套壳,而是一个真正的AI Agent平台——能对话、能执行命令、能操作浏览器、能连接各种办公工具。

最关键的是:它跑在你自己的NAS上,数据完全不出家门。不用把隐私交给第三方云服务,用DeepSeek模型,便宜到忽略不计。

这篇教程一口气讲透:Docker部署 → DeepSeek对接 → Tailscale外网穿透 → 电脑手机全端访问 → 微信AI机器人,全链路打通。


一、环境说明

项目 说明
部署设备 群晖NAS(DS220+,10GB内存)
容器镜像 docker.1ms.run/1panel/openclaw:latest
AI模型 DeepSeek-Chat
外网穿透 Tailscale
内网访问 http://群晖IP:18789
外网访问 通过Tailscale域名访问(详见第十章)
拓展功能 个人微信AI对话、每日新闻定时推送

二、先说硬件:2GB到底行不行?

直接说结论:2GB能跑,但会很痛苦

对比项 2GB内存 6GB/10GB内存
能否运行 ⚠️ 勉强 ✅ 流畅
容器运行稳定性 ❌ 可能OOM崩溃 ✅ 稳如老狗
多任务 ❌ 容易卡顿 ✅ 多开无压力
内存占用率 90%+ 50-60%

简单算笔账:DSM系统吃1GB+,Container Manager吃500MB,OpenClaw容器吃800MB到1.5GB。2GB内存,光跑系统就捉襟见肘了。

⚠️ 血泪教训:2GB内存下,绝对不要尝试本地build镜像!Node.js编译会直接OOM崩溃。只拉预构建镜像,这是铁律。

如果你还没升级内存,强烈建议先升级(约260元),再继续下面的部署。


三、前置准备:三件事必须搞定

① 安装 Container Manager

DSM 7.2+的用户,在套件中心搜索Container Manager安装即可。老版本叫”Docker”,功能一样。

② 开启 SSH

很多操作需要命令行,SSH必须开:

控制面板 → 终端机和SNMP → 勾选「启动SSH功能」

然后电脑上用终端连接:

# 连接群晖终端

ssh admin@你的群晖IP

# 输入密码后,切换root权限

sudo -i

③ 配置镜像加速器

国内拉Docker镜像那个酸爽……不配加速器的话,4GB的镜像可能下到天荒地老。两种方式任选:

图形界面方式(推荐)

打开Container Manager → 注册表 → 设置(右上角齿轮) → 添加镜像源:

docker.1ms.run

ghcr.nodeseek.com

命令行方式

# 编辑Docker配置文件

sudo vi /var/packages/Container\ Manager/etc/dockerd.json

添加:

{

  “registry-mirrors”: [

    “https://docker.1ms.run”,

    “https://ghcr.nodeseek.com”

  ]

}

改完重启Docker:sudo synospace --restart-docker


四、目录权限配置(⚠️ 解决EPERM权限报错)

这步不能省!权限不对是部署失败的头号原因

1. SSH执行创建并授权目录

sudo mkdir -p /volume1/docker/openclaw

sudo chown -R 1000:1000 /volume1/docker/openclaw

sudo chmod -R 777 /volume1/docker/openclaw

💡 容器内用node用户运行,UID=1000。chown 1000:1000 确保容器有读写权限。chmod 777 是偷懒写法,生产环境建议用755。

2. 容器挂载规范

配置项
本地路径 /volume1/docker/openclaw
容器路径 /home/node/.openclaw
权限 读写模式

⚠️ 容器路径必须带小数点.openclaw是隐藏目录),写错的话容器会重新初始化一个空配置!


五、Docker部署:两种方式,任选一种

方式一:命令行部署(一行搞定)

SSH登录群晖,直接复制粘贴执行:

sudo docker run -d \

  –name openclaw \

  –restart unless-stopped \

  –net=host \

  -v /volume1/docker/openclaw:/home/node/.openclaw \

  docker.1ms.run/1panel/openclaw:latest \

  openclaw gateway –port 18789 –bind 0.0.0.0 –allow-unconfigured

参数解释:

参数 干嘛的
--net=host 用宿主机网络,端口直接暴露(重要!)
--restart unless-stopped 异常退出自动重启,开机自启
--bind 0.0.0.0 允许所有网络访问(LAN+外网)
--allow-unconfigured 允许未配置状态启动,后面再配

方式二:图形界面部署(Container Manager)

如果你更喜欢点鼠标,打开Container Manager操作:

1点击容器 → 创建 → 使用镜像创建,选择 docker.1ms.run/1panel/openclaw:latest

2网络设置:勾选「使用与Docker Host相同的网络」(这步很重要!)

3添加文件夹映射(点击「添加文件夹」):

主机路径 装载路径
/volume1/docker/openclaw /home/node/.openclaw

4环境变量添加:

变量名 说明
TZ Asia/Shanghai 时区
NODE_ENV production 运行环境
gateway_controlUi_allowInsecureAuth true 允许非安全连接

💡 OPENAI_BASE_URL 和 OPENAI_API_KEY 不需要在这里配置,后面通过容器内 openclaw configure 交互式配置更方便。

5启动命令填写:

openclaw gateway –port 18789 –bind 0.0.0.0 –allow-unconfigured

6确认设置,点击完成,容器自动启动。


六、验证容器启动

容器跑起来后,先确认状态:

# 查看容器运行状态

sudo docker ps -a | grep openclaw

# 查看日志,确认启动成功

sudo docker logs openclaw –tail 50

看到这两行就说明成功了:

✓ Gateway is running on port 18789
✓ Dashboard available at http://127.0.0.1:18789


七、容器交互式配置

容器启动后,进入容器终端完成核心配置:

docker exec -it openclaw sh

1. 初始化向导(openclaw configure)

这是最核心的配置步骤,通过交互式向导一步步完成:

openclaw configure

向导流程:

◆ Where will the Gateway run?

│ Local (this machine)

◆ What do you want to configure?

│ Model

◆ Model/auth provider

│ DeepSeek

◆ Enter DeepSeek API key

│ ▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪

◆ Model configured

│ Default model set to deepseek/deepseek-v4-flash

│ Updated config: ~/.openclaw/openclaw.json

💡 选择 DeepSeek 后输入你的 API Key 即可,不需要手动编辑配置文件。模型选择可以根据需要切换,推荐 deepseek-v4-flash(性价比最高)或 deepseek-chat

2. 关键配置命令

# 绑定所有网络接口(允许外网访问)

openclaw config set gateway.bind 0.0.0.0

# 关闭设备配对校验(方便多端访问)

openclaw config set gateway_controlUi_disableDevicePairing true

# 允许非安全连接(Tailscale用HTTPS但无证书)

openclaw config set gateway_controlUi_allowInsecureAuth true

# 关闭网关鉴权(简化访问,内网环境可接受)

openclaw config set gateway.auth none

# 重启网关使配置生效

openclaw gateway restart


八、设备访问授权

首次从新设备访问Web界面时,会提示需要授权。在容器终端执行:

# 查看待授权设备列表

openclaw devices list

# 批准设备访问(替换为实际设备编号)

openclaw devices approve 设备编号

💡 如果不想每次都授权,上面已经设置了 disableDevicePairing=true,可以跳过此步。


九、DeepSeek大模型对接与测试

为什么选DeepSeek?

便宜、聪明、国内访问快。API价格:输入1元/百万Token,输出2元/百万Token,日常对话一天几分钱。

模型连通测试

方式一:接口测试

curl https://api.deepseek.com/v1/chat/completions \

  -H “Authorization: Bearer 你的sk密钥” \

  -H “Content-Type: application/json” \

  -d ‘{

    “model”: “deepseek-chat”,

    “messages”: [{“role”: “user”, “content”: “你好”}]

  }’

返回正常的JSON响应就说明API Key没问题。

方式二:容器内对话测试

docker exec -it openclaw sh

openclaw chat “你好”

能收到AI回复,说明模型对接成功!🎉

也可以通过 openclaw configure 重新配置

如果需要修改模型或其他设置,随时可以重新运行:

openclaw configure

向导会引导你选择要配置的项目(Model、Health check等),按需修改即可。


十、Tailscale外网穿透:出门在外也能用

NAS只在家用太局限了。用Tailscale组网,手机4G/5G也能访问,无需公网IP、无需端口映射。

1. 安装Tailscale

群晖上安装Tailscale有两种方式:

方式一:套件中心安装(推荐)

从Tailscale官方下载群晖SPK套件,在套件中心手动安装。

方式二:Docker部署

docker run -d \

  –name tailscale \

  –restart unless-stopped \

  –net=host \

  –cap-add=NET_ADMIN \

  -v /volume1/docker/tailscale:/var/lib/tailscale \

  tailscale/tailscale

2. 登录Tailscale

在群晖上执行:

tailscale up

# 会输出一个登录链接,浏览器打开登录Tailscale账号

登录后,你的NAS就获得了一个Tailscale域名。

3. 手机和电脑加入同一Tailscale网络

  • 电脑:安装Tailscale客户端,登录同一账号
  • 手机:安装Tailscale App,登录同一账号

加入后,所有设备就在同一个虚拟局域网里了。

4. 配置HTTPS访问(推荐)

Tailscale支持通过 tailscale serve 将本地服务暴露为HTTPS:

# 将本地18789端口映射到Tailscale域名的8443端口

# ⚠️ 默认443端口可能与群晖其他服务冲突,建议用8443

tailscale serve –bg –https=8443 http://127.0.0.1:18789

配置好后,外网访问地址:https://你的Tailscale域名:8443

⚠️ 如果手机开了代理(梯子),需要先关闭代理再访问Tailscale地址,否则流量走了代理会绕路。


十一、多端访问方式汇总

设备 访问方式 地址
局域网电脑 直接访问 http://群晖IP:18789
局域网手机 连同一WiFi访问 http://群晖IP:18789
外网电脑 Tailscale组网 https://你的Tailscale域名:8443
外网手机 安装Tailscale App 同上,关闭代理后访问

十二、飞书Channel配置:让AI住进你的飞书

在飞书里直接跟AI对话,不用开网页,消息即来即回。

第一步:飞书开放平台创建应用

1访问 open.feishu.cn/app,点击「创建企业自建应用」

2添加「机器人」能力

3配置权限(至少需要:im:message 和 im:message.receive_v1

4事件订阅选择「使用长连接接收事件」(WebSocket模式),添加事件 im.message.receive_v1

5提交发布,企业管理员审批通过

创建完成后,记下App IDApp Secret

第二步:OpenClaw端配置飞书

快捷方式:扫码授权(推荐)

# 在容器终端执行

openclaw channels login –channel feishu

# 终端会显示二维码,用飞书App扫码授权

# 授权完成后重启网关

openclaw gateway restart

# 验证连接

openclaw channels test feishu

手动方式:填入App ID和Secret

编辑配置文件 vi /home/node/.openclaw/openclaw.json,在channels段添加:

“channels”: {

  “feishu”: {

    “enabled”: true,

    “domain”: “feishu”,

    “connectionMode”: “websocket”,

    “dmPolicy”: “pairing”,

    “groupPolicy”: “allowlist”,

    “accounts”: {

      “default”: {

        “appId”: “cli_xxx替换为你的App ID“,

        “appSecret”: “xxx替换为你的App Secret

      }

    }

  }

}

💡 dmPolicy: "pairing" 表示未知用户发消息会收到配对码,需要你在OpenClaw端审批。安全又方便。

配置完成后重启网关并验证:

openclaw gateway restart

openclaw channels test feishu

然后去飞书给机器人发条消息,按提示完成配对,就可以聊天了!🎉


十三、微信机器人部署:最实用的AI入口

飞书适合办公,但日常用得最多的还是微信。OpenClaw支持微信Channel,扫码就能把AI绑定到你的微信。

1. 安装微信插件

# 进入容器终端

docker exec -it openclaw sh

# 安装微信插件

openclaw plugins install “@tencent-weixin/openclaw-weixin”

# 启用插件

openclaw config set plugins.entries.openclaw-weixin.enabled true

# 重启网关

openclaw gateway restart

2. 扫码绑定微信

openclaw channels login –channel openclaw-weixin

终端会显示二维码,用微信扫码绑定。绑定成功后,你在微信里给这个号发消息,AI就会回复。

3. 配置每日新闻推送

# 启用每日新闻摘要

openclaw config set jobs.daily-news-digest.enabled true

# 设置推送渠道为微信

openclaw config set jobs.daily-news-digest.delivery.channel openclaw-weixin

# 重启生效

openclaw gateway restart

配置完成后,每天会自动推送AI新闻摘要到你的微信。


十四、避坑指南:我踩过的8个坑

部署过程中踩了不少坑,整理出来帮你省时间:

坑1:权限报错 EPERM / EACCES: permission denied

原因:目录权限没设置对,容器内的node用户(UID=1000)没权限读写。

解决:重新设置权限——

sudo chown -R 1000:1000 /volume1/docker/openclaw
sudo chmod -R 777 /volume1/docker/openclaw
sudo docker restart openclaw

坑2:镜像拉取超时/失败

原因:国内网络访问Docker Hub和ghcr.io困难。

解决:用加速源,或者先在电脑上下载再导入——

# 电脑上执行
docker pull docker.1ms.run/1panel/openclaw:latest
docker save docker.1ms.run/1panel/openclaw:latest -o openclaw.tar

# 上传到NAS
scp openclaw.tar admin@群晖IP:/volume1/docker/openclaw/

# NAS上导入
sudo docker load -i /volume1/docker/openclaw/openclaw.tar

坑3:内存不足OOM(进程被Killed)

原因:2GB内存不够用,或者本地build触发OOM。

解决:①只拉预构建镜像,不要本地build;②限制容器内存——

docker run -d –memory=1g –memory-swap=1.5g …

③终极方案:加内存,一步到位。

坑4:改了Bind Mode忘了改成0.0.0.0

原因:默认只绑定localhost,局域网其他设备访问不了。

解决:openclaw config set gateway.bind 0.0.0.0,或者配置文件中 "bind": "0.0.0.0"。这个坑我自己踩过,查了半天才找到原因……

坑5:飞书Bot收不到消息

原因:可能是以下几个——

① 应用未发布审批;② 事件订阅未选「长连接」;③ 缺少 im.message.receive_v1 事件。

排查命令:openclaw logs --follow 看实时日志。

坑6:手机无法连接Tailscale地址

原因:手机开了代理(梯子),流量走了代理绕路。

解决:关闭手机代理后再访问Tailscale地址。

坑7:反复弹出设备验证

原因:设备配对校验默认开启。

解决:openclaw config set gateway_controlUi_disableDevicePairing true

坑8:模型调用失败

原因:API Key未配置或配置不一致。

解决:进入容器终端重新执行 openclaw configure,选择 Model → DeepSeek,输入API Key即可。不需要手动编辑配置文件。


十五、最终运行状态检查

检查项 状态 验证方式
权限无异常 容器日志无EPERM报错
DeepSeek对话正常 openclaw chat "你好" 有回复
内网访问 浏览器打开 http://群晖IP:18789
外网访问 Tailscale域名可访问
手机访问 关闭代理后Tailscale地址可打开
飞书机器人 飞书发消息AI回复
微信机器人 微信发消息AI回复
每日新闻推送 微信按时收到摘要

写在最后

整个部署过程,如果你跟着教程一步步来,30分钟绝对能搞定。前15分钟拉镜像(看网速),后15分钟配置。

部署完OpenClaw之后,你的NAS就不再只是一个”网络硬盘”了——它是一个7×24小时在线的AI管家,随时待命,帮你对话、搜索、执行命令、操作浏览器。

配合Tailscale穿透+微信机器人,你在外面掏出手机就能跟家里的AI对话——查资料、写文案、推送新闻,甚至远程操控家里的服务。NAS + AI + 全端穿透 = 无限可能。折腾起来吧!🚀

💬 你家的NAS上跑了什么好玩的应用?

你在群晖上还部署过哪些有趣的服务?OpenClaw部署过程中有遇到什么问题吗?欢迎在评论区聊聊你的折腾经历~

👇 觉得有用?三连支持一下 👇

👍 点赞 · ⭐ 收藏 · 🔄 转发

你的支持是我持续输出干货的最大动力

本文作者:小白 | 高级测试开发工程师

首发于公众号「知而志学」,专注AI+测试方向

关注「知而志学」,回复【OpenClaw】获取部署配置文件及常见问题合集