Cloudflare Pages · Deploy Hook · OpenClaw · 遠端 Mac · 2026

2026 OpenClaw 前端實戰:
遠端 Mac 對接 Cloudflare Pages Deploy Hook——冒煙、安全 Headers 巡檢與建置摘要回傳

2026.04.16 前端/發布自動化 約 8 分鐘閱讀

適用對象:Cloudflare Pages 託管前端、希望在每次建置完成後自動驗證邊緣快取一致性、回應標頭合規與真機冒煙的團隊。本文與 Netlify 版對照:側重 CF Deploy Hook快取失效策略Headers 基線 diff_headers/規則與實測標頭)、以及 curl 批跑預熱;OpenClaw 閘道在入站側做任務編排與失敗摘要回傳。延伸閱讀:Netlify Deploy Hook 串聯冒煙CSP 與 Safari 清單建置指標 PR 摘要HTTP/3 與 curl 舉證Service Worker 與快取發布部署前冒煙與預檢

固定 slug:2026-openclaw-cloudflare-pages-deploy-hook-remote-mac-howto.html(便於書籤、Runbook 與自動化內鏈收錄)。

01 為何在 CF Pages 上單獨談 Hook、快取與 Headers

Pages 建置成功只代表產物已上傳;全球邊緣上舊 HTML 仍可能被複用,而安全標頭既可能來自倉庫根目錄 _headers,也可能疊加 Transform RulesWorkers——與 Netlify「通知+單一邊緣行為」不同,你必須明確定義何時 Purge、驗證哪一層快取、以哪一份 JSON 作為 Headers 基線。把 Deploy Hook 接到長期在線的遠端 Mac,可在同一台 Apple 硬體上對 Safari WebKit 與 Chromium 跑輕量冒煙,並以腳本對生產 URL 做可重複的 curl 舉證,避免「我本地重新整理就好」的不可複現結論。若你也關心 QUIC/Alt-Svc,可平行參考 HTTP/3 驗收清單,把傳輸層與應用層 Headers 分開討論。

02 從 Pages Hook 到 OpenClaw Runner 的一跳

建議路徑:Cloudflare Pages Deploy Hook(或建置完成後的 Git 整合回呼)→ 你方 Ingress(OpenClaw 閘道)校驗簽章 → 立即 202 Accepted,非同步執行 scripts/cf-pages/openclaw-post-deploy.sh(與本機相同路徑)。Runner 內順序建議:(A)按需快取失效(B)curl 批跑+Headers diff(C)Playwright 冒煙(D)build_summary 冪等 POST。與 Netlify 條目區分:日誌欄位用 cf_pages_deployment_idcf_raycf_cache_status,便於與儀表板對齊;若站內另有 打包圖譜 PR 摘要,請勿把 CF 與 Netlify 的 deploy id 混寫在同一條冪等鍵。

03 可複現步驟(遠端 Mac 與筆電同腳本)

  1. 匯出脈絡:GIT_SHACF_PAGES_COMMIT_SHA 對齊;DEPLOY_URL 填生產網域或本次 Preview;OPENCLAW_RUN_IDuuidgen;密鑰僅注入 Runner 程序環境,不寫入倉庫。
  2. 快取失效:若全站靜態指紋變更,可對帳戶呼叫 Purge Everything;若僅部分路由更新,使用依 URL Purge 或建置流水線內已知清單,避免無謂清空全站。失效後等待數秒再進入 curl 階段。
  3. curl 批跑預熱:urls.txt(可由 sitemap 產生)以 xargs -P 或 GNU parallel 對每條 URL 執行 curl -fsSI,收集狀態碼、retry-aftercf-cache-status;對 429/5xx 採指數退避+抖動,上限與 SLO 對齊。
  4. Headers 規則 diff:將回應標頭過濾為關心集(如 content-security-policystrict-transport-securitypermissions-policy),排序後寫入 headers_observed.json,與 headers_baseline.json(由 _headers 與規則匯出)做結構化 diff;僅回報新增/缺失/值變更,避免雜訊。
  5. 冒煙:npx playwright test tests/smoke --project=webkit --project=chromium,失敗案例附 trace 路徑。若需釐清快取鍵,可搭配 SW 鍵差分摘要
  6. 建置摘要回傳:寫入 .openclaw/reports/build_summary.jsonschema: "build_summary/v1"、各階段 duration_msheaders_diff_failedfailed_cases);POST 時帶 Idempotency-Key: ${GIT_SHA}:cf-pages:${DEPLOYMENT_ID}:summary

實務上可把 curl 與標頭擷取包成單一 Node 或 shell 函式,輸出欄位固定為 urlhttp_statuscf_raycf_cache_statusage,再餵給 diff 與儀表板;同一函式在 CI 乾跑與遠端 Mac 正式跑應得到相同契約,才能把「偶發邊緣不一致」收斂成可追的 ticket,而不是口頭描述。

04 OpenClaw 閘道側編排與失敗摘要

閘道負責:鑑權限流任務分片(避免單次 Hook 觸發重複全量 Purge),以及把 Runner 退出碼與 NDJSON 聚合為一條人類可讀失敗摘要(例如「Headers:CSP 缺少 nonce 來源;冒煙:結帳逾時」)。每行 NDJSON 建議含 phasepurge|curl_batch|headers_diff|smoke|callback)、attempterror_classcache|tls|assert)。僅對讀路徑自動重試;寫庫或支付沙箱用例須在新 deployment 上整組重跑。摘要與 JSON 一併 POST,IM 裡只貼摘要與連結,避免洩露 Token。

05 常見問題(Hook、快取與 Headers)

現象/碼 常見原因 處理要點
Hook 已觸發但仍為舊內容 邊緣快取未失效或瀏覽器 SW 快取。 cf-cache-status 與 Purge 範圍;對照 SW 鍵差分摘要
Headers diff 全紅 Preview 與 Production 規則不一致,或 Workers 注入標頭。 分環境基線;對同一 URL 固定 curl -H 'Host: …' 與解析路徑。
429/5xx 批跑 Purge 後冷請求集中、源站限流。 降低 xargs -P 併發;退避後單 URL 串行複驗。
401/403 回呼 閘道 Token 輪替或 HMAC 時鐘漂移。 同步祕鑰庫;校時 NTP;最小權限 Scope。

與 Netlify 流程能共用嗎?可共用 Playwright 與 build_summary 契約;差異在 Hook URL、快取 API 與日誌欄位——建議依平台分目錄,避免把 NETLIFY_*CF_* 混在同一 Idempotency 命名空間。細節可對照 Netlify 版 HowTo

遠端 Mac · 7×24 · Safari+Chromium · 免登入瞭解

用常駐 Mac 承接 Cloudflare Pages Hook,把快取、Headers 與冒煙做成發布預設項

建置完成即觸發:在 Apple 硬體上雙引擎舉證,並以 curl 與結構化 diff 對齊邊緣行為。無需登入即可瀏覽 幫助中心、查看 定價,並於 購買/租用 取得節點;更多文章見 技術見解列表官網首頁

Deploy Hook 觸發 Headers diff WebKit 冒煙
遠端 Mac 跑 CF Pages 冒煙