- デフォルト:
http://<host>:18789/ - オプションのプレフィックス:
gateway.controlUi.basePathを設定(例:/openclaw)
Webhooks
hooks.enabled=trueの場合、Gatewayは同じHTTPサーバー上に小さなウェブフックエンドポイントも公開します。
認証とペイロードについてはGateway設定 → hooksを参照してください。
設定(デフォルトで有効)
Control UIはアセットが存在する場合(dist/control-ui)、デフォルトで有効です。
設定で制御できます:
Tailscaleアクセス
統合Serve(推奨)
Gatewayをloopback上に保持し、Tailscale Serveにプロキシさせます:https://<magicdns>/(または設定したgateway.controlUi.basePath)
Tailnetバインド + トークン
http://<tailscale-ip>:18789/(または設定したgateway.controlUi.basePath)
パブリックインターネット(Funnel)
セキュリティ注意事項
- Gateway認証はデフォルトで必要(トークン/パスワードまたはTailscale IDヘッダー)
- 非loopbackバインドでも共有トークン/パスワード(
gateway.authまたは環境変数)が必要 - ウィザードはデフォルトでgatewayトークンを生成(loopback上でも)
- UIは
connect.params.auth.tokenまたはconnect.params.auth.passwordを送信 - 非loopback Control UIデプロイメントの場合、
gateway.controlUi.allowedOriginsを明示的に設定(完全なオリジン)。これがないと、gatewayの起動はデフォルトで拒否されます gateway.controlUi.dangerouslyAllowHostHeaderOriginFallback=trueはHostヘッダーオリジンフォールバックモードを有効にしますが、危険なセキュリティダウングレードです- Serveの場合、
gateway.auth.allowTailscaleがtrueの場合、Tailscale IDヘッダーがControl UI/WebSocket認証を満たすことができます(トークン/パスワード不要)。HTTP APIエンドポイントは依然としてトークン/パスワードが必要です。明示的な認証情報を要求するにはgateway.auth.allowTailscale: falseを設定してください。Tailscaleとセキュリティを参照してください。このトークンレスフローは、gatewayホストが信頼されていることを前提としています gateway.tailscale.mode: "funnel"にはgateway.auth.mode: "password"(共有パスワード)が必要
UIのビルド
Gatewayはdist/control-uiから静的ファイルを提供します。以下でビルド: