AI Frontier

2026年・macOS上でOpenClawのstagingと本番ワークスペースを分離:LaunchAgent、8787/8788、doctorスモークとクラウドMac mini

MacHTML Lab2026.05.13約34分で読める

2026年、SREとプラットフォームエンジニアはApple Silicon Mac mini1台にOpenClawstagingゲートウェイ本番ゲートウェイを同居させたいと考える。理由は単純で、調達より「日16.9ドル前後から借りられるクラウドmacOS」を先に回した方が早い。だが設定ルートを共有すると、staging側のnpm linkや一時的なツール許可リストが本番のsqliteに書き込み、障害対応が「誰が最後に触ったか」探偵になる。PATHだけ分けてもlaunchdのplistが同一Labelを指せばlaunchctl kickstart -kで意図しないプロセスが再起動する。本稿ではchmod 700の二重ホーム、ポート8787/8788、ログパスの分離、ThrottleIntervalを最低10秒に上げたデバッグ運用、そして先にdoctorを通す5分スモークをまとめる。関連してEADDRINUSEとlsof初回PATHとLaunchEnvironmentVariablesdoctor診断を併読してほしい。

監査で聞かれる三問──どのディレクトリがどのAPIキーを保持するか、どのLabelがどのポートをLISTENするか、最後に緑だったdoctorログの保管場所──に即答できる状態をゴールとする。

運用メモとして、各環境のlaunchctl print出力を週次でスナップショット化し、差分が出たら即レビューに回すと、静かな設定ドリフトを早期に拾える。

1台二役の理由

クラウドMac minilaunchd挙動・キーチェーン・Safari併走など、Linux CIでは再現しづらい境界条件をそのまま持つ。PoCではstagingを1日複数回マージし、本番は変更窓だけ触る運用が多い。二つのプロファイルを「フラグで切替」ではなく隔離境界として扱うと、権限レビューで説明しやすい。ディスクは512GBクラスでも、誤った本番接続1回の損失より安価だ。

財務への説明では「日額16.9USD前後のレンタルで二重のゲートウェイ検証が可能」と数字で示すと通りやすい。金属機二台を買う前に、まず物理挙動を借りて確かめるのが現実的だ。

ディレクトリと秘密情報

~/.openclaw-staging~/.openclaw-prodを作り、chmod 700で他ユーザから見えないようにする。stagingを本番へシンボリックリンクしない。READMEに作成日、オーナー、最終doctor成功時刻、ログローテーション方針(単一ファイル128MB上限など)を書く。将来ユーザ分離へ移行する際もディレクトリ名を変えずに済む。

バックアップは環境ごとにtarを分け、復元手順をRunbook化する。同じ tarball を二環境で使い回すと秘密が混線する。

plist・ログ・環境変数

com.example.openclaw.gateway.stagingのようにLabelを絶対に重複させない。StandardOutPathStandardErrorPath~/Library/Logs/OpenClaw/以下でファイル名を分ける。LaunchEnvironmentVariablesにはwhich nodeで確認した絶対パス、Homebrewやvoltaのshimを先頭に置いたPATH、そしてOPENCLAW_PROFILE_DIRのようなプロファイル根変数を入れる。クラッシュループ時はThrottleInterval10秒以上にし、ログ洪水を止める。

ポート責務マトリクス

項目staging本番
TCPポート87878788
設定ルート~/.openclaw-staging~/.openclaw-prod
LaunchAgent…staging…prod
キー轮换週次も可変更窓に合わせ月次など
doctorマージ前必須タグ付け後必須

リバプロとループバックの罠

nginxやCaddyでTLS終端しループバックへ転送する構成では、ゲートウェイを127.0.0.1に限定し、不要な0.0.0.0バインドを避ける。アイドルタイムアウトはstagingと本番で5%以内に揃えないと再現性が崩れる。security find-identity -v -p codesigningのスクショを添付し、署名材料が混線していないことを示す。

障害時にkillall nodeだけを打つとlaunchd外の第三プロセスが残る。必ずbootoutとポート解放の順序をRunbookに固定する。

チェックリスト

  1. ディレクトリ作成とchmod 700ls -leでACL確認。
  2. lsofで8787/8788が空いていることを確認。
  3. plist差分はLabel・パス・ポート・環境変数以外を禁止。
  4. 各ルートでdoctorを実行しログをチケットへ。
  5. stagingを先に立ち上げ、127.0.0.1:8787へ3回連続200を確認(間隔2秒)。
  6. 本番をbootstrapし8788で同様に確認。
  7. plistのSHA-256を変更管理へ登録。
  8. ロールバック手順(本番bootout→staging単独)をリンク。

FAQ

設定ファイルだけ分ければ十分?

sqliteやキャッシュが衝突するのでディレクトリ単位の分離が必要。

単一ドメインしかない

SNIやパスで二つのループバックポートへ振り分ける。

セキュリティ監査への提示物は?

別Label、別ログ、別APIキー、別タイムスタンプのdoctor出力。

Apple Silicon Mac miniは二つのNodeゲートウェイとlog streamを同時に回しても静音性が高く、デスク上の検証に向く。MacHTMLのクラウドminiはSSHと任意のVNCを組み合わせられるため、plistを二人で突き合わせる際にノートPCを郵送する必要がない。試験終了後はインスタンスを停止し、暦日ベースの課金だけを支払う──これがOpenClawのような短期プロファイル検証と相性が良い。

stagingは頻繁に壊れて良いが、本番は退屈であるべきだ。レンタルmacOSはその「頻繁さ」と「退屈さ」を同じ金属上で両立させる現実解になる。

実機macOSで二重OpenClawプロファイルを検証

クラウドMac miniを借り、plist隔離とdoctorスモークを本番マージ前に完了させる。

二重profileをMacで
$16.9/日から