Web interfaces
Panel sterowania
Panel Gateway to interfejs Control UI w przeglądarce, domyślnie udostępniany pod adresem / (można go zmienić za pomocą gateway.controlUi.basePath).
Szybkie otwieranie (lokalny Gateway):
- http://127.0.0.1:18789/ (lub http://localhost:18789/)
- W przypadku
gateway.tls.enabled: truejako punktu końcowego WebSocket należy użyćhttps://127.0.0.1:18789/iwss://127.0.0.1:18789.
Najważniejsze materiały:
- Control UI — informacje o użytkowaniu i możliwościach interfejsu.
- Tailscale — automatyzacja Serve/Funnel.
- Interfejsy internetowe — tryby powiązania i uwagi dotyczące bezpieczeństwa.
Uwierzytelnianie jest wymuszane podczas uzgadniania połączenia WebSocket za pośrednictwem skonfigurowanej ścieżki uwierzytelniania Gateway:
connect.params.auth.tokenconnect.params.auth.password- nagłówki tożsamości Tailscale Serve, gdy
gateway.auth.allowTailscale: true - nagłówki tożsamości zaufanego serwera proxy, gdy
gateway.auth.mode: "trusted-proxy"
Zobacz gateway.auth w sekcji Konfiguracja Gateway.
Szybka ścieżka (zalecana)
- Po wdrożeniu początkowym CLI automatycznie otwiera panel i wyświetla czysty odnośnik (bez tokenu).
- Ponowne otwarcie w dowolnym momencie:
openclaw dashboard(kopiuje odnośnik, otwiera przeglądarkę, jeśli to możliwe, i wyświetla wskazówkę dotyczącą SSH w środowisku bez interfejsu graficznego). - Jeśli przekazanie odnośnika do schowka i przeglądarki nie powiedzie się,
openclaw dashboardnadal wyświetli czysty adres URL i poleci dołączyć token (zOPENCLAW_GATEWAY_TOKENlubgateway.auth.token) jako klucz fragmentu adresu URLtoken; wartość tokenu nigdy nie jest wyświetlana w dziennikach. - Jeśli interfejs poprosi o uwierzytelnienie za pomocą współdzielonego sekretu, należy wkleić skonfigurowany token lub hasło w ustawieniach Control UI.
Podstawy uwierzytelniania (lokalnie i zdalnie)
- Localhost: otwórz
http://127.0.0.1:18789/. - TLS Gateway: gdy
gateway.tls.enabled: true, odnośniki do panelu i stanu używająhttps://, a odnośniki WebSocket Control UI używająwss://. - Źródło tokenu współdzielonego sekretu:
gateway.auth.token(lubOPENCLAW_GATEWAY_TOKEN).openclaw dashboardmoże przekazać go we fragmencie adresu URL w celu jednorazowego uruchomienia początkowego; Control UI przechowuje go w sessionStorage dla bieżącej karty i wybranego adresu URL Gateway, a nie w localStorage. - Jeśli
gateway.auth.tokenjest zarządzany za pomocą SecretRef,openclaw dashboardcelowo wyświetla, kopiuje i otwiera adres URL bez tokenu, aby uniknąć ujawnienia tokenów zarządzanych zewnętrznie w dziennikach powłoki, historii schowka lub argumentach uruchamiania przeglądarki. Jeśli odwołania nie można rozpoznać w bieżącej powłoce, polecenie nadal wyświetla adres URL bez tokenu wraz z praktycznymi wskazówkami dotyczącymi konfiguracji uwierzytelniania. - Hasło współdzielonego sekretu: należy użyć skonfigurowanego
gateway.auth.password(lubOPENCLAW_GATEWAY_PASSWORD). Panel nie zachowuje haseł po ponownym załadowaniu. - Tryby przekazujące tożsamość: Tailscale Serve spełnia wymagania uwierzytelniania Control UI/WebSocket za pomocą nagłówków tożsamości, gdy
gateway.auth.allowTailscale: true; serwer reverse proxy obsługujący tożsamość i działający poza interfejsem loopback spełnia wymaganiagateway.auth.mode: "trusted-proxy". Żaden z tych trybów nie wymaga wklejenia współdzielonego sekretu dla połączenia WebSocket. - Poza localhost: należy użyć Tailscale Serve, powiązania poza interfejsem loopback ze współdzielonym sekretem, serwera reverse proxy obsługującego tożsamość i działającego poza interfejsem loopback z
gateway.auth.mode: "trusted-proxy"albo tunelu SSH. Interfejsy API HTTP nadal używają uwierzytelniania współdzielonym sekretem, chyba że celowo uruchomiono prywatny ruch przychodzącygateway.auth.mode: "none"lub uwierzytelnianie HTTP zaufanego serwera proxy. Zobacz Interfejsy internetowe.
Otwieranie w Telegram
Boty Telegram mogą otwierać panel jako Telegram Mini App za pomocą /dashboard.
Wymagania:
gateway.tailscale.mode: "serve"lub"funnel", aby Telegram otrzymał adres URL HTTPS aplikacji Mini App.- Nadawca w Telegram musi być właścicielem bota: numerycznym identyfikatorem użytkownika Telegram w
commands.ownerAllowFromlub efektywną wartościąchannels.telegram.allowFromwybranego konta. - Należy uruchomić
/dashboardw wiadomości prywatnej z botem. Wywołania w grupach jedynie informują o konieczności otwarcia polecenia w wiadomości prywatnej i nie zawierają przycisku. - Instalacje Docker: tryby Serve/Funnel wymagają powiązania Gateway z interfejsem loopback obok
tailscaled, czego nie można osiągnąć za pomocą sieci mostkowej z opublikowanymi portami. Kontener Gateway należy uruchomić znetwork_mode: hostoraz zamontować w nim gniazdo hostatailscaled(/var/run/tailscale) i CLItailscale.
Mini App wykonuje jednorazowe przekazanie właściciela i przekierowuje do Control UI z krótkotrwałym tokenem uruchomienia początkowego. Nie ujawnia współdzielonego tokenu Gateway w adresie URL.
Elementy poza zakresem wersji v1:
- Ramka iframe Telegram Web nie jest obsługiwana.
- Tailscale Serve/Funnel jest jedyną obsługiwaną ścieżką publikowanego adresu URL.
Jeśli pojawi się „unauthorized” / 1008
- Należy potwierdzić, że Gateway jest osiągalny: lokalnie
openclaw status; zdalnie należy utworzyć tunel SSHssh -N -L 18789:127.0.0.1:18789 user@gateway-host, a następnie otworzyćhttp://127.0.0.1:18789/. - W przypadku
AUTH_TOKEN_MISMATCHklienci mogą wykonać jedną zaufaną ponowną próbę z buforowanym tokenem urządzenia, gdy Gateway zwróci wskazówki dotyczące ponowienia; ta próba wykorzystuje buforowane zatwierdzone zakresy tokenu (wywołujący, którzy jawnie określajądeviceToken/scopes, zachowują żądany zestaw zakresów). Jeśli uwierzytelnianie nadal nie powiedzie się po tej próbie, należy ręcznie usunąć rozbieżność tokenów. - W przypadku
AUTH_SCOPE_MISMATCHtoken urządzenia został rozpoznany, ale nie obejmuje żądanych zakresów; zamiast zmieniać współdzielony token Gateway, należy ponownie sparować urządzenie lub zatwierdzić nowy zestaw zakresów. - Poza tą ścieżką ponawiania kolejność pierwszeństwa uwierzytelniania połączenia jest następująca: jawny współdzielony token lub hasło, następnie jawny
deviceToken, potem zapisany token urządzenia, a na końcu token uruchomienia początkowego. - W asynchronicznej ścieżce Tailscale Serve nieudane próby dla tego samego
{scope, ip}są serializowane, zanim ogranicznik nieudanych prób uwierzytelniania je zarejestruje, dlatego druga równoczesna błędna próba może już wyświetlićretry later. - Instrukcje naprawy rozbieżności tokenów zawiera Lista kontrolna odzyskiwania po rozbieżności tokenów.
- Należy pobrać lub podać współdzielony sekret z hosta Gateway:
- Token:
openclaw config get gateway.auth.token - Hasło: rozpoznaj skonfigurowany
gateway.auth.passwordlubOPENCLAW_GATEWAY_PASSWORD - Token zarządzany za pomocą SecretRef: rozpoznaj zewnętrznego dostawcę sekretu lub wyeksportuj
OPENCLAW_GATEWAY_TOKENw tej powłoce i ponownie uruchomopenclaw dashboard - Brak skonfigurowanego współdzielonego sekretu:
openclaw doctor --generate-gateway-token
- Token:
- W ustawieniach panelu należy wkleić token lub hasło w polu uwierzytelniania, a następnie nawiązać połączenie.
- Selektor języka interfejsu znajduje się w Settings -> General -> Language, a nie w sekcji Appearance.
Powiązane materiały
Was this useful?