群晖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 ID和App 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】获取部署配置文件及常见问题合集

夜雨聆风