OpenClaw 實戰 · Matrix · 多節點通知

2026 OpenClaw MeshMac 實戰:遠端 Mac 上對接 Matrix Webhook 觸發共用建置狀態廣播的最小可複現步驟

2026.04.01 Meshmac 約 7~9 分鐘閱讀

MeshMac 多節點共用建置池時,團隊只需要一個 Matrix 房間看清 CI 狀態,無須追問工作跑在哪台遠端 Mac。本文給最小可複現路徑:把通知收斂到 OpenClaw 網關,經 Webhook 或應用服務寫入房間;搭配簽章或最小權限CI 欄位對照收不到訊息時的 FAQ,讓多名協作者在同一時間線跟進建置、切換節點與值班交接。

網關安裝與令牌

選一台穩定入口機(或內網穿透後的固定位址)跑 OpenClaw 網關,確保 SynapseCI 出站都能連上其 HTTPS。設定 OPENCLAW_CONFIG_ROOT,設定與密鑰不入 Git;建置 Worker 節點只消費佇列或執行腳本,不掛載完整 Matrix 使用者工作階段,避免權杖在多台遠端 Mac 上擴散。

為「建置狀態機器人」單獨建使用者,手動加入團隊房間一次,將其存取權杖寫入僅網關執行身分可讀的密鑰檔(建議權限 0440)。記錄 homeserver 基址(與憑證一致)、完整 room_id(不要只靠別名),並在日誌裡以 correlation_id 串聯 CI → 網關 → Matrix。權杖輪替節奏可對照站內 頻道告警與權杖輪替。多機場景下,通知應經統一網關與共用佇列發出,拓撲可對齊 多節點部署與任務佇列同步,避免每台 Mac 各自直連 Matrix 造成時間線分裂;輪值與旁觀者只要在房間內就能掌握多節點協作通知

Matrix Webhook/應用服務配置步驟

輕量起步可用「HTTP 入站 → 橋接/機器人」把 JSON 對應為 m.room.message;需要幽靈使用者、多房間路由或交易型自動化再上應用服務

  1. 在反向代理上暴露 TLS 路徑,例如 /hooks/matrix/build-status,staging 與 prod 使用不同路徑或不同註冊,防止環境串線。
  2. 在 Synapse 側透過整合管理器填寫 Webhook URL,或將 app_service_config_files 指向你的註冊 YAML。
  3. 應用服務 YAML 填寫 idurlas_tokenhs_tokensender_localpart 與合理命名空間(如專用前綴)。
  4. 重載 Synapse,從可信主機 curl 發送帶簽章的範例 POST,確認房間出現訊息。
  5. 在房間主題或 Runbook 約定:每則通知攜帶 mesh_node_id,讓多節點協作時一眼看出由哪台建置機回報。

若你同時維護非 Matrix 的共用建置 Webhook,可與 多節點共用建置 Webhook 設定 中的驗簽、佇列寫法交叉參考,維持同一套冪等與重試策略。

訊息簽章或最小權限校驗

所有進入網關的 POST 都應驗真:優先原始請求本文計算 HMAC-SHA256,與請求標頭中的簽章做常數時間比對;若 CI 平台不支援 HMAC,可退化為 Bearer 密鑰並搭配CI 出口 IP 白名單。拒絕時間戳過舊(例如超過 5 分鐘)的請求以防重放。

Matrix 側權限壓到最小:僅允許向指定建置房間發訊息,禁止任意邀請、建房或管理使用者。Authorization 標頭不要打進應用日誌;驗簽邏輯只放在網關,不要在每台遠端 Mac 上重複暴露密鑰。如此即使某節點遭入侵,也不致拖垮整個 Matrix 帳戶面。

與 CI 狀態欄位對照表

先把各 CI 提供商的 JSON 正規化為網關內部結構,再格式化為 Matrix 訊息(純文字或 Markdown),避免範本裡直接嵌套未校驗欄位。

CI 來源欄位(示例) 網關內部鍵 Matrix 訊息用途
workflow/pipeline 名稱workflow首行加粗,標識哪條流水線
status/conclusionstate對應為排隊、執行中、成功、失敗等(團隊統一 emoji 規則)
head branch/refbranch第二行區分發布分支與功能分支
head sha/commit idcommit短 SHA+連結到執行詳情
html_url/web_urlrun_url可點連結,便於跳轉日誌與產物
runner 名稱或自訂標籤mesh_node_id頁尾標明多節點中具體建置機,無需 SSH 即可區分

收不到訊息排錯 FAQ

現象 優先排查
CI 成功但房間無事件房間 id/別名是否與權杖一致;bot 是否在房內;橋接是否丟棄空 body;結論欄位是否為 null 導致範本跳過
應用服務報簽章校驗失敗磁碟 YAML 與 Synapse 內 hs_token/as_token 是否一致;密鑰是否含多餘換行;從 Synapse 主機 curl 網關排除 TLS 問題
僅部分節點有通知各 Runner 是否仍指向舊 Webhook URL;出站是否被防火牆擋到非統一網關
同一執行多則重複訊息在網關以 run id+state 做短時去重(如 Redis/SQLite 視窗 60~72 小時)
驗收建議:以最小工作流程發一則「合成成功」事件,先在 Synapse 管理日誌中看到事件 id,再通知業務方;多節點切換後重複一次,確認時間線仍單房間、單網關。

下一步(首頁/購買/幫助/部落格)

完成上述步驟後,多節點遠端 Mac 上的建置狀態應匯總到同一 Matrix 房間,協作者無須登入各機即可跟進。無需帳號即可繼續瀏覽:首頁購買/套餐(免登入可瀏覽與下單)、幫助中心部落格列表,以及 OpenClaw 索引 取得更多 MeshMac 編排文。

多節點 · Matrix · 免登入導覽

一條時間線涵蓋整個建置池

從首頁了解遠端 Mac 資源,在幫助中心查 SSH 與協作說明,在部落格與 OpenClaw 索引補齊佇列、密鑰與告警實務。

免登入・購買/套餐