运维

2026 OpenClaw macOS 预发与生产:工作区布局、端口与 LaunchAgent 隔离

xxxMac 技术团队
约 15 分钟

团队租一台 Mac mini M4 同时跑生产自动化与高风险的 OpenClaw 实验时,若两套网关读同一配置树、抢同一端口或复用同一个 gateway.auth.token,故障会像「网络抽风」——即便 launchd 显示两个 Job 都在跑。 这份 2026 年手册说明如何用独立目录、监听端口(生产默认 18789、预发 18790)、LaunchAgent 标签、环境文件与日志落盘,把频道变更演练与营收工作流隔开。内含约定表、六步上线清单、权限矩阵与适合交接班的 FAQ。

共用 Web VNC 极易导致密钥扩散: 若有人在同一台机器浏览器里粘贴过令牌,请默认两套环境均已暴露。预发与生产令牌分别轮换,5 分钟内重载各自 LaunchAgent,并审计 plist 权限(文件 0640、父目录 0750)。

建议与 网关排错指南(令牌与重启循环)、launchd 常驻指南ThrottleInterval 与 KeepAlive)及 M4 密钥管理指南 交叉阅读。双网关日志翻倍带来磁盘压力时,先按 SSD 保留矩阵 处理,再排查 CPU/内存。

为何单一 HOME 配置在真实预发流量下必然撞车

工作区约定:路径、端口与 plist 标签

维度 生产 预发
配置根目录 ~/openclaw-prod ~/openclaw-staging
网关监听 TCP 18789(默认) TCP 18790(显式覆盖)
LaunchAgent 标签 ai.openclaw.gateway.prod ai.openclaw.gateway.staging
日志目录 ~/openclaw-prod/logs ~/openclaw-staging/logs
环境文件 .env.production.local(勿全局可读) .env.staging.local
吞吐说明: xxxMac Mac mini M4 在 新加坡东京美西 提供独享 1 Gbps,开通约 五分钟。双网关不会在广域网互抢,而是在本机端口、CPU 与磁盘上竞争——双实例时务必加强日志轮转。

六步落地:克隆、拆端口、安装、验证

  1. 冻结生产: 改动前记录 openclaw statuslaunchctl print gui/$(id -u)/ai.openclaw.gateway.prod 与当前包版本。
  2. 文件系统克隆: rsync -a --exclude logs --exclude tmp ~/openclaw-prod/ ~/openclaw-staging/;预发令牌与 API Key 重新生成——禁止逐字复制密钥。
  3. 端口与 URL 矩阵: 预发配置让健康检查、Slack 命令与反代指向 :18790;生产保持 :18789。在内网反代仓库留文档。
  4. 安装预发 plist: 导出 OPENCLAW_CONFIG=$HOME/openclaw-staging 后执行 openclaw gateway install --label ai.openclaw.gateway.staging(参数以实际 CLI 为准),再按 Apple 指引 launchctl bootstrap 加载。
  5. 两套环境 doctor: 分别带配置根运行 openclaw doctor;接真实频道前须零阻塞错误。
  6. 浸泡测试: 仅向预发以 5 rps 发送 200 条合成事件;30 分钟内预发 RSS 平稳、生产 RSS 相对基线波动在 ±10 % 内。

共享服务账户的权限矩阵

许多团队为简化 VNC 交接,在同一 macOS 用户下跑两套网关——只有配合严格 POSIX 权限才可接受:预发日志不可全局可读,生产 plist 路径应拒绝组可写。若财务要求分账户,请建两个系统用户,各自 ~/openclaw-* 树与独立 SSH 密钥,并从 控制台 下发。

路径类型 推荐权限 说明
Config YAML / JSON 0640 属主 staff,禁止其他用户写位
密钥目录 0750 若误开 Time Machine,排除该路径
日志文件 0640 + logrotate 24 小时后压缩;预发日志 7 天删除

CPU 调度:单颗 M4 上双 Node 网关如何避免隐性饿死

Apple Silicon 上单插槽争用在 powermetrics 里很直观:两套网关同时触发 V8 GC 时,即便单进程 CPU 低于 70 %,Webhook p95 也可能抬升 180–400 ms。业务高峰可用 OPENCLAW_MAX_INFLIGHT=4(示例开关——按发行版对齐)限制预发并发,仅在维护窗放宽。全速浸泡可在非营收机临时卸载生产 LaunchAgent,或将预发迁到第二台仍享 1 Gbps 的 xxxMac 实例。

回滚:预发实验污染共享 Node 缓存时

全局 npm/pnpm 存储在配置分离时仍可能冲突。优先按环境拆分 NODE_ENV 与安装前缀;若升级涉及不同 macOS SDK 的原生模块,可在第二台 xxxMac 上容器化实验 CLI。将 东京美西 各放一台主机,还能做 Webhook 延迟实验的地理冗余。

FAQ:令牌、CI 挂钩与可观测性

预发是否应调用与生产同一模型云项目?

应使用独立云项目或带消费上限的 API Key;压测时预发 Prompt 可能在数分钟内烧掉成千上万 Token。

GitHub Actions 如何指向正确监听器?

预发使用独立 DNS 与 TLS 证书;不要仅依赖路径路由——部分 Webhook 验签时忽略路径。

端口冲突最快判据是什么?

lsof -nP -iTCP:18789 -sTCP:LISTEN 若出现两个 PID 或 30 秒内 PID 交替,说明两套 plist 互抢——先全部卸载,修正标签后先 bootstrap 预发。

在 Apple Silicon 上隔离 OpenClaw 预发与生产,本质是多目录 + launchd 纪律,而非再叠一层 Kubernetes。xxxMac 的 Mac mini M4 为两套轻量网关提供足够单线程余量,1 Gbps 上联让 新加坡东京美西 的 Webhook ACK 保持敏捷。仅在两套配置树 doctor 均通过后再晋升变更;若仍有事故,回退到 ContextEngine 部署教程 查版本相关开关,并在 帮助中心 更新真实 plist 名称。

需要独立预发节点?

在控制台再开一台 M4,安全镜像配置,生产与实验隔离。

打开控制台
快速开始
OpenClaw 运维手册