Harbor の Webhook を リモート Mac の OpenClaw が受け、docker pull で先詰めし 要約 JSON を allowlist 先へ返す手順です。導入は curl で CLI を取る例や
openclaw onboard --install-daemon がコミュニティで紹介されることがありますが必須ではありません。硬化記事とディスク FAQを参照してください。
目標と前提条件
目標は レイヤ待ちの削減と digest 単位の監査ログです。前提は Node 22 系と CLI のパス一致、ゲートウェイ 127.0.0.1、外向き HTTPS allowlist、Harbor ロボットは pull のみ、です。
| 観点 | 都度 pull | Webhook 前置 |
|---|---|---|
| 律速 | 本番直撃 | 事前温め |
| 観測 | ログ分散 | 要約集約 |
五手順
openclaw doctorとopenclaw statusでヘルス確認- Harbor に URL と秘密を登録しテスト配信の生 JSON を保存
- Bearer と署名を生ボディで timing-safe に検証し digest で冪等
- 並列・タイムアウト・空き容量を環境変数で渡し
tee退避 - 許可先へ POST、長処理は二〇二でワーカーへ
Harbor Webhook のイベント項目と署名検証チェックリスト
PUSH_ARTIFACT 等へ絞り、event_type・repository・tag・digest と時刻が欠ける場合は四〇〇で再送に任せます。
署名
- 秘密は改行なし・権限六〇〇
- HMAC はパース前の生ボディで比較
- 任意で受信側 Bearer を二層化
リモート Mac のプリプルシェル引数(並列・タイムアウト・ディスク枠)
MAX_JOBS は三至五から、転送タイムアウトは六百から九百秒で実測に余白、MIN_FREE_GB 未満なら中止して要約へ理由を書きます。接続と転送の秒は分けます。
MAX_JOBS=4 CURL_MAX_TIME=900 MIN_FREE_GB=10 ./prefetch.sh "$REF" 2>&1 | tee -a /var/log/oc.log
OpenClaw ゲートウェイルーティングと失敗要約のひな形
受信と外向き POST をルート分割し CALLBACK_ALLOW_HOSTS のホストだけ許可します。ヘルスは openclaw status で定期確認します。
{"schema":"oc.prefetch.v1","digest":"sha256:…","ok":false,"reason":"timeout","elapsed_sec":612}
成功時は ok を真にします。排障で PATH を揃えます。
よくあるエラー FAQ(鑑権・タイムアウト・ディスク満杯)
鑑権
ロボット権限と期限、docker login を常駐ユーザーでやり直し、CA は NODE_EXTRA_CA_CERTS を確認します。
タイムアウト
二〇二で ACK するか猶予秒を延ばし digest 冪等で二重 pull を防ぎます。
ディスク満杯
docker system df で肥大を潰し並列を下げます。
まとめと購入導線
署名・digest・allowlist が揃えば Harbor 起点のプリプルは本番待ちを下げます。常駐は専用 Apple Silicon が向きます。