Перейти до основного вмісту
Gateway надає невеликий браузерний інтерфейс керування (Vite + Lit) з того самого порту, що й Gateway WebSocket:
  • за замовчуванням: http://<host>:18789/
  • з gateway.tls.enabled: true: https://<host>:18789/
  • необов’язковий префікс: установіть gateway.controlUi.basePath (наприклад, /openclaw)
Можливості описано в інтерфейсі керування. Решта цієї сторінки зосереджена на режимах прив’язування, безпеці та поверхнях, доступних через веб.

Webhook-и

Коли hooks.enabled=true, Gateway також відкриває невелику кінцеву точку webhook на тому самому HTTP-сервері. Див. конфігурацію Gatewayhooks для автентифікації та корисних навантажень.

Адміністративний HTTP RPC

Адміністративний HTTP RPC відкриває вибрані методи площини керування Gateway на POST /api/v1/admin/rpc. За замовчуванням він вимкнений і реєструється лише тоді, коли ввімкнено plugin admin-http-rpc. Див. адміністративний HTTP RPC щодо моделі автентифікації, дозволених методів і порівняння з WebSocket.

Конфігурація (увімкнено за замовчуванням)

Інтерфейс керування увімкнено за замовчуванням, коли ресурси наявні (dist/control-ui). Ви можете керувати ним через конфігурацію:
{
  gateway: {
    controlUi: { enabled: true, basePath: "/openclaw" }, // basePath optional
  },
}

Доступ через Tailscale

Інтегрований Serve (рекомендовано)

Тримайте Gateway на loopback і дозвольте Tailscale Serve проксувати його:
{
  gateway: {
    bind: "loopback",
    tailscale: { mode: "serve" },
  },
}
Потім запустіть gateway:
openclaw gateway
Відкрийте:
  • https://<magicdns>/ (або налаштований вами gateway.controlUi.basePath)

Прив’язування до Tailnet + токен

{
  gateway: {
    bind: "tailnet",
    controlUi: { enabled: true },
    auth: { mode: "token", token: "your-token" },
  },
}
Потім запустіть gateway (цей приклад не для loopback використовує автентифікацію токеном зі спільним секретом):
openclaw gateway
Відкрийте:
  • http://<tailscale-ip>:18789/ (або налаштований вами gateway.controlUi.basePath)

Публічний інтернет (Funnel)

{
  gateway: {
    bind: "loopback",
    tailscale: { mode: "funnel" },
    auth: { mode: "password" }, // or OPENCLAW_GATEWAY_PASSWORD
  },
}

Нотатки щодо безпеки

  • Автентифікація Gateway потрібна за замовчуванням (токен, пароль, trusted-proxy або заголовки ідентичності Tailscale Serve, коли ввімкнено).
  • Прив’язування не до loopback усе одно потребують автентифікації gateway. На практиці це означає автентифікацію токеном/паролем або reverse proxy з підтримкою ідентичності з gateway.auth.mode: "trusted-proxy".
  • Майстер за замовчуванням створює автентифікацію зі спільним секретом і зазвичай генерує токен gateway (навіть на loopback).
  • У режимі спільного секрету UI надсилає connect.params.auth.token або connect.params.auth.password.
  • Коли gateway.tls.enabled: true, локальна панель і допоміжні засоби стану відображають URL-адреси панелі з https:// та URL-адреси WebSocket з wss://.
  • У режимах із передаванням ідентичності, як-от Tailscale Serve або trusted-proxy, перевірка автентифікації WebSocket натомість задовольняється заголовками запиту.
  • Для публічних розгортань інтерфейсу керування не на loopback явно задайте gateway.controlUi.allowedOrigins (повні origins). Приватні завантаження LAN/Tailnet із тим самим origin приймаються для loopback, RFC1918/link-local, .local, .ts.net і хостів Tailscale CGNAT.
  • gateway.controlUi.dangerouslyAllowHostHeaderOriginFallback=true вмикає режим fallback origin за заголовком Host, але це небезпечне зниження рівня безпеки.
  • Із Serve заголовки ідентичності Tailscale можуть задовольнити автентифікацію Control UI/WebSocket, коли gateway.auth.allowTailscale має значення true (токен/пароль не потрібні). Кінцеві точки HTTP API не використовують ці заголовки ідентичності Tailscale; натомість вони дотримуються звичайного режиму HTTP-автентифікації gateway. Установіть gateway.auth.allowTailscale: false, щоб вимагати явні облікові дані. Див. Tailscale і Безпека. Цей потік без токена припускає, що хост gateway є довіреним.
  • gateway.tailscale.mode: "funnel" потребує gateway.auth.mode: "password" (спільний пароль).

Збирання UI

Gateway надає статичні файли з dist/control-ui. Зберіть їх за допомогою:
pnpm ui:build