Web interfaces
Tableau de bord
Le tableau de bord Gateway est l’interface de contrôle dans le navigateur servie sur / par défaut
(à remplacer avec gateway.controlUi.basePath).
Ouverture rapide (Gateway local) :
- http://127.0.0.1:18789/ (ou http://localhost:18789/)
- Avec
gateway.tls.enabled: true, utilisezhttps://127.0.0.1:18789/etwss://127.0.0.1:18789pour le point de terminaison WebSocket.
Références clés :
- Interface de contrôle pour l’utilisation et les capacités de l’interface.
- Tailscale pour l’automatisation Serve/Funnel.
- Surfaces Web pour les modes de liaison et les notes de sécurité.
L’authentification est appliquée lors de l’établissement de la connexion WebSocket via le chemin d’authentification gateway configuré :
connect.params.auth.tokenconnect.params.auth.password- En-têtes d’identité Tailscale Serve lorsque
gateway.auth.allowTailscale: true - en-têtes d’identité de proxy approuvé lorsque
gateway.auth.mode: "trusted-proxy"
Consultez gateway.auth dans Configuration de Gateway.
Note de sécurité : l’interface de contrôle est une surface d’administration (chat, configuration, approbations d’exécution). Ne l’exposez pas publiquement. L’interface conserve les jetons d’URL du tableau de bord dans sessionStorage pour la session de l’onglet de navigateur actuel et l’URL gateway sélectionnée, et les retire de l’URL après le chargement. Privilégiez localhost, Tailscale Serve ou un tunnel SSH.
Parcours rapide (recommandé)
- Après l’onboarding, la CLI ouvre automatiquement le tableau de bord et affiche un lien propre (sans jeton).
- Rouvrir à tout moment :
openclaw dashboard(copie le lien, ouvre le navigateur si possible, affiche une indication SSH si l’environnement est sans interface graphique). - Si la remise via le presse-papiers et le navigateur échoue,
openclaw dashboardaffiche quand même l’URL propre et vous indique d’utiliser le jeton provenant deOPENCLAW_GATEWAY_TOKENougateway.auth.tokencomme clé de fragment d’URLtoken; il n’affiche pas les valeurs de jeton dans les journaux. - Si l’interface demande une authentification par secret partagé, collez le jeton ou le mot de passe configuré dans les paramètres de l’interface de contrôle.
Bases de l’authentification (local vs distant)
- Localhost : ouvrez
http://127.0.0.1:18789/. - TLS Gateway : lorsque
gateway.tls.enabled: true, les liens du tableau de bord/statut utilisenthttps://et les liens WebSocket de l’interface de contrôle utilisentwss://. - Source du jeton de secret partagé :
gateway.auth.token(ouOPENCLAW_GATEWAY_TOKEN) ;openclaw dashboardpeut le transmettre via un fragment d’URL pour un amorçage ponctuel, et l’interface de contrôle le conserve dans sessionStorage pour la session de l’onglet de navigateur actuel et l’URL gateway sélectionnée au lieu de localStorage. - Si
gateway.auth.tokenest géré par SecretRef,openclaw dashboardaffiche/copie/ouvre volontairement une URL sans jeton. Cela évite d’exposer les jetons gérés en externe dans les journaux du shell, l’historique du presse-papiers ou les arguments de lancement du navigateur. - Si
gateway.auth.tokenest configuré comme SecretRef et n’est pas résolu dans votre shell actuel,openclaw dashboardaffiche quand même une URL sans jeton ainsi que des instructions exploitables de configuration de l’authentification. - Mot de passe de secret partagé : utilisez le
gateway.auth.passwordconfiguré (ouOPENCLAW_GATEWAY_PASSWORD). Le tableau de bord ne conserve pas les mots de passe entre les rechargements. - Modes porteurs d’identité : Tailscale Serve peut satisfaire l’authentification de l’interface de contrôle/WebSocket
via des en-têtes d’identité lorsque
gateway.auth.allowTailscale: true, et un proxy inverse non-loopback conscient de l’identité peut satisfairegateway.auth.mode: "trusted-proxy". Dans ces modes, le tableau de bord n’a pas besoin d’un secret partagé collé pour le WebSocket. - Pas localhost : utilisez Tailscale Serve, une liaison non-loopback avec secret partagé, un
proxy inverse non-loopback conscient de l’identité avec
gateway.auth.mode: "trusted-proxy", ou un tunnel SSH. Les API HTTP utilisent toujours l’authentification par secret partagé, sauf si vous exécutez intentionnellement une entrée privéegateway.auth.mode: "none"ou une authentification HTTP par proxy approuvé. Consultez Surfaces Web.
Si vous voyez "unauthorized" / 1008
- Assurez-vous que gateway est joignable (local :
openclaw status; distant : tunnel SSHssh -N -L 18789:127.0.0.1:18789 user@host, puis ouvrezhttp://127.0.0.1:18789/). - Pour
AUTH_TOKEN_MISMATCH, les clients peuvent effectuer une nouvelle tentative approuvée avec un jeton d’appareil mis en cache lorsque gateway renvoie des indications de nouvelle tentative. Cette nouvelle tentative avec jeton mis en cache réutilise les périmètres approuvés mis en cache du jeton ; les appelants avecdeviceTokenexplicite /scopesexplicites conservent l’ensemble de périmètres demandé. Si l’authentification échoue toujours après cette nouvelle tentative, résolvez manuellement la dérive du jeton. - En dehors de ce chemin de nouvelle tentative, l’ordre de priorité de l’authentification de connexion est d’abord le jeton/mot de passe partagé explicite, puis le
deviceTokenexplicite, puis le jeton d’appareil stocké, puis le jeton d’amorçage. - Sur le chemin asynchrone de l’interface de contrôle Tailscale Serve, les tentatives échouées pour le même
{scope, ip}sont sérialisées avant que le limiteur d’authentification échouée ne les enregistre, de sorte que la deuxième mauvaise nouvelle tentative concurrente peut déjà afficherretry later. - Pour les étapes de réparation de dérive du jeton, suivez la Liste de vérification de récupération en cas de dérive du jeton.
- Récupérez ou fournissez le secret partagé depuis l’hôte gateway :
- Jeton :
openclaw config get gateway.auth.token - Mot de passe : résolvez le
gateway.auth.passwordconfiguré ouOPENCLAW_GATEWAY_PASSWORD - Jeton géré par SecretRef : résolvez le fournisseur de secret externe ou exportez
OPENCLAW_GATEWAY_TOKENdans ce shell, puis réexécutezopenclaw dashboard - Aucun secret partagé configuré :
openclaw doctor --generate-gateway-token
- Jeton :
- Dans les paramètres du tableau de bord, collez le jeton ou le mot de passe dans le champ d’authentification, puis connectez-vous.
- Le sélecteur de langue de l’interface se trouve dans Vue d’ensemble -> Accès Gateway -> Langue. Il fait partie de la carte d’accès, pas de la section Apparence.