树莓派上安装 OpenClaw:Docker 部署、DeepSeek 官方模型、微信接入
树莓派上安装 OpenClaw:Docker 部署、DeepSeek 官方模型、微信接入
日期:2026-05-23 环境:Raspberry Pi 5 / Debian 13 / Docker CE 目标:在树莓派上把 OpenClaw 跑起来,并接上 DeepSeek 官方模型和微信
背景
今天把 OpenClaw 在树莓派上完整落地了一遍,目标不是只把容器跑起来,而是把它变成一个真正能收微信、走官方模型、能长期维护的本地 AI 网关。
最终完成的状态是:
- OpenClaw 通过 Docker 运行
- 默认模型切到 DeepSeek 官方
deepseek-v4-flash - 微信通道
openclaw-weixin登录成功 - 飞书 webhook 也接上了,安装完成会通知我
这篇文章记录的是完整实操过程,包括几个真实的坑。
1. 先决条件
在开始前,这台树莓派已经完成了这些基础准备:
- Docker CE
- Docker Compose v2
- tmux
- GitHub SSH key
如果这些还没配,可以先参考前一篇树莓派工程化环境文章。
2. 官方 Docker 路线
OpenClaw 官方 Docker 文档的核心思路是:
- 准备配置目录
- 使用官方镜像
- 启动 gateway
- 通过控制台完成后续 onboarding
控制台默认地址:
1
http://127.0.0.1:18789/
我最终采用的是一个最小化 Compose 方案,工作目录放在:
1
/home/memect/work/openclaw/openclaw-docker
docker-compose.yml:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
services:
openclaw:
image: ${OPENCLAW_IMAGE}
container_name: openclaw
restart: unless-stopped
ports:
- "${OPENCLAW_PORT}:18789"
environment:
OPENCLAW_HOST: ${OPENCLAW_HOST}
OPENCLAW_PORT: ${OPENCLAW_PORT}
OPENCLAW_BASE_URL: ${OPENCLAW_BASE_URL}
OPENCLAW_GATEWAY_TOKEN: ${OPENCLAW_GATEWAY_TOKEN}
DEEPSEEK_API_KEY: ${DEEPSEEK_API_KEY}
volumes:
- ${OPENCLAW_HOME}:/home/node/.openclaw
command: ["node", "openclaw.mjs", "gateway", "--allow-unconfigured"]
.env:
1
2
3
4
5
6
7
OPENCLAW_IMAGE=ghcr.io/openclaw/openclaw:2026.5.20-slim-arm64
OPENCLAW_HOST=0.0.0.0
OPENCLAW_PORT=18789
OPENCLAW_BASE_URL=http://127.0.0.1:18789
OPENCLAW_HOME=/home/memect/openclaw
OPENCLAW_GATEWAY_TOKEN=随机生成的token
DEEPSEEK_API_KEY=sk-...
启动命令:
1
2
cd /home/memect/work/openclaw/openclaw-docker
docker compose up -d
3. 第一个坑:GHCR 直连非常慢
理论上直接拉官方镜像就行:
1
docker pull ghcr.io/openclaw/openclaw:latest
但在树莓派这台机器上,ghcr.io 直连非常慢,表现是:
docker pull长时间没有完成- 有时已经下载了一部分层,但长时间不落盘
latest镜像体积更大,等待成本更高
我做了两层优化:
3.1 不用 latest,改用 ARM64 slim 标签
直接切到:
1
ghcr.io/openclaw/openclaw:2026.5.20-slim-arm64
这比 latest 更适合树莓派。
3.2 使用国内 GHCR 镜像
最终成功拉下来的路径不是 ghcr.io,而是:
1
docker pull ghcr.nju.edu.cn/openclaw/openclaw:2026.5.20-slim-arm64
拉下来后,再打回官方 tag:
1
2
3
docker tag \
ghcr.nju.edu.cn/openclaw/openclaw:2026.5.20-slim-arm64 \
ghcr.io/openclaw/openclaw:2026.5.20-slim-arm64
这样 Compose 文件仍然可以继续使用官方镜像名。
实际落地镜像:
1
ghcr.io/openclaw/openclaw:2026.5.20-slim-arm64
4. 容器启动与验证
启动后先检查容器状态:
1
docker compose ps
成功时状态类似:
1
Up (healthy)
再从主机内验证 HTTP:
1
curl -I http://127.0.0.1:18789/
我这里返回:
1
HTTP/1.1 200 OK
说明控制台已经正常对外提供。
日志里的关键成功信息:
1
2
[gateway] ready
[gateway] http server listening
5. 配置 DeepSeek 官方模型
这一步一开始也踩了个坑。
5.1 错误姿势:把模型写成 openai/deepseek-v4-flash
OpenClaw 里很多模型最终都走 OpenAI 兼容接口,但这不代表 provider 就应该写成 openai。
如果把默认模型误设成:
1
openai/deepseek-v4-flash
它会被系统当成 OpenAI 家族模型,而不是 DeepSeek 官方 provider。
5.2 正确姿势:使用内置 deepseek provider
OpenClaw 自带 deepseek provider,插件清单里明确有:
deepseek-v4-flashdeepseek-v4-prodeepseek-chatdeepseek-reasoner
所以最终我把默认模型改成:
1
deepseek/deepseek-v4-flash
并把 API key 直接注入容器环境:
1
DEEPSEEK_API_KEY=sk-...
这样最稳,不需要额外折腾 provider auth profile。
配置文件中的核心段落:
1
2
3
4
5
6
7
8
9
10
11
12
{
"agents": {
"defaults": {
"model": {
"primary": "deepseek/deepseek-v4-flash"
},
"models": {
"deepseek/deepseek-v4-flash": {}
}
}
}
}
5.3 验证模型状态
1
docker exec openclaw sh -lc "openclaw models status"
关键输出是:
1
2
Default: deepseek/deepseek-v4-flash
deepseek effective=env:sk-...
同时 openclaw status 里也能看到:
1
default deepseek-v4-flash
6. 安装微信插件
OpenClaw 的微信接入不是内置通道,而是外部插件:
1
@tencent-weixin/openclaw-weixin
在容器里安装:
1
2
3
docker exec openclaw sh -lc \
"npm config set registry https://registry.npmmirror.com && \
openclaw plugins install '@tencent-weixin/openclaw-weixin'"
安装完成后会提示:
1
2
Installed plugin: openclaw-weixin
Restart the gateway to load plugins.
重启容器:
1
docker compose restart
然后检查插件:
1
docker exec openclaw sh -lc "openclaw plugins list | grep -i weixin -A3 -B1"
看到 enabled 就说明插件已被加载。
7. 微信扫码登录
这一步是整个流程里最适合放 tmux 的部分。
原因很简单:二维码登录是交互式 TTY,会话断了就麻烦。
我把登录过程放进 tmux:
1
2
tmux -L weixin new-session -d -s login \
'docker exec -it openclaw sh -lc "openclaw channels login --channel openclaw-weixin --verbose"'
然后 attach 进去:
1
tmux -L weixin attach -t login
终端里会出现二维码和一个备用的微信链接,扫码后插件会自动把微信账号写入配置。
日志里最关键的一段是:
1
2
3
Weixin configured, enabled automatically.
[openclaw-weixin] starting weixin provider
[openclaw-weixin] weixin monitor started
7.1 验证微信通道状态
1
2
docker exec openclaw sh -lc "openclaw channels list"
docker exec openclaw sh -lc "openclaw channels status --deep"
最终我这里的结果:
1
openclaw-weixin 81e9a3ef0c9a-im-bot: enabled, configured, running
这说明微信已经真正上线,不只是“插件装好了”。
8. 飞书通知
除了微信,我还顺手把飞书机器人 webhook 接进去了,安装完成和微信接通后都会主动通知。
发送方式就是普通 webhook:
1
curl -X POST https://open.feishu.cn/open-apis/bot/v2/hook/...
这样有两个好处:
- OpenClaw/系统配置完成后不用盯着终端
- 后续也可以把巡检、重启、更新结果发到飞书
9. 最终状态
最终这台树莓派上的 OpenClaw 状态是:
- OpenClaw Docker 运行正常
- 控制台:
http://127.0.0.1:18789/ - 容器健康状态:
healthy - 默认模型:
deepseek/deepseek-v4-flash - 凭据来源:
DEEPSEEK_API_KEY - 微信通道:
openclaw-weixin - 微信状态:
enabled, configured, running - 飞书 webhook:可正常通知
10. 最值得记住的几个点
- 树莓派上不要盲拉
ghcr.io/openclaw/openclaw:latest,优先用slim-arm64。 - 国内网络下,
ghcr.nju.edu.cn这种 GHCR 镜像源比直连更现实。 - DeepSeek 官方模型要用
deepseek/deepseek-v4-flash,不要误设成openai/...。 - 微信登录一定放进 tmux,会省很多事。
- 插件“已安装”不等于“已接通”,一定要看
channels status --deep。
这套配完之后,树莓派上的 OpenClaw 已经不是一个“能启动的容器”,而是一个真正可收消息、可走官方模型、可长期运行的本地网关。