Vercel · Deployment Hook · OpenClaw · 遠端 Mac · 2026

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

2026.04.17 前端/發布自動化 約 9 分鐘閱讀

適用對象:Vercel 託管前端並希望在每次部署後於真實公開網址完成冒煙安全 Headers固化驗證的團隊。本文給出 OpenClaw遠端 Mac 上的同一套 Runbook:從 Deployment Hookbuild_summary 冪等回傳。延伸可併讀 Cloudflare Pages HookNetlify Deploy HookCSP/nonce 驗收。slug:2026-openclaw-vercel-deployment-hook-smoke-headers-summary.html

痛點拆解

  1. 儀表板顯示綠燈,但邊緣或 vercel.json 變更使 Headers 漂移,使用者端才暴露。
  2. 筆電闔蓋或睡眠中斷排程,無人穩定執行 WebKit 真機訊號。
  3. 摘要回傳若無冪等鍵與去敏,易洗版或把權杖寫進日誌。
策略維度 預覽(Preview) 正式(Production)
Hook 與期待值 分支/PR 專用 Hook;headers_expect.preview.json 主線 Deploy Hook;headers_expect.prod.json;Ingress 校驗自訂網域。
冒煙範圍 較短路由+關鍵互動;可略過重資產頁。 完整 tests/smoke;WebKit 優先於 Apple Silicon 遠端 Mac。

01 OpenClaw 與 Hook URL

於 Vercel 專案 Settings → Git → Deploy Hooks 建立指向 Production 的 URL,並讓請求僅能打到帶共享祕密的 Ingress(閘道或 Worker)。入口應快速回 202 Accepted,發行 OPENCLAW_RUN_ID,再委派 ~/runners/vercel-post-deploy.sh。自 Payload 或 CI 注入變數讀取 VERCEL_URLVERCEL_DEPLOYMENT_IDVERCEL_GIT_COMMIT_SHA,並在 Runner 開頭驗證主機名是否為預期本番網域。版本庫內固定路徑 scripts/vercel/openclaw-post-deploy.sh,本機與 SSH 遠端 Mac 共用。

可複現步驟(依序執行)

  1. Ingress 驗證 HMAC 或 Bearer,正文以 jq 解析;失敗即拒絕並記錄請求 ID。
  2. 匯出 DEPLOY_URL=https://${VERCEL_URL};自訂網域時用環境對照表覆寫。
  3. deploy_id 做短鎖,避免並發部署互踩。
  4. 長任務入佇列;HTTP 執行緒不阻塞於四十分鐘 E2E。
  5. 將階段寫入 .openclaw/reports/deploy_hook.ndjson,鍵名與 Netlify 版對齊便於儀表板共用。
  6. 建置耗時 PR 摘要 共用欄位命名,利於橫向比較。

02 冒煙與 Headers 檢查腳本介面

(A)暖站:curl -fsS 輪詢至 HTTP 200 與 HTML 內建健康標記,遇 429502503 採指數退避加抖動。(B)Headers:config/headers_expect.json(或環境分流檔)列出 strict-transport-securitycontent-security-policyx-frame-options 等,與 curl -sSI 實際回應做正規化後 diff,輸出 .openclaw/reports/headers_diff.txt(C)冒煙:npx playwright test tests/smoke --project=webkit --project=chromium;失敗時 trace 落 .openclaw/traces/。NDJSON 每行帶 phasehttp_statusduration_ms

03 失敗摘要回傳模式

全數通過時以 build_summary/v1 寫入 git_shadeploy_id、各階段毫秒與 headers_diff_bytes.openclaw/reports/build_summary.json。任階段失敗則附 failed_phase、錯誤摘錄與 exit_code。對 PR 留言或聊天 Webhook POST 時帶 Idempotency-Key: ${VERCEL_GIT_COMMIT_SHA}:${VERCEL_DEPLOYMENT_ID}:summary,避免重送洗版;權杖與 Hook 祕鑰永不寫入 NDJSON 正文。

04 FAQ

症狀/代碼 切分建議
Hook 端 401 Ingress 祕鑰輪替未同步、Authorization 方案誤植;對齊 Vercel 與祕鑰庫後重試。
Headers 驟然不一致 檢查 Middleware、ISR 首包與 vercel.json;按部署 ID 保存 curl 輸出縮小差異來源。
僅 WebKit 失敗 ITP、第三方 Cookie 與追蹤防護;附 trace 與 VERCEL_DEPLOYMENT_ID 重現。
摘要 POST 429 Git 供應方次要速率限制;退避並拉長留言間隔。

長時測試勿掛在 Hook 同步連線;headers_expect 務必分環境,避免誤對預覽網域套用本番期待。

可引用資訊(值班/簽核)

  • 單次暖站退避:基底 2 秒、係數 1.8、最多六次並加抖動。
  • 冪等鍵命名空間:SHA:deploy_id:summary,重複觸發不重複留言。
  • 冒煙建議總時長壓在十分鐘內,長測改非同步 Worker。
遠端 Mac · 7×24 · Vercel Hook 連動 QA

讓每次部署都有固定 Runbook:Headers、冒煙與摘要一次到位

Deployment Hook 接到常駐遠端 Mac,即可在真實 Apple 硬體上跑 WebKit 與 Chromium,並把結果冪等回傳至 PR 或聊天。可先免登入瀏覽 定價幫助中心;需要專屬節點與頻寬時,請至 購買/租用 取得 Mac 雲端資源,把 OpenClaw 與 Playwright 留在可稽計環境。

Headers 巡檢 WebKit 冒煙 摘要回傳
租用遠端 Mac · Vercel Hook