Hosting
exe.dev
Objectif : faire fonctionner le Gateway OpenClaw sur une VM exe.dev, accessible à l’adresse https://<vm-name>.exe.xyz.
Ce guide suppose l’utilisation de l’image exeuntu par défaut d’exe.dev. Adaptez les paquets en conséquence sur les autres distributions.
Prérequis
- Un compte exe.dev
- Un accès
ssh exe.devaux VM exe.dev (facultatif, pour une configuration manuelle)
Parcours rapide pour débutants
- Ouvrez https://exe.new/openclaw
- Renseignez votre clé ou jeton d’authentification selon les besoins
- Cliquez sur "Agent" à côté de votre VM et attendez que Shelley termine le provisionnement
- Ouvrez
https://<vm-name>.exe.xyz/et authentifiez-vous avec le secret partagé configuré (authentification par jeton par défaut ; l’authentification par mot de passe fonctionne également si vous modifiezgateway.auth.mode) - Approuvez les demandes d’association d’appareils en attente avec
openclaw devices approve <requestId>
Installation automatisée avec Shelley
Shelley, l’agent d’exe.dev, peut installer OpenClaw à partir d’une invite :
Set up OpenClaw (https://docs.openclaw.ai/install) on this VM. Use the non-interactive and accept-risk flags for openclaw onboarding. Add the supplied auth or token as needed. Configure nginx to forward from the default port 18789 to the root location on the default enabled site config, making sure to enable Websocket support. Pairing is done by "openclaw devices list" and "openclaw devices approve <request id>". Make sure the dashboard shows that OpenClaw's health is OK. exe.dev handles forwarding from port 8000 to port 80/443 and HTTPS for us, so the final "reachable" should be <vm-name>.exe.xyz, without port specification.Installation manuelle
Create the VM
Depuis votre appareil :
ssh exe.dev newConnectez-vous ensuite :
ssh <vm-name>.exe.xyzInstall prerequisites (on the VM)
sudo apt-get updatesudo apt-get install -y git curl jq ca-certificates opensslInstall OpenClaw
curl -fsSL https://openclaw.ai/install.sh | bashConfigure nginx to proxy to port 8000
Modifiez /etc/nginx/sites-enabled/default :
server { listen 80 default_server; listen [::]:80 default_server; listen 8000; listen [::]:8000; server_name _; location / { proxy_pass http://127.0.0.1:18789; proxy_http_version 1.1; # WebSocket support proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; # Standard proxy headers proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-Forwarded-Proto $scheme; # Timeout settings for long-lived connections proxy_read_timeout 86400s; proxy_send_timeout 86400s; }}Remplacez les en-têtes de transfert au lieu de conserver les chaînes fournies par le client. OpenClaw n’accorde sa confiance aux métadonnées d’adresse IP transférées que lorsqu’elles proviennent de proxys explicitement configurés, et les chaînes X-Forwarded-For construites par ajout successif sont considérées comme un risque pour le durcissement de la sécurité.
Access OpenClaw and approve devices
Ouvrez https://<vm-name>.exe.xyz/ (consultez la sortie de l’interface de contrôle lors de la configuration initiale). Si une authentification est demandée, collez le secret partagé configuré sur la VM.
Ce guide utilise l’authentification par jeton par défaut. Récupérez donc gateway.auth.token avec openclaw config get gateway.auth.token, ou générez-en un nouveau avec openclaw doctor --n. Si vous avez configuré le Gateway pour utiliser l’authentification par mot de passe, utilisez plutôt gateway.auth.password / OPENCLAW_GATEWAY_PASSWORD.
Approuvez les appareils avec openclaw devices list et openclaw devices approve <requestId>. En cas de doute, utilisez Shelley depuis votre navigateur.
Configuration des canaux à distance
Pour les hôtes distants, privilégiez un seul appel à config patch plutôt que de nombreux appels SSH à config set. Conservez les véritables jetons dans l’environnement de la VM ou dans ~/.openclaw/.env, et placez uniquement des SecretRefs dans openclaw.json. Consultez Gestion des secrets pour connaître le contrat SecretRef complet.
Sur la VM, ajoutez au contexte d’exécution du service les secrets dont il a besoin :
cat >> ~/.openclaw/.env <<'EOF'SLACK_BOT_TOKEN=xoxb-...SLACK_APP_TOKEN=xapp-...DISCORD_BOT_TOKEN=...OPENAI_API_KEY=sk-...EOFDepuis votre machine locale, créez un fichier de correctif et transmettez-le à la VM par un tube :
// openclaw.remote.patch.json5{ secrets: { providers: { default: { source: "env" }, }, }, channels: { slack: { enabled: true, mode: "socket", botToken: { source: "env", provider: "default", id: "SLACK_BOT_TOKEN" }, appToken: { source: "env", provider: "default", id: "SLACK_APP_TOKEN" }, groupPolicy: "open", requireMention: false, }, discord: { enabled: true, token: { source: "env", provider: "default", id: "DISCORD_BOT_TOKEN" }, dmPolicy: "disabled", dm: { enabled: false }, groupPolicy: "allowlist", }, }, agents: { defaults: { model: { primary: "openai/gpt-5.6-sol" }, models: { "openai/gpt-5.6-sol": { params: { fastMode: true } }, }, }, },}ssh <vm-name>.exe.xyz 'openclaw config patch --stdin --dry-run' < ./openclaw.remote.patch.json5ssh <vm-name>.exe.xyz 'openclaw config patch --stdin' < ./openclaw.remote.patch.json5ssh <vm-name>.exe.xyz 'openclaw gateway restart && openclaw health'Utilisez --replace-path lorsqu’une liste d’autorisation imbriquée doit correspondre exactement à la valeur du correctif, par exemple pour remplacer la liste d’autorisation d’un canal Discord :
ssh <vm-name>.exe.xyz 'openclaw config patch --stdin --replace-path "channels.discord.guilds[\"123\"].channels"' < ./discord.patch.json5Consultez Discord et Slack pour obtenir la documentation complète de la configuration des canaux.
Accès distant
exe.dev gère l’authentification pour l’accès distant. Par défaut, le trafic HTTP du port 8000 est transféré vers https://<vm-name>.exe.xyz avec une authentification par e-mail.
Mise à jour
openclaw updateConsultez Mise à jour pour le changement de canal et la récupération manuelle.