🪝📦 导语:builds.sr.ht 回调到远程 Mac 的 OpenClaw 后,可在编译前做依赖预拉取与 lockfile 漂移扫描,并把失败摘要与网关探针压成一行回写 CI。含 curl、npm 安装骨架、Node 二十四门槛与 doctor 串联 gateway status;附镜像并发、Git 重试、磁盘水位矩阵。延展 LaunchDarkly Webhook 文;博客列表、帮助、首页免登录。

安装门槛:Node 二十四与 curl、npm 官方脚本

先钉 Node 二十四 再装 OpenClaw;版本过低直接失败,避免文档与行为漂移。

node -v # 期望 v24.x curl -fsSL https://openclaw.ai/install.sh | bash npm install -g openclaw@latest openclaw --version

装完跑 openclaw doctor,并把 openclaw gateway status --format json 落到只读归档供 Webhook 合并摘要。

痛点拆解:为什么要在 builds.sr.ht 之前拦截

① 镜像层与 npm 元数据并发拉满磁盘,编译阶段随机超时。② 锁文件暗改未跑全量安装,CI 绿装不全。③ 回调无验签,伪造事件刷爆预拉取。

sr.ht 构建镜像并发 × Git 重试 × 磁盘水位决策矩阵

负载画像 构建镜像并发策略 Git 拉取重试 磁盘水位阈值与动作
独占 Mac、单流水线 镜像层并发二到四 二四八秒三轮,可加 shallow 大于十八吉字节全开;十二到十八仅锁文件
多 Webhook 交错 并发降到一 指数退避加抖动 低于十二吉字节跳过预热并标注
跨境高丢包 禁与 npm 全量并行 每轮前 prune,失败换克隆 URL 水位正常也限层数为一

步骤清单:Webhook → 预拉取 → 合并摘要 → 回传 CI

可执行流水线骨架
  • ① builds.sr.ht 配 HTTPS Webhook,头带 HMAC 或 Bearer。
  • ② 验签通过后跑预拉取:按矩阵定并发,git fetch 与包管理器干跑。
  • ③ 锁文件漂移:git diff --exit-code 或专用扫描,失败抓末十六行。
  • ④ 合并 gateway status 与 doctor 退出码成单行 JSON。
  • ⑤ 受限令牌 POST 回 CI,二四八秒有界重试。
  • ⑥ 映射退出码:验签四零一、漂移四零六、磁盘降级写警告字段。
openclaw doctor openclaw gateway status --format json > "$CI_ARTIFACT_DIR/oc-gateway.json"

串联验收:doctor 与 gateway status 如何堵住假绿

doctor 与 gateway status 归档只读,Webhook 线程只读合并;doctor 非零则摘要写 doctor_failed 并跳过预拉取,杜绝假绿。归档按流水线标识分桶,磁盘百分比写入摘要便于值班秒判根因。

可引用信息(值班可直接粘贴)

硬数字与约定
  • 退避:二四八秒,至多三次。
  • 磁盘:大于十八吉字节正常;十二到十八仅锁文件;低于十二只摘要。
  • 脱敏:摘要剔除用户家目录绝对路径,仅保留仓库相对路径。
  • 锁文件:按仓库勾选 npm、pnpm、CocoaPods,缺项标 skipped。

常见问题(令牌、TLS、端口)

令牌放哪?

用头传递;勿放查询串以免进日志。

自签证书能上生产吗?

不建议;用受信 CA,平台侧严格校验链。

一八七八九端口冲突?

改监听或反代四四三;启动前 lsof 查占用。

验签失败还预拉取吗?

否;四零一短路并审计。

TLS 在哪终结?

边缘终结,内网 mTLS 或 SSH 隧道到 Mac。

小结与下一步

结论:Webhook 前移预拉取与锁文件门禁,doctor 与 gateway status 并入摘要可压低冷启动方差。节点与链路见 首页、套餐、帮助、博客。

SourceHut × OpenClaw × 远程 Mac

独占节点:Webhook 预拉取与网关摘要同机完成

首页;套餐定价;帮助中心;技术博客。

Apple Silicon
SSH 访问
弹性租期
支持渠道