🚀 NAS折腾记:保姆级教程!在威联通/群晖上部署 OpenClaw + DeepSeek + 飞书机器人

大家好!最近 AI Agent(智能体)非常火,我也忍不住想在自己的 NAS 上部署一个 OpenClaw。它不仅能挂载本地知识库,还能对接 DeepSeek 这样的超强国产大模型,甚至直接集成到飞书群里当助理!

但在折腾过程中,我踩了无数坑:权限报错、JSON 格式不对、代理连不上、飞书发不出消息…… 经过几天的摸索(和一位 AI 大佬的疯狂对线),终于跑通了最完美、最稳定的版本!

今天这篇博客,就是为了让完全不懂代码的小白,也能一步到位,避开我踩过的所有坑。


🛠️ 准备工作

在开始之前,请确保你已经:

  1. 开启了 NAS 的 SSH 功能(威联通在控制台 -> 网络与文件服务 -> Telnet/SSH)。
  2. 电脑上安装了 SSH 工具(推荐 Windows 用 CMD/PowerShell 或 MobaXterm,Mac 用终端)。
  3. 注册好了相关账号
  • **硅基流动 (SiliconFlow)**:用于调用 DeepSeek 模型(现在注册送很多免费额度)。
  • 飞书开放平台:如果你想让机器人接入飞书。

第一步:创建文件夹

我们先在 NAS 上找个宽敞的地方建个窝。

  1. 通过 SSH 连接 NAS

    1
    2
    3
    ssh admin@你的NASIP
    # 输入密码(输入时看不见是正常的,输完回车)

  2. 创建目录结构
    (以威联通为例,群晖通常在 /volume1/docker/ 下)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    # 进入你的容器存储目录 (威联通通常是这里)
    cd /share/CACHEDEV1_DATA/Container

    # 创建 openclaw 文件夹
    mkdir -p openclaw/data
    mkdir -p openclaw/workspace

    # 进入目录
    cd openclaw


第二步:配置 “核弹级” docker-compose.yml

这是整个部署的核心。为了防止各种“Permission denied”权限报错,我们直接开启 “核弹模式”(特权模式 + Root用户),确保容器在 NAS 上畅通无阻。

操作方法:

  1. openclaw 目录下创建文件:

    1
    2
    vi docker-compose.yml

  2. i 键进入编辑模式。

  3. 直接复制下面整段代码(修改其中标有 👈 的部分):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
version: '3.8'

services:
openclaw-gateway:
container_name: openclaw-gateway
# 使用国内镜像源,下载更快
image: registry.linkease.net:5400/justlikemaki/openclaw-docker-cn-im:latest

# === ☢️ 核弹模式:开启特权 + Root 用户 ===
# 彻底解决小白最头疼的权限问题
privileged: true
user: root
# 使用 Bridge 网络,稳定
network_mode: bridge

environment:
# --- 系统变量 ---
TZ: Asia/Shanghai
HOME: /home/node
# 强制内部脚本也使用 Root 身份,双重保险
OPENCLAW_RUN_USER: "0:0"

# --- 代理配置 (重要!) ---
# 如果你的 NAS 需要代理才能访问外网,请填你的代理地址
# 如果不需要,可以留空或删除这几行
HTTP_PROXY: http://192.168.0.168:20171 # 👈 改成你的代理IP:端口
HTTPS_PROXY: http://192.168.0.168:20171 # 👈 改成你的代理IP:端口
# 【关键】不走代理的名单:必须包含本地和国内服务!
NO_PROXY: localhost,127.0.0.1,::1,openclaw-gateway,openclaw-bridge,api.siliconflow.cn,open.feishu.cn

# --- 业务变量 ---
# 这里引用 .env 文件里的配置,方便管理
MODEL_ID: ${MODEL_ID}
BASE_URL: ${BASE_URL}
API_KEY: ${API_KEY}
API_PROTOCOL: ${API_PROTOCOL}
CONTEXT_WINDOW: ${CONTEXT_WINDOW}
MAX_TOKENS: ${MAX_TOKENS}

# 强制允许 HTTP (解决浏览器报错 1008)
OPENCLAW_GATEWAY_ALLOW_INSECURE_AUTH: "true"

# 端口与Token
WORKSPACE: ${WORKSPACE}
OPENCLAW_GATEWAY_TOKEN: ${OPENCLAW_GATEWAY_TOKEN}
OPENCLAW_GATEWAY_BIND: ${OPENCLAW_GATEWAY_BIND}
OPENCLAW_GATEWAY_PORT: ${OPENCLAW_GATEWAY_PORT}
OPENCLAW_BRIDGE_PORT: ${OPENCLAW_BRIDGE_PORT}

# 飞书配置
FEISHU_APP_ID: ${FEISHU_APP_ID}
FEISHU_APP_SECRET: ${FEISHU_APP_SECRET}

volumes:
# 1. 数据目录 (存放配置)
- ./data:/home/node/.openclaw

# 2. 工作区目录 (存放你的文档、知识库)
# 以后把 pdf/txt 丢进 NAS 的 workspace 文件夹,AI 就能读到了!
- ./workspace:/home/node/default

# 3. 插件目录 (防止覆盖内置插件)
- /home/node/.openclaw/extensions

ports:
- "18789:18789" # 控制台端口
- "18790:18790" # Bridge端口

restart: unless-stopped

  1. Esc 键,输入 :wq 保存退出。

第三步:配置环境变量 (.env)

这个文件存放你的密钥和密码,不想给别人看的信息都在这。

操作方法:

  1. 创建 .env 文件:

    1
    2
    vi .env

  2. 复制以下内容(记得把 Key 和 ID 换成你自己的):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# ==============================
# OpenClaw 环境变量配置
# ==============================

# 1. 模型配置 (使用 DeepSeek-V3)
# 推荐使用硅基流动 (SiliconFlow),速度快且兼容性好
MODEL_ID=deepseek-ai/DeepSeek-V3
BASE_URL=https://api.siliconflow.cn/v1
API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxx # 👈 去硅基流动申请你的 Key
API_PROTOCOL=openai

# 2. 性能配置
# DeepSeek 支持超长上下文,给它拉满!
CONTEXT_WINDOW=64000 # 设置为 64k 或更高
MAX_TOKENS=8192 # 单次回答最大长度

# 3. 安全配置
OPENCLAW_GATEWAY_TOKEN=你的密码123 # 👈 设置一个登录网页用的密码
OPENCLAW_GATEWAY_BIND=lan
OPENCLAW_GATEWAY_PORT=18789
OPENCLAW_BRIDGE_PORT=18790
WORKSPACE=default

# 4. 飞书配置 (如果不通过飞书用,可以留空)
FEISHU_APP_ID=cli_xxxxxxxxxxxxxx # 👈 飞书后台获取
FEISHU_APP_SECRET=xxxxxxxxxxxxxxxxxx # 👈 飞书后台获取

  1. Esc 键,输入 :wq 保存退出。

第四步:手动初始化“大脑”文件

OpenClaw 启动时需要读取两个文件,如果不存在就会报错。虽然我们有 Root 权限,但手动创建一下最稳妥。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 进入 workspace 目录
cd workspace

# 创建空文件
touch MEMORY.md
touch AGENTS.md

# 写入一点初始内容 (防止它是空的被程序嫌弃)
echo "# OpenClaw Memory" > MEMORY.md
echo "# OpenClaw Agents" > AGENTS.md

# 返回上级目录
cd ..


第五步:启动!🚀

终于到了激动人心的时刻。

1
2
docker compose up -d

等待几秒钟,查看日志确认启动情况:

1
2
docker compose logs -f

如果你看到:

  • ✅ Gateway 同步完成
  • === OpenClaw Gateway 已启动 ===
  • uid=0(root) (这是我们设置的最高权限)

那就说明部署成功了! 🎉


第六步:访问与使用

1. 浏览器访问

打开浏览器,输入:http://你的NASIP:18789

  • 如果提示输入 Token,输入你在 .env 里设置的 OPENCLAW_GATEWAY_TOKEN
  • 现在你可以和 DeepSeek 畅聊了!

2. 绑定飞书 (进阶玩法)

如果你配置了飞书 App ID,你的机器人此时应该已经在线了。但是为了安全,它默认不理陌生人。

  1. 在飞书给机器人发一句 hello

  2. 机器人会回复一段话,里面有个 **配对码 (Pairing code)**,比如 XPUEU57M

  3. 回到 NAS 的 SSH 窗口,执行这行命令批准它:

    1
    2
    docker exec -it openclaw-gateway openclaw pairing approve feishu XPUEU57M

  4. 再次回到飞书,它就会理你了!


💡 常见问题 (FAQ)

Q: 浏览器报错 “Error 1008” 或 “Disconnected”?
A: 这是因为你用 HTTP 访问。我们在 docker-compose.yml 里加了 OPENCLAW_GATEWAY_ALLOW_INSECURE_AUTH: "true" 就是为了解决这个。如果还不行,请强制刷新浏览器缓存 (Ctrl+F5)。

Q: 飞书发消息没反应?
A: 检查 .env 里的 NO_PROXY_LIST 是否包含了 open.feishu.cn。飞书是国内服务,走了代理反而会报错!

Q: 怎么喂给它知识库?
A: 直接把你的 PDF、Excel 或 Txt 文件上传到 NAS 的 openclaw/workspace 文件夹里。然后在聊天时问它:“查看我上传的文件”,它就能读到了。


希望这篇保姆级教程能帮到大家!如果在部署过程中遇到问题,欢迎在评论区留言!祝大家折腾愉快!👋