openclaw onboard、Dashboard、Webhook の curl 検証を一列にします。関連:多端点ルーティングと CI 要約、インストール排障、LaunchAgent 健康診断。ヘルプ・購入・ホームはログイン不要で閲覧可。
① 環境前置と最小権限の原則
公式 curl か npm i -g openclaw@latest。SSH シェルと launchd のゲートウェイで 同一 Node(22.16+ または 24 LTS)に揃えます。openclaw doctor と launchctl print で PATH/プロキシ/CA を照合します。
最小権限:Discord は Webhook のみ。DISCORD_WEBHOOK_URL は env/シークレットのみ。URL 漏洩=第三者投稿になり得ます。
| 項目 | 推奨 | 避ける |
|---|---|---|
| Node | 全経路で 24 LTS(または文書下限 22.16+) | SSH と launchd で別バイナリ |
| 秘密 | plist・env ファイル(600)・CI Secret | Git・スクリーンショット・チャット貼り付け |
| 観測 | ゲートウェイログのローテと容量監視 | デバッグでルート領域を埋める |
② Discord Webhook の作成とゲートウェイ側バインド
openclaw onboard で設定を書き、Dashboard(多くは 127.0.0.1)で待受を確認します。
Discord:チャンネル設定の Webhooks で URL を作成(https://discord.com/api/webhooks/ 始まり)。ゲートウェイの通知設定または中継で DISCORD_WEBHOOK_URL を渡し、変更後 launchctl kickstart -k で再読み込みします。
| 手順 | 作業 | 合格条件 |
|---|---|---|
| 1 | onboard 後に Dashboard が開く | 本機 curl でルートまたは /health が期待どおり |
| 2 | Webhook を環境変数に入れてサービス再起動 | launchctl print に変数が見える |
| 3 | 下記 curl で疎通 | HTTP 204 かつチャンネルに表示 |
届かない:URL 欠け・環境取り違え・content/embeds 同時空・文字数超過を確認します。
③ CI ビルド要約の payload ひな形とフィールド対応
パイプライン末尾で JSON を組み、embed に載せると一覧性が上がります。
| 表示名 | 取得元の例 | Discord 側 |
|---|---|---|
| リポジトリ | GITHUB_REPOSITORY |
embeds[0].fields[] |
| ブランチ/タグ | GITHUB_REF_NAME |
field または footer |
| コミット | git rev-parse --short HEAD |
field+コミット URL |
| 結果・所要 | 終了コードと経過秒 | color(緑/赤)と description |
ゲートウェイ経由なら内製 API に POST し、request_id で追跡します。
④ 署名・レート制限・失敗時の再試行パラメータ
Discord 直 POST は URL が鍵のため署名は補助的。社内 API を挟む場合のみ HMAC を検討。ログに生 URL を出さない。
429:Retry-After 遵守、通知の束ねとジッタ。タイムアウト例 --connect-timeout 5 --max-time 20、再試行 最大 3 回・2s/4s/8s。Runner とゲートウェイの NO_PROXY を一致させます。
⑤ よくあるエラー FAQ(403/429/タイムアウト)
HTTP 403 Forbidden
Webhook 削除・URL 欠損が多い。作り直し、Secret 更新、投稿権限を確認。
HTTP 429 Too Many Requests
頻度削減・embed 統合・Retry-After 遵守。
タイムアウトや exit 56
プロキシ/DNS/FW を疑い、同一環境で discord.com へ短い curl で再現します。