Web interfaces

Панель управления

Панель Gateway — это браузерный интерфейс управления, по умолчанию обслуживаемый по адресу / (переопределяется через gateway.controlUi.basePath).

Быстрое открытие (локальный Gateway):

Ключевые справочные материалы:

Аутентификация выполняется при WebSocket handshake через настроенный путь аутентификации Gateway:

  • connect.params.auth.token
  • connect.params.auth.password
  • заголовки идентификации Tailscale Serve, когда gateway.auth.allowTailscale: true
  • заголовки идентификации trusted-proxy, когда gateway.auth.mode: "trusted-proxy"

См. gateway.auth в конфигурации Gateway.

Примечание по безопасности: интерфейс управления — это административная поверхность (чат, конфигурация, подтверждения exec). Не открывайте его в публичный доступ. UI хранит токены URL панели в sessionStorage для текущей сессии вкладки браузера и выбранного URL Gateway, а после загрузки удаляет их из URL. Предпочитайте localhost, Tailscale Serve или SSH-туннель.

Быстрый путь (рекомендуется)

  • После онбординга CLI автоматически открывает панель и выводит чистую ссылку (без токена).
  • Повторно открыть в любое время: openclaw dashboard (копирует ссылку, по возможности открывает браузер, показывает подсказку SSH в headless-режиме).
  • Если доставка через буфер обмена и браузер не удалась, openclaw dashboard все равно выводит чистый URL и сообщает, что нужно использовать токен из OPENCLAW_GATEWAY_TOKEN или gateway.auth.token как ключ фрагмента URL token; значения токенов в логи не выводятся.
  • Если UI запрашивает аутентификацию по общему секрету, вставьте настроенный токен или пароль в настройки интерфейса управления.

Основы аутентификации (локально и удаленно)

  • Localhost: откройте http://127.0.0.1:18789/.
  • TLS Gateway: когда gateway.tls.enabled: true, ссылки панели/статуса используют https://, а ссылки WebSocket интерфейса управления используют wss://.
  • Источник токена общего секрета: gateway.auth.token (или OPENCLAW_GATEWAY_TOKEN); openclaw dashboard может передать его через фрагмент URL для одноразовой начальной настройки, а интерфейс управления хранит его в sessionStorage для текущей сессии вкладки браузера и выбранного URL Gateway вместо localStorage.
  • Если gateway.auth.token управляется через SecretRef, openclaw dashboard намеренно выводит/копирует/открывает URL без токена. Это предотвращает раскрытие внешне управляемых токенов в логах оболочки, истории буфера обмена или аргументах запуска браузера.
  • Если gateway.auth.token настроен как SecretRef и не разрешается в вашей текущей оболочке, openclaw dashboard все равно выводит URL без токена, а также практические инструкции по настройке аутентификации.
  • Пароль общего секрета: используйте настроенный gateway.auth.password (или OPENCLAW_GATEWAY_PASSWORD). Панель не сохраняет пароли между перезагрузками.
  • Режимы с идентификацией: Tailscale Serve может выполнять аутентификацию интерфейса управления/WebSocket через заголовки идентификации, когда gateway.auth.allowTailscale: true, а reverse proxy с учетом идентификации вне local loopback может выполнять gateway.auth.mode: "trusted-proxy". В этих режимах панели не требуется вставленный общий секрет для WebSocket.
  • Не localhost: используйте Tailscale Serve, привязку с общим секретом вне local loopback, reverse proxy с учетом идентификации вне local loopback с gateway.auth.mode: "trusted-proxy" или SSH-туннель. HTTP API по-прежнему используют аутентификацию по общему секрету, если вы намеренно не запускаете private-ingress gateway.auth.mode: "none" или HTTP-аутентификацию trusted-proxy. См. Веб-поверхности.

Если вы видите "unauthorized" / 1008

  • Убедитесь, что Gateway доступен (локально: openclaw status; удаленно: SSH-туннель ssh -N -L 18789:127.0.0.1:18789 user@host, затем откройте http://127.0.0.1:18789/).
  • Для AUTH_TOKEN_MISMATCH клиенты могут выполнить одну доверенную повторную попытку с кэшированным токеном устройства, когда Gateway возвращает подсказки для повтора. Такая повторная попытка с кэшированным токеном повторно использует кэшированные одобренные области действия токена; вызывающие стороны с явным deviceToken / явными scopes сохраняют запрошенный набор областей действия. Если после этой повторной попытки аутентификация все еще не проходит, устраните расхождение токенов вручную.
  • Для AUTH_SCOPE_MISMATCH токен устройства был распознан, но не содержит запрошенные панелью области действия; выполните повторное сопряжение или одобрите запрошенный контракт областей действия вместо ротации общего токена Gateway.
  • Вне этого пути повторной попытки приоритет аутентификации подключения таков: сначала явный общий токен/пароль, затем явный deviceToken, затем сохраненный токен устройства, затем bootstrap-токен.
  • На асинхронном пути Tailscale Serve для интерфейса управления неудачные попытки для одного и того же {scope, ip} сериализуются до того, как лимитер неудачной аутентификации их запишет, поэтому вторая параллельная неверная повторная попытка уже может показать retry later.
  • Для шагов восстановления при расхождении токенов следуйте контрольному списку восстановления при расхождении токенов.
  • Получите или передайте общий секрет с хоста Gateway:
    • Токен: openclaw config get gateway.auth.token
    • Пароль: разрешите настроенный gateway.auth.password или OPENCLAW_GATEWAY_PASSWORD
    • Токен, управляемый SecretRef: разрешите внешний поставщик секретов или экспортируйте OPENCLAW_GATEWAY_TOKEN в этой оболочке, затем повторно выполните openclaw dashboard
    • Общий секрет не настроен: openclaw doctor --generate-gateway-token
  • В настройках панели вставьте токен или пароль в поле аутентификации, затем подключитесь.
  • Переключатель языка UI находится в Overview -> Gateway Access -> Language. Он является частью карточки доступа, а не раздела Appearance.

См. также

Was this useful?
On this page

On this page