Веб (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.allowTailscale—true(токен/пароль не требуются). Установите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