Web(Gateway)
Gateway は、Gateway WebSocket と同じポートから小規模な ブラウザー コントロール UI(Vite + Lit)を提供します。- デフォルト:
http://<host>:18789/ - オプションのプレフィックス:
gateway.controlUi.basePathを設定(例:/openclaw)
- 機能は Control UI にあります。 このページでは、バインドモード、セキュリティ、ウェブ面に焦点を当てています。
Webhooks
hooks.enabled=true の場合、Gateway は同じ HTTP サーバー上で小規模な Webhook エンドポイントも公開します。
認証およびペイロードについては、Gateway configuration → hooks を参照してください。
認証+ペイロードについては、ゲートウェイ設定 → フック を参照してください。
認証+ペイロードについては、ゲートウェイ設定 → フック を参照してください。
Config(デフォルト有効)
アセットが存在する場合、コントロール UI は デフォルトで有効 です(dist/control-ui)。
設定で制御できます。
以下の設定で制御できます。
以下の設定で制御できます。
Tailscale アクセス
Integrated Serve(推奨)
Gateway を loopback に維持し、Tailscale Serve にプロキシさせます。https://<magicdns>/(または設定したgateway.controlUi.basePath)
Tailnet バインド + トークン
http://<tailscale-ip>:18789/(または設定したgateway.controlUi.basePath)
公開インターネット(Funnel)
セキュリティ注記
- Gateway の認証はデフォルトで必須です(トークン/パスワード、または Tailscale のアイデンティティヘッダー)。
- loopback 以外のバインドでは、共有トークン/パスワードが 必須 です(
gateway.authまたは env)。 - ウィザードは、デフォルトで Gateway トークンを生成します(loopback の場合でも)。
- UI は
connect.params.auth.tokenまたはconnect.params.auth.passwordを送信します。 - コントロール UI はアンチクリックジャッキングのヘッダーを送信し、
gateway.controlUi.allowedOriginsが設定されていない限り、同一オリジンのブラウザー WebSocket 接続のみを受け付けます。 - Serve を使用する場合、
gateway.auth.allowTailscaleがtrueのとき、Tailscale のアイデンティティヘッダーで認証を満たせます(トークン/パスワード不要)。明示的な資格情報を必須にするにはgateway.auth.allowTailscale: falseを設定してください。詳細は Tailscale および Security を参照してください。 明示的な資格情報を必要とするには、gateway.auth.allowTailscale: falseを設定してください。 Tailscale と Security を参照してください。 明示的な資格情報を必要とするには、gateway.auth.allowTailscale: falseを設定してください。 Tailscale と Security を参照してください。 gateway.tailscale.mode: "funnel"にはgateway.auth.mode: "password"(共有パスワード)が必要です。
UI のビルド
Gateway はdist/control-ui から静的ファイルを提供します。次のコマンドでビルドしてください。 以下でビルドします。 以下でビルドします。