Gateway dashboard — це браузерний інтерфейс керування, який за замовчуванням надається за адресою / (перевизначається за допомогою gateway.controlUi.basePath).
Швидке відкриття (локальний Gateway):
Основні довідкові матеріали:
Автентифікація виконується під час установлення з’єднання WebSocket через налаштований шлях автентифікації Gateway:
connect.params.auth.token
connect.params.auth.password
- заголовки ідентифікації Tailscale Serve, коли
gateway.auth.allowTailscale: true
- заголовки ідентифікації довіреного проксі, коли
gateway.auth.mode: "trusted-proxy"
Див. gateway.auth у розділі Налаштування Gateway.
Інтерфейс керування — це адміністративна поверхня (чат, конфігурація, схвалення виконання команд). Не надавайте до нього публічний доступ. Інтерфейс зберігає токени URL панелі керування в sessionStorage для поточної вкладки браузера й вибраної URL-адреси Gateway та видаляє їх з URL після завантаження. Віддавайте перевагу localhost, Tailscale Serve або тунелю SSH.
Швидкий спосіб (рекомендовано)
- Після початкового налаштування CLI автоматично відкриває панель керування та виводить чисте посилання (без токена).
- Повторне відкриття будь-коли:
openclaw dashboard (копіює посилання, за можливості відкриває браузер і виводить підказку щодо SSH у безголовому середовищі).
- Якщо не вдається ні скопіювати посилання до буфера обміну, ні відкрити його в браузері,
openclaw dashboard усе одно виводить чисту URL-адресу та вказує додати токен (з OPENCLAW_GATEWAY_TOKEN або gateway.auth.token) як ключ фрагмента URL token; значення токена ніколи не виводиться в журнали.
- Якщо інтерфейс запитує автентифікацію за допомогою спільного секрету, вставте налаштований токен або пароль у налаштуваннях інтерфейсу керування.
Основи автентифікації (локально й віддалено)
- Локальний хост: відкрийте
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-адресу без токена, щоб не розкривати токени, керовані зовнішньою системою, у журналах оболонки, історії буфера обміну або аргументах запуску браузера. Якщо посилання не вдається розв’язати в поточній оболонці, команда все одно виводить URL-адресу без токена та практичні вказівки з налаштування автентифікації.
- Пароль спільного секрету: використовуйте налаштований
gateway.auth.password (або OPENCLAW_GATEWAY_PASSWORD). Панель керування не зберігає паролі після перезавантаження.
- Режими з ідентифікаційними даними: Tailscale Serve забезпечує автентифікацію інтерфейсу керування/WebSocket через заголовки ідентифікації, коли
gateway.auth.allowTailscale: true; зворотний проксі з підтримкою ідентифікації, що не використовує loopback, забезпечує gateway.auth.mode: "trusted-proxy". Жоден із цих режимів не потребує вставлення спільного секрету для WebSocket.
- Не localhost: використовуйте Tailscale Serve, прив’язування зі спільним секретом не до loopback, зворотний проксі з підтримкою ідентифікації не на loopback із
gateway.auth.mode: "trusted-proxy" або тунель SSH. API HTTP і надалі використовують автентифікацію за допомогою спільного секрету, якщо ви навмисно не використовуєте приватний вхідний трафік gateway.auth.mode: "none" або HTTP-автентифікацію через довірений проксі. Див. Вебповерхні.
Відкриття в Telegram
Боти Telegram можуть відкривати панель керування як мініпрограму Telegram за допомогою /dashboard.
Вимоги:
gateway.tailscale.mode: "serve" або "funnel", щоб Telegram отримав HTTPS-адресу мініпрограми.
- Відправник у Telegram має бути власником бота: числовий ідентифікатор користувача Telegram у
commands.ownerAllowFrom або чинний channels.telegram.allowFrom вибраного облікового запису.
- Запустіть
/dashboard в особистому листуванні з ботом. Виклики в групах лише пропонують відкрити команду в особистому листуванні й не містять кнопки.
- Установлення Docker: режими Serve/Funnel вимагають, щоб Gateway був прив’язаний до loopback поряд із
tailscaled, чого неможливо забезпечити мостовою мережею з опублікованими портами. Запустіть контейнер Gateway з network_mode: host і підключіть до контейнера сокет хоста tailscaled (/var/run/tailscale) та CLI tailscale.
Мініпрограма виконує одноразову передачу власника та переспрямовує до інтерфейсу керування з короткочасним токеном ініціалізації. Вона не розкриває спільний токен Gateway в URL-адресі.
Що не входить до цілей v1:
- Вебфрейм iframe Telegram не підтримується.
- Tailscale Serve/Funnel — єдиний підтримуваний спосіб публікації URL-адреси.
Якщо відображається “unauthorized” / 1008
- Переконайтеся, що Gateway доступний: локально —
openclaw status; віддалено — створіть тунель SSH ssh -N -L 18789:127.0.0.1:18789 user@gateway-host, а потім відкрийте http://127.0.0.1:18789/.
- Для
AUTH_TOKEN_MISMATCH клієнти можуть виконати одну довірену повторну спробу з кешованим токеном пристрою, коли Gateway повертає підказки щодо повторної спроби; під час цієї спроби повторно використовуються кешовані схвалені області доступу токена (явні виклики deviceToken/scopes зберігають запитаний набір областей доступу). Якщо після цієї повторної спроби автентифікація все одно не вдається, усуньте розбіжність токенів вручну.
- Для
AUTH_SCOPE_MISMATCH токен пристрою розпізнано, але він не містить запитаних областей доступу; повторно сполучіть пристрій або схваліть новий набір областей доступу замість ротації спільного токена Gateway.
- Поза цим шляхом повторної спроби пріоритет автентифікації під час підключення такий: явно вказаний спільний токен/пароль, потім явний
deviceToken, потім збережений токен пристрою, а потім токен ініціалізації.
- На асинхронному шляху 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
- У налаштуваннях панелі керування вставте токен або пароль у поле автентифікації, а потім підключіться.
- Перемикач мови інтерфейсу розташований у Settings -> General -> Language, а не в розділі Appearance.
Пов’язані матеріали