- по умолчанию:
http://<host>:18789/ - с
gateway.tls.enabled: true:https://<host>:18789/ - необязательный префикс: задайте
gateway.controlUi.basePath(например,/openclaw)
Webhook
Когдаhooks.enabled=true, Gateway также предоставляет небольшой endpoint Webhook на том же HTTP-сервере.
См. конфигурацию Gateway → hooks для аутентификации и payload.
Административный HTTP RPC
Административный HTTP RPC предоставляет выбранные методы плоскости управления Gateway по адресуPOST /api/v1/admin/rpc.
По умолчанию он отключен и регистрируется только при включенном plugin admin-http-rpc.
См. Административный HTTP RPC для модели аутентификации, разрешенных методов и сравнения с WebSocket.
Конфигурация (включено по умолчанию)
Интерфейс управления включен по умолчанию, когда присутствуют ресурсы (dist/control-ui).
Им можно управлять через конфигурацию:
Доступ через Tailscale
Интегрированный Serve (рекомендуется)
Оставьте Gateway на loopback и позвольте Tailscale Serve проксировать его:https://<magicdns>/(или настроенный вамиgateway.controlUi.basePath)
Привязка к Tailnet + токен
http://<tailscale-ip>:18789/(или настроенный вамиgateway.controlUi.basePath)
Публичный интернет (Funnel)
Примечания по безопасности
- Аутентификация Gateway требуется по умолчанию (токен, пароль, доверенный прокси или заголовки идентификации Tailscale Serve, если включены).
- Привязки не к loopback все равно требуют аутентификацию gateway. На практике это означает аутентификацию по токену/паролю или обратный прокси с учетом идентификации и
gateway.auth.mode: "trusted-proxy". - Мастер по умолчанию создает аутентификацию с общим секретом и обычно генерирует токен gateway (даже на loopback).
- В режиме общего секрета UI отправляет
connect.params.auth.tokenилиconnect.params.auth.password. - Когда
gateway.tls.enabled: true, локальная панель управления и вспомогательные средства статуса отображают URL панели управления сhttps://и URL WebSocket сwss://. - В режимах с идентификацией, таких как Tailscale Serve или
trusted-proxy, проверка аутентификации WebSocket вместо этого удовлетворяется заголовками запроса. - Для публичных развертываний интерфейса управления не на loopback явно задайте
gateway.controlUi.allowedOrigins(полные origins). Приватные загрузки из LAN/Tailnet с тем же origin принимаются для loopback, RFC1918/link-local,.local,.ts.netи хостов Tailscale CGNAT. gateway.controlUi.dangerouslyAllowHostHeaderOriginFallback=trueвключает резервный режим origin по заголовку Host, но это опасное снижение безопасности.- При Serve заголовки идентификации Tailscale могут удовлетворять аутентификацию Control UI/WebSocket,
когда
gateway.auth.allowTailscaleравноtrue(токен/пароль не требуется). Endpoint HTTP API не используют эти заголовки идентификации Tailscale; вместо этого они следуют обычному режиму HTTP-аутентификации gateway. Задайтеgateway.auth.allowTailscale: false, чтобы требовать явные учетные данные. См. Tailscale и Безопасность. Этот поток без токена предполагает, что хост gateway является доверенным. gateway.tailscale.mode: "funnel"требуетgateway.auth.mode: "password"(общий пароль).
Сборка UI
Gateway обслуживает статические файлы изdist/control-ui. Соберите их с помощью: