Перейти к основному содержанию

Веб (Gateway)

Gateway обслуживает небольшой браузерный UI управления (Vite + Lit) с того же порта, что и WebSocket Gateway:
  • по умолчанию: http://<host>:18789/
  • необязательный префикс: установите gateway.controlUi.basePath (например, /openclaw)
Возможности описаны в Control UI. На этой странице рассматриваются режимы привязки, безопасность и веб‑поверхности.

Вебхуки

Когда hooks.enabled=true, Gateway также публикует небольшой endpoint для вебхуков на том же HTTP‑сервере. См. См. [Конфигурация шлюза] (/gateway/configuration) → hooks для аутентификации + payloads.

Config (включено по умолчанию)

UI управления включён по умолчанию, когда ассеты присутствуют (dist/control-ui). Управлять им можно через конфиг:
{
  gateway: {
    controlUi: { enabled: true, basePath: "/openclaw" }, // basePath optional
  },
}

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

Integrated 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 по умолчанию обязательна (токен/пароль или заголовки идентификации Tailscale).
  • Привязки не к loopback по‑прежнему требуют общий токен/пароль (gateway.auth или через переменные окружения).
  • Мастер настройки по умолчанию генерирует токен Gateway (даже на loopback).
  • UI отправляет connect.params.auth.token или connect.params.auth.password.
  • UI управления отправляет заголовки защиты от clickjacking и принимает только same‑origin WebSocket‑подключения браузера, если не задано gateway.controlUi.allowedOrigins.
  • При использовании Serve заголовки идентификации Tailscale могут удовлетворять требованиям аутентификации, когда gateway.auth.allowTailscaletrue (токен/пароль не требуются). Установите gateway.auth.allowTailscale: false, чтобы требовать явные учётные данные. См. Tailscale и Безопасность.
  • gateway.tailscale.mode: "funnel" требует gateway.auth.mode: "password" (общий пароль).

Сборка UI

Gateway обслуживает статические файлы из dist/control-ui. Соберите их командой:
pnpm ui:build # auto-installs UI deps on first run