之前用 Docker 装 OpenClaw,最大的问题不是“能不能跑”,而是“权限不够用 + 排错不爽”。再加上 1Panel 更新后要先填 API(我这边没配好),索性直接宿主机直装(Debian / root),省事很多。
先说一句:这篇不是官方文档,我就是把我自己装的时候从头到尾走的流程写清楚,顺便解释下每一步“它在干嘛、为啥这么选”。
官网在这:https://openclaw.ai/
进去之后默认给的是 PowerShell 命令,我是 Debian,所以点一下 change 切到 Linux/macOS。
宿主机直装 vs Docker:我为啥又改回宿主机
我不黑 Docker,Docker 很多场景真香。但 OpenClaw 这种“可能要读文件/跑动作/接工具”的东西,Docker 的隔离在某些时候会变成麻烦。
我自己的感受大概是:
- Docker:优点是干净、可回滚;缺点是权限/挂载/网络/系统服务这些细节一多,就开始反复横跳。
- 宿主机:优点是想干啥就干啥(尤其是排错),systemd 常驻也顺;缺点是你得自己把安全边界想清楚。
所以我最后选宿主机,原因很朴素:我就是想它先稳定跑起来。
我的环境(方便你对号入座)
- 系统:Debian(Ubuntu 也一样)
- 权限:root 直接装(单人 VPS,懒得建用户)
- 渠道:Telegram
- 默认网关:
127.0.0.1:18789(只监听本机)
如果你是多用户机器/公司机,强烈建议单独建用户 + 做最小权限。
我当时的安装流程(真实记录版)
1) 官网那一行命令
官网给你一行安装命令,直接在 VPS 里贴过去跑。
为啥宿主机?
权限够用、服务好管、出问题也好排查,不用和 Docker 权限打架。
2) 安全提示:看完再点 Yes
安装一开始会吐一大段安全提示(你看末尾日志就知道有多长)。核心意思就是:
- 这是 beta 项目
- bot 有读文件/执行动作的能力
- 配置不当会有风险
我看完就点 Yes 继续。老话再提:先备份 。
3) QuickStart 默认项
QuickStart 默认是:
- 端口:
18789 - 绑定:
127.0.0.1 - 认证:Token
我全部默认。
这也解释了很多人遇到的第一个问题:“为啥我在外网打不开控制面板?”
4) OpenAI OAuth(VPS 要本地登录)
它会给你一个 URL,提示你:
- 在 本地浏览器 打开
- 登录后复制回调链接
- 粘贴回终端
远程 VPS 没浏览器,这步很正常。
5) 选 Telegram 作为渠道
我选的是 Telegram,因为最省事也最稳:
- 找 @BotFather
/newbot- 拿到 token
- 粘贴进终端
小建议:token 别到处乱贴,尤其别贴到公开博客里(你看我这里已经打码了)。
6) skills 依赖:可以先跳过,后面再补
安装会提示 pnpm / brew / go,我当时没装,所以报错了,但 不影响主程序跑起来 。
后面需要再补的话,先跑:
openclaw doctor
它会告诉你缺啥。
如果你就想把 pnpm 补上(Debian/Ubuntu 最短路径),大概是:
apt update
apt install -y nodejs npm
npm install -g pnpm
7) systemd 常驻(这步很关键)
安装会启用 systemd user service,并开启 lingering(日志里能看到)。
简单理解:不然你 SSH 一断,服务就跟着断。
你可以用这几条确认一下:
systemctl --user status openclaw-gateway
journalctl --user -u openclaw-gateway -n 200 --no-pager
8) 控制面板(Control UI)怎么打开
安装完成后会给你:
- 本地面板地址
http://127.0.0.1:18789/ - 带 token 的访问链接(我已打码)
因为它只绑定 127.0.0.1,你想从自己电脑打开,最简单就是 SSH 隧道:
SSH -L 18789:127.0.0.1:18789 root@你的服务器 IP
然后本地浏览器访问:http://127.0.0.1:18789/。
9) UI 资源缺失 / pnpm ui:build
日志里有一句:
Missing Control UI assets. Build them with
pnpm ui:build
意思是 UI 资源没构建。你把 pnpm 装好以后,按提示跑一下 pnpm ui:build 就行。
10) 进 TUI “孵化”一下
最后会提示:
openclaw tui
进去慢慢配,别一上来就全开工具权限(尤其你还准备把它暴露到公网的话)。
装完必做 3 件事(不然迟早踩坑)
- 确认服务真的常驻
- 别把 18789 直接暴露到公网
你真要公网访问,建议走反代 + 访问控制;不然就是“我把控制面板开在公网,等人来敲门”。
- 把日志里的敏感信息处理一下
- Telegram bot token
- OAuth 回调里带的 code
- Control UI 的 token 链接
这些东西泄露了,后果一般都不太好玩。
FAQ(顺手加点 SEO 长尾)
Q1:OpenClaw 能不能用 Docker 装?
能。只是如果你后续要让它读写宿主机文件、跑工具、接各种依赖,Docker 会更容易遇到“权限不够/挂载麻烦/排错麻烦”。我这次才改回宿主机。
Q2:Control UI 为啥外网打不开?
因为默认只绑定 127.0.0.1:18789。用 SSH 隧道,或者自己做反代(别裸奔公网)。
Q3:安装时提示 spawn pnpm ENOENT 怎么办?
就是没装 pnpm。装 node/npm,然后 npm i -g pnpm。
Q4:提示 Missing Control UI assets?
装好 pnpm 后跑 pnpm ui:build。
Q5:我怎么确认 systemd 常驻没问题?
看 systemctl --user status openclaw-gateway,再看 journalctl --user -u openclaw-gateway。
