Le Gateway sert une petite interface de contrôle dans le navigateur (Vite + Lit) depuis le même port que le WebSocket du Gateway :Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
- par défaut :
http://<host>:18789/ - avec
gateway.tls.enabled: true:https://<host>:18789/ - préfixe facultatif : définissez
gateway.controlUi.basePath(p. ex./openclaw)
Webhooks
Lorsquehooks.enabled=true, le Gateway expose aussi un petit point de terminaison Webhook sur le même serveur HTTP.
Consultez Configuration du Gateway → hooks pour l’authentification et les charges utiles.
Configuration (activée par défaut)
L’interface de contrôle est activée par défaut lorsque les ressources sont présentes (dist/control-ui).
Vous pouvez la contrôler via la configuration :
Accès Tailscale
Serve intégré (recommandé)
Gardez le Gateway sur loopback et laissez Tailscale Serve le proxyfier :https://<magicdns>/(ou votregateway.controlUi.basePathconfiguré)
Liaison au tailnet + jeton
http://<tailscale-ip>:18789/(ou votregateway.controlUi.basePathconfiguré)
Internet public (Funnel)
Notes de sécurité
- L’authentification du Gateway est requise par défaut (jeton, mot de passe, trusted-proxy ou en-têtes d’identité Tailscale Serve lorsqu’ils sont activés).
- Les liaisons non-loopback requièrent toujours l’authentification du gateway. En pratique, cela signifie une authentification par jeton/mot de passe ou un proxy inverse sensible à l’identité avec
gateway.auth.mode: "trusted-proxy". - L’assistant crée une authentification par secret partagé par défaut et génère généralement un jeton de gateway (même sur loopback).
- En mode secret partagé, l’interface envoie
connect.params.auth.tokenouconnect.params.auth.password. - Lorsque
gateway.tls.enabled: true, les assistants locaux de tableau de bord et de statut affichent des URL de tableau de bord enhttps://et des URL WebSocket enwss://. - Dans les modes portant une identité, comme Tailscale Serve ou
trusted-proxy, la vérification d’authentification WebSocket est satisfaite à partir des en-têtes de requête à la place. - Pour les déploiements non-loopback de l’interface de contrôle, définissez
gateway.controlUi.allowedOriginsexplicitement (origines complètes). Sans cela, le démarrage du gateway est refusé par défaut. gateway.controlUi.dangerouslyAllowHostHeaderOriginFallback=trueactive le mode de repli de l’origine sur l’en-tête Host, mais constitue une dégradation de sécurité dangereuse.- Avec Serve, les en-têtes d’identité Tailscale peuvent satisfaire l’authentification de l’interface de contrôle/WebSocket
lorsque
gateway.auth.allowTailscalevauttrue(aucun jeton/mot de passe requis). Les points de terminaison de l’API HTTP n’utilisent pas ces en-têtes d’identité Tailscale ; ils suivent plutôt le mode d’authentification HTTP normal du gateway. Définissezgateway.auth.allowTailscale: falsepour exiger des identifiants explicites. Consultez Tailscale et Sécurité. Ce flux sans jeton suppose que l’hôte du gateway est fiable. gateway.tailscale.mode: "funnel"requiertgateway.auth.mode: "password"(mot de passe partagé).
Construire l’interface
Le Gateway sert les fichiers statiques depuisdist/control-ui. Construisez-les avec :