- Podman が Gateway コンテナを実行します。
- ホストの
openclawCLI がコントロールプレーンです。 - 永続状態は、デフォルトでホストの
~/.openclaw配下に保存されます。 - 日常的な管理には、
sudo -u openclaw、podman exec、または別のサービスユーザーではなく、openclaw --container <name> ...を使用します。
前提条件
- rootless モードの Podman
- ホストにインストールされた OpenClaw CLI
- 任意: Quadlet で管理する自動起動を使用する場合は
systemd --user - 任意: ヘッドレスホストで起動時の永続化に
loginctl enable-linger "$(whoami)"を使用する場合に限りsudo
クイックスタート
1
初回セットアップ
リポジトリルートから または
./scripts/podman/setup.sh を実行します。これにより、rootless Podman ストアに openclaw:local がビルドされ(設定されている場合は OPENCLAW_IMAGE / OPENCLAW_PODMAN_IMAGE をプル)、存在しない場合は gateway.mode: "local" を含む ~/.openclaw/openclaw.json が作成され、さらに存在しない場合は生成された OPENCLAW_GATEWAY_TOKEN を含む ~/.openclaw/.env が作成されます。任意のビルド時環境変数:代わりに Quadlet 管理のセットアップを使用する場合(Linux + systemd ユーザーサービスのみ):
OPENCLAW_PODMAN_QUADLET=1 を設定します。2
Gateway コンテナを起動
--userns=keep-id を使用して現在の uid/gid でコンテナを起動し、OpenClaw の状態をコンテナにバインドマウントします。3
コンテナ内でオンボーディングを実行
http://127.0.0.1:18789/ を開き、~/.openclaw/.env のトークンを使用します。モデル認証: セットアップ中は OpenClaw が管理する認証を使用します(Anthropic API キー、または Codex ベースの OpenAI 向け OpenAI Codex ブラウザー OAuth/デバイスコード認証)。Podman ランチャーは、~/.claude や ~/.codex など、ホスト CLI の認証情報ホームをセットアップコンテナや Gateway コンテナにマウントしません。既存のホスト CLI ログインは同一ホスト上での利便性のための経路にすぎません。コンテナへのインストールでは、プロバイダー認証を、セットアップが管理するマウント済みの ~/.openclaw 状態に保持してください。4
ホスト CLI から実行中のコンテナを管理
openclaw コマンドがそのコンテナ内で自動的に実行されます。~/.openclaw/.env から Podman 関連キーの小さな許可リストのみを読み取り、明示的な実行時環境変数をコンテナに渡します。環境ファイル全体を Podman に渡すことはありません。
Podman と Tailscale
HTTPS またはリモートブラウザーアクセスについては、メインの Tailscale ドキュメントに従ってください。 Podman 固有の注意事項:- Podman の公開ホストは
127.0.0.1のままにします。 openclaw gateway --tailscale serveよりも、ホスト管理のtailscale serveを優先します。- macOS でローカルブラウザーのデバイス認証コンテキストが安定しない場合は、その場しのぎのローカルトンネルによる回避策ではなく、Tailscale アクセスを使用してください。
Systemd(Quadlet、任意)
./scripts/podman/setup.sh --quadlet を実行した場合、セットアップにより ~/.config/containers/systemd/openclaw.container に Quadlet ファイルがインストールされます。
Quadlet ファイルを編集した後:
127.0.0.1 公開ポート(18789 Gateway、18790 ブリッジ)、コンテナ内の --bind lan、keep-id ユーザー名前空間、OPENCLAW_NO_RESPAWN=1、Restart=on-failure、および TimeoutStartSec=300 です。OPENCLAW_GATEWAY_TOKEN などの値について、~/.openclaw/.env を実行時の EnvironmentFile として読み取りますが、手動ランチャーの Podman 固有オーバーライド許可リストは使用しません。公開ポート、公開ホスト、その他のコンテナ実行フラグをカスタマイズするには、代わりに手動ランチャーを使用するか、~/.config/containers/systemd/openclaw.container を直接編集してからサービスを再読み込みして再起動してください。
設定、環境、ストレージ
- 設定ディレクトリ:
~/.openclaw - ワークスペースディレクトリ:
~/.openclaw/workspace - トークンファイル:
~/.openclaw/.env - 起動ヘルパー:
./scripts/run-openclaw-podman.sh
OPENCLAW_CONFIG_DIR -> /home/node/.openclaw、OPENCLAW_WORKSPACE_DIR -> /home/node/.openclaw/workspace です。デフォルトでは、これらは匿名のコンテナ状態ではなくホストディレクトリであるため、openclaw.json、エージェントごとの auth-profiles.json、チャンネル/プロバイダーの状態、セッション、ワークスペースはコンテナを置き換えても保持されます。また、セットアップは、公開された Gateway ポート上の 127.0.0.1 と localhost 用に gateway.controlUi.allowedOrigins を初期設定するため、コンテナの非ループバックバインドでもローカルダッシュボードが動作します。
手動ランチャーで使用できる環境変数(~/.openclaw/.env に保存してください。ランチャーはコンテナ/イメージのデフォルト値を確定する前にこのファイルを読み取ります):
デフォルト以外の
OPENCLAW_CONFIG_DIR または OPENCLAW_WORKSPACE_DIR を使用する場合は、./scripts/podman/setup.sh とそれ以降の ./scripts/run-openclaw-podman.sh launch コマンドの両方で同じ変数を設定してください。リポジトリ内のランチャーは、カスタムパスのオーバーライドをシェル間で永続化しません。
イメージのアップグレード
新しいイメージをリビルドまたはプルした後、コンテナまたは Quadlet サービスを再起動します。 新しい OpenClaw バージョンでの初回起動時に、Gateway は準備完了を報告する前に、 安全な状態修復と Plugin 修復を実行します。 Gateway が準備完了にならず終了する場合は、同じマウント済みの状態/設定に対して 同じイメージをopenclaw doctor --fix 付きで一度実行し、その後 Gateway を
通常どおり再起動します。
,Z を追加します。
便利なコマンド
- コンテナログ:
podman logs -f openclaw - コンテナを停止:
podman stop openclaw - コンテナを削除:
podman rm -f openclaw - ホスト CLI からダッシュボード URL を開く:
openclaw dashboard --no-open - ホスト CLI によるヘルス/状態確認:
openclaw gateway status --deep(RPC プローブ + 追加のサービススキャン)
トラブルシューティング
- 設定またはワークスペースでアクセス許可が拒否される(EACCES): コンテナはデフォルトで
--userns=keep-idと--user <your uid>:<your gid>を使用して実行されます。ホストの設定/ワークスペースパスが現在のユーザーによって所有されていることを確認してください。 - Gateway の起動がブロックされる(
gateway.mode=localがない):~/.openclaw/openclaw.jsonが存在し、gateway.mode="local"が設定されていることを確認してください。存在しない場合はscripts/podman/setup.shがこれを作成します。 - イメージ更新後にコンテナが再起動を繰り返す: イメージのアップグレードにある一回限りの
openclaw doctor --fixコマンドを実行し、Gateway を再度起動してください。 - コンテナの CLI コマンドが誤った対象に接続する:
openclaw --container <name> ...を明示的に使用するか、シェルでOPENCLAW_CONTAINER=<name>をエクスポートしてください。 openclaw updateが--containerで失敗する: 想定どおりです。イメージをリビルドまたはプルしてから、コンテナまたは Quadlet サービスを再起動してください。- Quadlet サービスが起動しない:
systemctl --user daemon-reloadを実行してから、systemctl --user start openclaw.serviceを実行してください。ヘッドレスシステムではsudo loginctl enable-linger "$(whoami)"も必要になる場合があります。 - SELinux がバインドマウントをブロックする: デフォルトのマウント動作を変更しないでください。Linux で SELinux が enforcing または permissive の場合、ランチャーは
:Zを自動的に追加します。