Web interfaces
Веб
Gateway предоставляет небольшой браузерный интерфейс управления (Vite + Lit) на том же порту, что и WebSocket Gateway:
- по умолчанию:
http://<host>:18789/ - с
gateway.tls.enabled: true:https://<host>:18789/ - необязательный префикс: задайте
gateway.controlUi.basePath(например,/openclaw)
Возможности описаны в разделе Интерфейс управления. На этой странице рассматриваются режимы привязки, безопасность и другие веб-интерфейсы.
Конфигурация (включено по умолчанию)
Интерфейс управления включён по умолчанию, когда ресурсы доступны (dist/control-ui):
{ gateway: { controlUi: { enabled: true, basePath: "/openclaw" }, // basePath необязателен },}Webhook
Если hooks.enabled=true, Gateway также предоставляет конечную точку Webhook на том же HTTP-сервере. Сведения об аутентификации и полезной нагрузке см. в разделе hooks справочника по конфигурации Gateway.
Административный HTTP RPC
POST /api/v1/admin/rpc предоставляет выбранные методы плоскости управления Gateway через HTTP. По умолчанию отключён; регистрируется только при включённом плагине admin-http-rpc. Модель аутентификации, разрешённые методы и сравнение с API WebSocket см. в разделе Административный HTTP RPC.
Доступ через 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" }, // или OPENCLAW_GATEWAY_PASSWORD },}Для tailscale.mode: "funnel" требуется gateway.auth.mode: "password"; для Serve и Funnel требуется gateway.bind: "loopback".
Примечания по безопасности
- По умолчанию требуется аутентификация Gateway: токен, пароль, доверенный прокси-сервер или, если они включены, заголовки идентификации Tailscale Serve.
- При привязке не к loopback-интерфейсу аутентификация Gateway также обязательна: аутентификация по токену/паролю или обратный прокси-сервер с проверкой идентификации и
gateway.auth.mode: "trusted-proxy". - Мастер первоначальной настройки по умолчанию создаёт аутентификацию с общим секретом и обычно генерирует токен Gateway даже при привязке к loopback-интерфейсу.
- В режиме общего секрета интерфейс отправляет
connect.params.auth.tokenилиconnect.params.auth.passwordво время установления соединения WebSocket. - При использовании
gateway.tls.enabled: trueлокальные вспомогательные средства панели управления и состояния формируют URL-адресаhttps://и URL-адреса WebSocketwss://. - В режимах с передачей идентификационных данных (Tailscale Serve,
trusted-proxy) проверка аутентификации WebSocket выполняется на основе заголовков запроса, а не общего секрета. - При публичном развёртывании интерфейса управления с привязкой не к loopback-интерфейсу явно задайте
gateway.controlUi.allowedOrigins(полные источники). Для loopback, RFC1918/link-local,.local,.ts.netи узлов Tailscale CGNAT частные загрузки из того же источника принимаются без этого параметра. gateway.controlUi.dangerouslyAllowHostHeaderOriginFallback: trueвключает резервное определение источника по заголовку Host; это опасное ослабление безопасности.- При использовании Serve заголовки идентификации Tailscale обеспечивают аутентификацию интерфейса управления/WebSocket, если
gateway.auth.allowTailscale: true(токен или пароль не требуется). Конечные точки HTTP API не используют заголовки идентификации Tailscale; они всегда следуют обычному режиму HTTP-аутентификации Gateway. Задайтеgateway.auth.allowTailscale: false, чтобы требовать явные учётные данные даже при использовании Serve. Этот режим без токена предполагает, что сам узел Gateway является доверенным. См. разделы Tailscale и Безопасность.
Сборка интерфейса
Gateway предоставляет статические файлы из dist/control-ui:
pnpm ui:build