Web
Web (Gateway)
Section intitulée « Web (Gateway) »Le Gateway sert une petite interface de contrôle navigateur (Vite + Lit) sur le même port que le WebSocket du Gateway :
- par défaut :
http://<host>:18789/ - préfixe optionnel : définir
gateway.controlUi.basePath(par ex./openclaw)
Les capacités se trouvent dans Control UI. Cette page se concentre sur les modes de liaison, la sécurité et les surfaces web.
Webhooks
Section intitulée « Webhooks »Lorsque hooks.enabled=true, le Gateway expose également un petit point de terminaison webhook sur le même serveur HTTP.
Voir configuration du Gateway → hooks pour l’authentification et les payloads.
Config (activé par défaut)
Section intitulée « Config (activé 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 :
{ gateway: { controlUi: { enabled: true, basePath: "/openclaw" }, // basePath optional },}Accès Tailscale
Section intitulée « Accès Tailscale »Serve intégré (recommandé)
Section intitulée « Serve intégré (recommandé) »Gardez le Gateway en boucle locale (loopback) et laissez Tailscale Serve le proxy :
{ gateway: { bind: "loopback", tailscale: { mode: "serve" }, },}Puis démarrez la passerelle :
openclaw gatewayOuvrez :
https://<magicdns>/(ou votregateway.controlUi.basePathconfiguré)
Liaison Tailnet + jeton
Section intitulée « Liaison Tailnet + jeton »{ gateway: { bind: "tailnet", controlUi: { enabled: true }, auth: { mode: "token", token: "your-token" }, },}Puis démarrez la passerelle (le jeton est requis pour les liaisons non-loopback) :
openclaw gatewayOuvrez :
http://<tailscale-ip>:18789/(ou votregateway.controlUi.basePathconfiguré)
Internet public (Funnel)
Section intitulée « Internet public (Funnel) »{ gateway: { bind: "loopback", tailscale: { mode: "funnel" }, auth: { mode: "password" }, // or OPENCLAW_GATEWAY_PASSWORD },}Notes de sécurité
Section intitulée « Notes de sécurité »- L’authentification du Gateway est requise par défaut (jeton/mot de passe ou en-têtes d’identité Tailscale).
- Les liaisons non-loopback exigent toujours un jeton/mot de passe partagé (require) (
gateway.authou env). - L’assistant génère un jeton de passerelle par défaut (même en boucle locale).
- L’interface utilisateur envoie
connect.params.auth.tokenouconnect.params.auth.password. - Pour les déploiements de l’interface de contrôle non-loopback, définissez
gateway.controlUi.allowedOriginsexplicitement (origines complètes). Sans cela, le démarrage de la passerelle est refusé par défaut. gateway.controlUi.dangerouslyAllowHostHeaderOriginFallback=trueactive le mode de repli d’origine basé sur l’en-tête Host, mais constitue une rétrogradation 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.allowTailscaleesttrue(aucun jeton/mot de passe requis). Les points de terminaison de l’API API HTTP nécessitent toujours un jeton/mot de passe. Définissezgateway.auth.allowTailscale: falsepour exiger des identifiants explicites. Voir Tailscale et Sécurité. Ce flux sans jeton suppose que l’hôte de la passerelle est de confiance. gateway.tailscale.mode: "funnel"nécessitegateway.auth.mode: "password"(mot de passe partagé).
Construction de l’interface utilisateur
Section intitulée « Construction de l’interface utilisateur »Le Gateway sert des fichiers statiques depuis dist/control-ui. Construisez-les avec :
pnpm ui:build # auto-installs UI deps on first run