Веб (Gateway)
Gateway обслуживает небольшой браузерный UI управления (Vite + Lit) с того же порта, что и WebSocket Gateway:- по умолчанию:
http://<host>:18789/ - необязательный префикс: установите
gateway.controlUi.basePath(например,/openclaw)
Вебхуки
Когдаhooks.enabled=true, Gateway также публикует небольшой endpoint для вебхуков на том же HTTP‑сервере. См.
См. [Конфигурация шлюза] (/gateway/configuration) → hooks для аутентификации + payloads.
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или через переменные окружения). - Мастер настройки по умолчанию генерирует токен 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. Соберите их командой: