Web interfaces
Веб
Gateway надає невеликий браузерний інтерфейс керування (Vite + Lit) з того самого порту, що й Gateway WebSocket:
- за замовчуванням:
http://<host>:18789/ - з
gateway.tls.enabled: true:https://<host>:18789/ - необов'язковий префікс: установіть
gateway.controlUi.basePath(наприклад,/openclaw)
Можливості описано в інтерфейсі керування. Решта цієї сторінки зосереджена на режимах прив'язування, безпеці та поверхнях, доступних через веб.
Webhook-и
Коли hooks.enabled=true, Gateway також відкриває невелику кінцеву точку webhook на тому самому HTTP-сервері.
Див. конфігурацію Gateway → hooks для автентифікації та корисних навантажень.
Адміністративний HTTP RPC
Адміністративний HTTP RPC відкриває вибрані методи площини керування Gateway на POST /api/v1/admin/rpc.
За замовчуванням він вимкнений і реєструється лише тоді, коли ввімкнено plugin admin-http-rpc.
Див. адміністративний HTTP RPC щодо моделі автентифікації, дозволених методів і порівняння з WebSocket.
Конфігурація (увімкнено за замовчуванням)
Інтерфейс керування увімкнено за замовчуванням, коли ресурси наявні (dist/control-ui).
Ви можете керувати ним через конфігурацію:
{ gateway: { controlUi: { enabled: true, basePath: "/openclaw" }, // basePath optional },}Доступ через 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" }, // or OPENCLAW_GATEWAY_PASSWORD },}Нотатки щодо безпеки
- Автентифікація Gateway потрібна за замовчуванням (токен, пароль, trusted-proxy або заголовки ідентичності Tailscale Serve, коли ввімкнено).
- Прив'язування не до loopback усе одно потребують автентифікації gateway. На практиці це означає автентифікацію токеном/паролем або reverse proxy з підтримкою ідентичності з
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вмикає режим fallback origin за заголовком Host, але це небезпечне зниження рівня безпеки.- Із Serve заголовки ідентичності Tailscale можуть задовольнити автентифікацію Control UI/WebSocket,
коли
gateway.auth.allowTailscaleмає значенняtrue(токен/пароль не потрібні). Кінцеві точки HTTP API не використовують ці заголовки ідентичності Tailscale; натомість вони дотримуються звичайного режиму HTTP-автентифікації gateway. Установітьgateway.auth.allowTailscale: false, щоб вимагати явні облікові дані. Див. Tailscale і Безпека. Цей потік без токена припускає, що хост gateway є довіреним. gateway.tailscale.mode: "funnel"потребуєgateway.auth.mode: "password"(спільний пароль).
Збирання UI
Gateway надає статичні файли з dist/control-ui. Зберіть їх за допомогою:
pnpm ui:build