可靠的 OpenClaw 上线从暴露 Webhook 之前就开始了:它始于可预期的目录布局、按环境隔离的密钥,以及能在重启后仍然成立的文件权限。本文说明如何组织 ~/.openclaw/openclaw.json、配套的 .env、可选的 agents/ 覆盖,以及开发/预发/生产配置文件——并解释团队为何倾向在租用的 Apple Silicon Mac mini 上完成这些工作,而不是在会过机场安检的个人笔记本上保存生产令牌。
把配置当作基础设施代码:模板进仓库,机密进环境,权限写进运维手册。云 Mac 提供固定主机名、可 7×24 保持唤醒,以及 SSH 会话下一致的 umask 与属主,能显著减少「我本地能跑、网关读不到文件」类问题。
macOS 上的规范路径
上游文档将用户态集中在 ~/.openclaw/:主文件 openclaw.json、可选的密钥 .env、按代理划分的 agents/,以及日志与缓存等兄弟目录。把整个目录当作小型数据库:chmod 700 ~/.openclaw,避免共享实验机上的其它 macOS 用户读到令牌。除非安全团队明确批准,不要把整个目录 symlink 到 Dropbox 或 iCloud——同步工具常在写入中途复制半成品,造成 JSON 损坏或密钥分叉。
业务仓库可以提交无密钥的 openclaw.config.json 模板;CI 应在检测到误提交完整 ~/.openclaw 树时失败。把 .openclaw 与 .env 一并列入新人清单。排障流程请交叉阅读 OpenClaw doctor 与网关诊断;需要稳定重启网关时,参见 LaunchAgent、cron 与定时任务。
若团队有多人 SSH 同一台云 Mac,约定统一的主目录与组策略:要么每人独立 Unix 用户与独立 ~/.openclaw,要么单一自动化账户但严格审计 sudo。混用 root 与标准用户会导致 LaunchAgent 与手工编辑争抢属主,表现为间歇性 401 或读不到刷新后的令牌。
JSON 与 .env 各自放什么
用下表在评审中快速达成一致:
| 内容类型 | 存放位置 | 示例 |
|---|---|---|
| API 密钥、OAuth 客户端密钥 | .env(权限 600) | ANTHROPIC_API_KEY=... |
| 模型 ID、温度上限等非机密调参 | openclaw.json | 稳定、可评审的数值 |
| 内嵌令牌的 Webhook URL | .env 按名引用 | 避免字面量写进 git |
| 网关绑定地址与端口 | openclaw.json | 常为非机密,仍需双人复核 |
| allowedOrigins 列表 | openclaw.json | 每条记录注明业务原因 |
需要分享脱敏配置时,用 jq 过滤掉匹配 /token|secret|password/i 的字段再贴工单——手工涂黑在嵌套 JSON 里容易漏掉约三、四成的敏感键,这是内部支持复盘里反复出现的模式。
对多区域部署,可在 JSON 中拆分「逻辑名」与「物理端点」,真实 URL 仍留在 .env。这样合并请求里看到的是结构变更而非密钥轮换,审计更清晰。
开发、预发与生产配置文件
认真对待爆炸半径的团队会维护三个逻辑配置文件:本地开发、共享预发网关、生产。每套应使用不同的 API 密钥、Discord 机器人令牌与网关鉴权密钥。若实习生频繁获得预发权限,预发密钥可更频繁轮换;生产则遵循 SOC2 或等效日历。
环境变量可在不复制整棵 JSON 的情况下切换配置文件:例如 OPENCLAW_PROFILE=staging,由薄封装脚本在启动守护进程前把正确片段拷到固定路径。务必在内部 README 写明该变量,避免值班工程师在凌晨三点 export 错值。
随着按模型上下文预算(类似 contextProfiles)的能力普及,小模型可能只挂载一天文件历史,大模型保留七天——若配置文件命名混乱,很容易在回退时把错误的上下文包挂到错误的网关上。用前缀与目录分层,比依赖注释更可靠。
在 HTML 与静态交付团队里,OpenClaw 常与浏览器自动化或内部 CMS 钩子并存;把网关绑定在固定端口并写进配置文件,可减少与本地 Vite 开发服务器的端口冲突。云 Mac 上可为每个项目分配独立用户或独立端口段,并在文档中登记。
chmod、备份与手册
除目录 700 外,对 .env 及含 HMAC 共享密钥的文件设 600。LaunchAgent 应以拥有 ~/.openclaw 的同一用户运行;root 与标准用户混用会导致网关读不到刷新令牌,表现为难以复现的 401。
备份请使用加密归档(tar + age 或 gpg)并季度写入离线介质。恢复演练应在 15 分钟内完成并包含 openclaw doctor;超时说明布局过碎,应在事故前简化。
手册中列出配置触及的每个外部依赖:大模型供应商、聊天提供商、隧道端点与企业 HTTP 代理。任一证书轮换时,按同一清单复跑,而不是临场发挥。
对审计日志,记录谁在何时修改了 openclaw.json:可用 git 管理脱敏模板,而真实机状态用 checksum 监控。两者结合能区分「有意发布」与「误编辑」。
把云 Mac 当作配置工作台
租用 Mac mini 可获得常开、主机名稳定、不会装进双肩包的机器——当时区分散的多名工程师迭代 openclaw.json 时,你们 SSH 登录、在受控权限下编辑,并在不唤醒他人笔记本的情况下重启 LaunchAgent。
合规侧往往更青睐带 MDM 与磁盘加密的专用主机,而不是密钥散落在多台 BYOD。Apple Silicon 对网关负载与偶发浏览器钩子绰绰有余,功耗也低于把游戏 PC 当伪服务器。
成本上,按天约 16.9 美元 的弹性租用,对比承包商因无法复现配置漂移而浪费的半天工时,通常一次避免升级就能回本。
与仅使用 GitHub Actions 相比,自托管网关需要长期进程与本地文件状态;云 Mac 比笔记本更适合承担这一角色。你们仍应把流水线用于构建与测试,只是别把生产密钥写进 Actions 明文变量——分层存放、最小暴露。
入职与漂移检测
交互式 openclaw onboard 能快速生成首启文件,但也容易让团队在未记录的情况下接受默认。入职后请将脱敏的 openclaw.json 导出到知识库,并注明 CLI 版本;当 openclaw --version 跨越次版本时,安排 diff 审阅,因迁移指南偶尔会重命名键。
自动化检测漂移:夜间 cron 可对规范 JSON 做 shasum,哈希变化且无证单则告警;同作业串联 openclaw doctor 可同时捕获误编辑与上游弃用。跳过自动检查的团队,据支持侧轶事平均每季度回滚次数约高一倍——虽非正式研究,可作 gut check。
自定义 shell 导出请加清晰前缀(如 OPENCLAW_),避免与也读取泛名 GATEWAY_PORT 的其它工具冲突。手册中粘贴完整 export 块,避免从过期论坛抄片段。
事故时先冻结写入:把当前 ~/.openclaw 拷到 /var/tmp/openclaw-incident-YYYYMMDD/ 再改,便于二分。若恢复需要多于一条命令,说明状态过于分散。
容器用户应显式映射卷:把 ~/.openclaw 读写挂进 Docker 若 UID 不对齐,会得到 root 属主文件,macOS 图形工具无法编辑。需要严格权限一致时,优先在 macOS 原生跑网关——这也是团队选裸金属 Mac mini 而非嵌套 Linux VM 的常见原因。
最后校准时间:时钟漂移会破坏签名 Webhook 与 OAuth。启用网络时间并在上架时用 sntp time.apple.com 校验;偏差超过 30 秒 时先消掉再查鉴权。
审计网关主机 sudo 权限:不必要的 root 会在脚本误执行 chmod -R 时放大爆炸半径。更稳妥是专用自动化用户,仅对自有 LaunchAgent plist 允许无密码重启。
常见问题
openclaw.json 应该放进 git 仓库吗?
项目级 openclaw.config.json 可无密钥提交,但 ~/.openclaw/openclaw.json 属于用户私有,必须排除在版本控制之外。用 docs/ 下模板并从环境注入密钥。
网关令牌多久轮换一次?
团队可按季度轮换;生产升级前先让预发环境浸泡至少 24 小时。
为什么用租用的 Mac 做 OpenClaw 配置?
专用 Apple Silicon 主机路径稳定、不会因笔记本合盖中断联调,并在合规策略下把密钥与个人 BYOD 磁盘隔离。
结构良好的 OpenClaw 配置就是基础设施代码:模板版本化、检查自动化、线上状态跑在可信硬件上。Apple Silicon Mac mini 租用把原生 macOS 兼容与弹性支出结合在一起——入职冲刺时扩容,网关进入稳态后收缩——让 AI 自动化贴近 HTML 与 Web 工作流,而不把每台工程师笔记本变成生产密钥库。
在专用 Mac 上托管 OpenClaw 配置
租用 Apple Silicon Mac mini,统一 ~/.openclaw 布局,把密钥移出 BYOD,需要时让网关 7×24 在线。