2026-04-17 ヘッドレス リース クラウド Mac 上の OpenClaw onboard と install-daemon
OpenClaw の 2026 年 npm 配布は引き続き CLI ファースト を強調します。グローバルにインストールし、openclaw onboard を実行し、ツールがゲートウェイ用の LaunchAgents を足場組みします。SSH だけが接点のリース済み Apple Silicon Mac ではハッピーパスは簡単ですが、GUI を前提としたプロンプト、欠落した環境変数、上流推奨から二世代遅れた Node までが地雷になります。この 2026-04-17 ガイドは前提条件、ピン留めインストール、デーモン作成、HK / JP / KR / SG / US ノードでの検証を順に追います。クリーンに立ち上がったら ゲートウェイのアップグレードとロールバック、launchd 経由のシークレット、ヘルスプローブへ進み、webhook を公開する前に仕上げてください。初回成功時の openclaw --version と plist label を CMDB に残すと後追いが楽です。
前提条件:アカウント、ポート、ポリシー
- 外向き HTTPS — モデルとチャネルのエンドポイントがリージョンから到達できること。企業テナントでは許可リストを文書化します。
- ローカルバインド — 既定のゲートウェイはしばしば
127.0.0.1:18789。公開トラフィックは nginx イングレス と組み合わせます。 - ユーザーコンテキスト — CI やオペレータセッションと同じ POSIX ユーザーでインストールし、分割されたホームレイアウトを避けます。
複数エンジニアがホストを共有する場合、API キーのローテーション責任(誰が生成し、誰が plist に書き込み、誰が curl で検証するか)を明文化してください。ヘッドレス環境では「誰かのローカルで export したが CI に引き継がれない」ことが最大の罠です。
Node バージョンの固定(22 LTS と 24)
最近の OpenClaw ビルドのリリースノートは、利用可能なら Node 24 を推しつつ、Node 22.16+ をサポート下限とします。macOS Sonoma / Sequoia のビルダーでは組織承認済みインストーラ(fnm、nvm、pkg)を使いつつ、バージョンを IaC で固定してください。node -v と npm -v をマスク済み openclaw.json と同じ成果物バンドルに記録します。
node -v && npm -v && which node
/usr/bin/node と Homebrew Node を端末ごとに混ぜないでください。launchd は最小限の PATH を継承します。必要なら plist の EnvironmentVariables に絶対パスを書きます。
SSH セッションと非対話の規律
オンボーディング前にプロバイダキーを export します。多くのフローは OPENAI_API_KEY 形式の変数やカスタムブリッジトークンを読み取ります。完全非対話では export VAR=… と openclaw onboard を同じシェル起動にまとめるか、パーミッション 0400 のドットファイルを source します。CLI がまだ対話する場合は semver ドキュメントの --yes 系フラグを確認してください。
長時間セッションでは SSH_TTY と LC_ALL を記録し、文字化けによるデーモン誤判定を避けます。
CLI のインストール(ピン留めでドリフト回避)
本番は npm メタデータの 2026.4.x のような明示バージョンに揃え、リージョンの最初のホストで裸の @latest を使わないでください。
npm install -g openclaw@2026.4.15
openclaw --version を実行し、標準出力を CMDB に保存してください。将来の差分はこのベースラインに依存します。
openclaw onboard --install-daemon を実行する
onboard サブコマンドはモデル選択、ワークスペース既定、デーモン導入を順に案内します。ヘッドレスホストではセキュリティベースラインが特定 ACL を要求する場合、先に ~/.openclaw を作成し所有者を合わせます。--install-daemon 完了後、~/Library/LaunchAgents に plist 参照が現れ、ai.openclaw.gateway のようなラベル(バージョンで変化します — 出力パスを必ず読む)が付きます。
| シグナル | 正常 | 異常 |
|---|---|---|
| CLI 終了コード | 0 と「installed daemon」要約 | 非ゼロで plist ディレクトリに EACCES |
| ファイル | plist とログディレクトリが作成される | LaunchAgents エントリのない部分的 ~/.openclaw |
| ポート | 文書化された localhost ポートへの curl が成功 | 古いプロセスによるアドレス使用中 |
launchd の検証と重複検出
macOS のバージョンに合わせて launchctl bootstrap gui/$UID … / kickstart パターンで現在の GUI なしセッション向けにエージェントをブートストラップします。すぐに openclaw doctor を走らせ、重複 LaunchAgent の回復 を参照してください。unload せずに onboard を再実行すると plist が積み上がりがちです。
ヘルスチェック、ログ、nginx を足すタイミング
レディネスプローブ の軽量 curl を使い、127.0.0.1 が HTTP 200 になるまでループしてから nginx TLS を取り付けます。初回チャネルハンドシェイク中は ~/.openclaw/logs(OPENCLAW_STATE_DIR で変わる場合あり)を tail し、認証設定ミスを早期に掴みます。
関連ランブックとフリート拡張
最初のノードが安定したら、単一 Mac に重い Xcode レーンと常時オン AI ゲートウェイを載せるのではなく、料金ページ からセカンダリリージョンへプレイブックを複製します。公開ポートの代わりに mesh が必要なら、開放前に Tailscale メッシュ を確認してください。コンテナとネイティブ npm のトレードオフは Docker 対 ネイティブ を参照し、本文は npm ネイティブデーモンにフォーカスします。
Teams comparing terminal agents: see our Codex CLI vs Claude Code M4ベンチマーク (レンタルビルダー向け Terminal-Bench 77.3%対65.4%).
FAQ:クラウド Mac での初回インストール
| 質問 | 回答 |
|---|---|
| tmux から onboard してよい? | はい — 同じ環境ブロックを読み込んでください。tmux ペインは launchd が注入した変数を忘れがちです。 |
| ポート 18789 が衝突したら? | 古いゲートウェイを停止し、古い plist を unload してから doctor を再実行。カスタムポートは nginx upstream に記録します。 |
| Docker の方が簡単? | トレードオフが異なります — Docker 対 ネイティブ を参照。本文は npm ネイティブデーモン向けです。 |
まとめ:Node を固定し、npm semver を固定し、SSH 前にシークレットを export し、デーモンを一度きれいに入れ、doctor + curl で検証してからアップグレードとイングレスのランブックで硬化する — 逆順にしないでください。