Веб
Шлюз обслуживает небольшую браузерную Панель управления (Vite + Lit) на том же порту, что и WebSocket шлюза:
- по умолчанию:
http://<host>:18789/ - опциональный префикс: установите
gateway.controlUi.basePath(например,/openclaw)
Возможности описаны в разделе Панель управления. На этой странице рассматриваются режимы привязки, безопасность и веб-интерфейсы.
Вебхуки
Когда hooks.enabled=true, Шлюз также предоставляет небольшую конечную точку для вебхуков на том же HTTP-сервере. См. Конфигурация шлюза → hooks для информации об аутентификации и форматах данных.
Конфигурация (включено по умолчанию)
Панель управления включена по умолчанию, если присутствуют её файлы (dist/control-ui). Вы можете управлять ею через конфигурацию:
{
gateway: {
controlUi: { enabled: true, basePath: "/openclaw" }, // basePath опционально
},
}
Доступ через Tailscale
Встроенный Serve (рекомендуется)
Оставьте шлюз на loopback-адресе и позвольте Tailscale Serve выступать в роли прокси:
{
gateway: {
bind: "loopback",
tailscale: { mode: "serve" },
},
}
Затем запустите шлюз:
openclaw gateway
Откройте:
https://<magicdns>/(или ваш настроенныйgateway.controlUi.basePath)
Привязка к Tailnet + токен
{
gateway: {
bind: "tailnet",
controlUi: { enabled: true },
auth: { mode: "token", token: "your-token" },
},
}
Затем запустите шлюз (токен требуется для привязки не к loopback-адресу):
openclaw gateway
Откройте:
http://<tailscale-ip>:18789/(или ваш настроенныйgateway.controlUi.basePath)
Публичный интернет (Funnel)
{
gateway: {
bind: "loopback",
tailscale: { mode: "funnel" },
auth: { mode: "password" }, // или OPENCLAW_GATEWAY_PASSWORD
},
}
Примечания по безопасности
- Аутентификация шлюза требуется по умолчанию (токен/пароль или заголовки идентификации Tailscale).
- Привязка не к loopback-адресу по-прежнему требует общего токена/пароля (
gateway.authили переменная окружения). - Мастер настройки по умолчанию генерирует токен шлюза (даже для loopback).
- Панель управления отправляет
connect.params.auth.tokenилиconnect.params.auth.password. - Для развертывания Панели управления не на loopback-адресе явно задайте
gateway.controlUi.allowedOrigins(полные origin-адреса). Без этого запуск шлюза по умолчанию будет отклонен. gateway.controlUi.dangerouslyAllowHostHeaderOriginFallback=trueвключает режим отката на заголовок Host для определения origin, но это опасное снижение уровня безопасности.- При использовании Serve заголовки идентификации Tailscale могут удовлетворить требованиям аутентификации Панели управления/WebSocket, когда
gateway.auth.allowTailscaleимеет значениеtrue(токен/пароль не требуются). Конечные точки HTTP API по-прежнему требуют токен/пароль. Установитеgateway.auth.allowTailscale: false, чтобы требовать явные учетные данные. См. Tailscale и Безопасность. Этот поток без токена предполагает, что хост шлюза является доверенным. gateway.tailscale.mode: "funnel"требуетgateway.auth.mode: "password"(общий пароль).
Сборка Панели управления
Шлюз обслуживает статические файлы из dist/control-ui. Соберите их с помощью:
pnpm ui:build # автоматически устанавливает зависимости UI при первом запуске