openclaw onboard/openclaw doctor による自己診断、そしてゲートウェイのローカルバインドが公開ドキュメント上の定石です。本稿はリモート Mac で自前ゲートウェイを運用し、CI 失敗やジョブ結果を Telegram/Slack に流したいチーム・個人開発者向けに、最小権限・Webhook 検証・届かないときの切り分けまでをコマンドと設定キー名で固定します。概念説明ではなく、そのまま手元で再現できる順序に並べています。
① 前置チェック(バージョン・ポート・本機バインド vs リバースプロキシ)
まずランタイムと CLI の実体を固定します。Node 22+ が推奨ラインに乗っているか、openclaw が期待 PATH にあるかをログに残すと、後段の「環境が違う」系のトラブルを一発で切れます。
node -v which node openclaw --version 2>/dev/null || true openclaw doctor # onboard は初回ウィザード相当(対話/非対話は版により異なる) openclaw onboard --help 2>&1 | head # リッスンと意図しない公開の有無 lsof -iTCP -sTCP:LISTEN -n -P | egrep 'node|LISTEN'
本機バインド(127.0.0.1)はセキュリティ上のデフォルト寄りです。外向きに Webhook を受けたい場合は、裸の 0.0.0.0 ではなく手前のリバースプロキシで TLS 終端・IP 制限・レート制限を挟むか、SSH ローカルフォワードで閉域から届ける設計に寄せます。ゲートウェイの listen アドレス・ポートは利用中バージョンの設定(例:openclaw.json の gateway.host/gateway.port 相当、または環境変数 OPENCLAW_GATEWAY_BIND)を確認してください。
| 方式 | 向くケース | チェックコマンド/観点 |
|---|---|---|
127.0.0.1 のみ | 同一ホスト上のエージェント・ローカル cron | curl -fsS http://127.0.0.1:<PORT>/health(パスは版依存) |
SSH -L | オペレータ端末から閉域ゲートウェイを触る | ローカル側 lsof とリモート側 ss の両方 |
| リバースプロキシ | IM ベンダーからの外向き Webhook 受信 | 証明書・X-Forwarded-For 信頼境界・WAF ルール |
ゲートウェイ全体の硬さはゲートウェイセキュリティ実戦と、常駐・自己点検はLaunchAgent 健康診断と併読してください。
② Telegram Bot 作成・トークン書き込み・環境分離の最小権限リスト
Bot は発言用トークンがそのまま送信権限になります。リポジトリにはプレースホルダのみ置き、実値はlaunchd の EnvironmentVariables または CI のマスク済みシークレットに限定します。
- 環境変数キー例:
TELEGRAM_BOT_TOKEN(実行ユーザのみ読めるファイル権限) - グループ投稿が必要なら Bot を該当チャットに追加し、不要な管理者権限は付与しない
- Webhook 受信を自前で持つ場合は
TELEGRAM_WEBHOOK_SECRET等で署名/パス検証を有効化(版・実装に合わせてキー名を置換) - 開発/本番で Bot を分け、トークンを混在させない
# トークンがシェル履歴に残らないよう pbcopy 経由で注入推奨
umask 077
openssl rand -hex 24 > /tmp/rotate-placeholder.txt # 例:別秘密との混同防止用メモ
# 疎通(Bot API は公式エンドポイントへ。トークンはマスク)
curl -sS "https://api.telegram.org/bot${TELEGRAM_BOT_TOKEN}/getMe" | head -c 400
OpenClaw 側ではチャンネル設定ブロック(YAML/JSON いずれか)に telegram.botToken 相当をマッピングする形が一般的です。実キー名は openclaw doctor の出力とドキュメントを優先してください。
③ Slack:Incoming Webhook と App 方式の比較(安全・監査・限流)
通知だけなら Incoming Webhook が軽い一方、組織の監査・スコープ分割・再発行フローが厳しければ Slack App+OAuth/Bot Token の方が運用に合うことがあります。以下は意思決定用の要約表です(各コンソールの細部操作は製品 UI に従ってください)。
| 観点 | Incoming Webhook | Slack App(Bot/OAuth) |
|---|---|---|
| 秘密の性質 | URL 自体が高権限に近い | トークン+スコープで分割可能 |
| 監査・失効 | URL ローテで一本化 | App 単位で revoke/再発行しやすい |
| レート/スパム | チャンネル単位で詰まりやすい | 公式の API 制限表に沿って設計 |
| Webhook 検証 | 共有秘密+署名ヘッダの組合せ推奨 | X-Slack-Signature+タイムスタンプ検証が定石 |
環境変数の例:SLACK_WEBHOOK_URL(投稿専用)、SLACK_BOT_TOKEN(App 方式)、受信側検証用 SLACK_SIGNING_SECRET。いずれもログ・ビルド出力に生で出さないことを pre-commit か CI マスクで固定します。
④ ステップバイステップ:openclaw から初回テストメッセージまで
導入:公式手順に従い CLI を入れ、openclaw doctor で Node・権限・設定ファイルパスを緑に揃えます。
ゲートウェイ起動:まず 127.0.0.1 で listen し、OPENCLAW_GATEWAY_TOKEN(または版が定めるヘッダ名)付きでローカル curl が通ることを確認します。
チャンネル設定:TELEGRAM_BOT_TOKEN/SLACK_WEBHOOK_URL を環境か設定ファイルにバインドし、OpenClaw を再起動して読み込みます。
Webhook 入口:外向きに開く URL はプロキシで TLS を終端し、WEBHOOK_SECRET またはベンダー署名でボディを検証してからゲートウェイへ中継します。
テスト送信:CLI または最小スクリプトで「短いプレーンテキスト」を送り、IM 側で重複・遅延・429 を確認します。
# ローカルゲートウェイ疎通例(パス・ヘッダは利用版に合わせて置換)
curl -sS -H "Authorization: Bearer $OPENCLAW_GATEWAY_TOKEN" \
http://127.0.0.1:${OPENCLAW_PORT:-18789}/health
# 外向き到達性(プロキシ背後でない端末から)
curl -sS -o /dev/null -w '%{http_code}\n' https://your-public-host/webhook/openclaw
(参考)自前ゲートウェイ vs マネージドパネル型:比較の要点のみ
| 観点 | 自前(リモート Mac) | マネージドパネル型 |
|---|---|---|
| データ主権 | ディスクとログを自分で保持 | ベンダー方針に依存 |
| Webhook 検証の自由度 | 任意の HMAC/mTLS を挟める | 提供されたフック形式に合わせる |
| 運用負荷 | LaunchAgent・更新・証明書 | 初期は軽いことが多い |
| コスト構造 | マシン+帯域が中心 | シート課金・メッセージ課金など多様 |
⑤ FAQ:届かない・リプレイ対策・トークンローテ・CI コールバック
以下は本文と同一趣旨の要約です。構造化データ(FAQPage)とも整合させています。
- 届かない:
lsofでポート、curlで 127 疎通、プロキシのHTTPS_PROXY/NO_PROXY、Bot がチャットに入っているか、Slack 側 429/invalid_auth をログで確認。 - リプレイ:タイムスタンプ窓+署名ヘッダ検証。同一ペイロードの再配送に備え idempotency を検討。
- ローテ:新トークンを先に配り、疎通後に旧トークン失効。plist は
chmod 600。 - CI コールバック:runner から
127.0.0.1は見えない。内部 DNS・トンネル・公開エンドポイントを明示。Git/npm の跨境最適化はミラーと CI 三歩を参照。
まとめ・次の一歩
メッセージチャネルは「ゲートウェイのバインド境界」「IM 側の秘密の置き場所」「Webhook 検証」「CI からの到達経路」の四点が揃って初めて安定します。MacPull ホームでリモート Mac の用途を確認し、ブログ一覧から OpenClaw・Git 加速の各稿を辿ってください。公開ドキュメントはヘルプセンターにまとまっています(ログイン不要で閲覧可能な範囲)。
ノード選定は「同時に流す CI 本数」「外向き Webhook の本数」「ログ保持日数」で決めるとブレません。料金でスペックを比較し、方針が固まったら購入ページからプランを確定するのが最短です。
Apple Silicon 上でゲートウェイと IM を常時接続するほど、固定出口と電源・熱対策の安定が効いてきます。自前運用に割く時間を減らし、チャネルまわりの検証に集中したい場合は、検証済みスペックのリモート Mac を基盤に載せ替えるのも現実的な選択です。
チャネル検証に集中できるリモート Mac
ゲートウェイ常駐と外向き HTTPS の試行錯誤には、手元よりデータセンター側の帯域と固定 IP が効きます。