Hosting
exe.dev
Objetivo: OpenClaw Gateway ejecutándose en una VM de exe.dev, accesible en https://<vm-name>.exe.xyz.
Esta guía asume la imagen exeuntu predeterminada de exe.dev. Adapta los paquetes según corresponda en otras distribuciones.
Lo que necesitas
- Cuenta de exe.dev
- Acceso con
ssh exe.deva las VM de exe.dev (opcional, para configuración manual)
Ruta rápida para principiantes
- Abre https://exe.new/openclaw
- Completa tu clave/token de autenticación según sea necesario
- Haz clic en "Agent" junto a tu VM y espera a que Shelley termine el aprovisionamiento
- Abre
https://<vm-name>.exe.xyz/y autentícate con el secreto compartido configurado (autenticación por token de forma predeterminada; la autenticación por contraseña también funciona si cambiasgateway.auth.mode) - Aprueba las solicitudes pendientes de emparejamiento de dispositivos con
openclaw devices approve <requestId>
Instalación automatizada con Shelley
Shelley, el agente de exe.dev, puede instalar OpenClaw desde una instrucción:
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.Instalación manual
Crear la VM
Desde tu dispositivo:
ssh exe.dev newLuego conéctate:
ssh <vm-name>.exe.xyzInstalar requisitos previos (en la VM)
sudo apt-get updatesudo apt-get install -y git curl jq ca-certificates opensslInstalar OpenClaw
curl -fsSL https://openclaw.ai/install.sh | bashConfigurar nginx para actuar como proxy al puerto 8000
Edita /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; }}Sobrescribe las cabeceras de reenvío en lugar de preservar cadenas proporcionadas por el cliente. OpenClaw confía en los metadatos de IP reenviada solo desde proxies configurados explícitamente, y las cadenas X-Forwarded-For de estilo anexado se tratan como un riesgo de endurecimiento.
Acceder a OpenClaw y aprobar dispositivos
Abre https://<vm-name>.exe.xyz/ (consulta la salida de Control UI del onboarding). Si solicita autenticación, pega el secreto compartido configurado desde la VM.
Esta guía usa autenticación por token de forma predeterminada, así que recupera gateway.auth.token con openclaw config get gateway.auth.token, o genera uno nuevo con openclaw doctor --n. Si cambiaste el Gateway a autenticación por contraseña, usa gateway.auth.password / OPENCLAW_GATEWAY_PASSWORD en su lugar.
Aprueba dispositivos con openclaw devices list y openclaw devices approve <requestId>. En caso de duda, usa Shelley desde tu navegador.
Configuración de canales remotos
Para hosts remotos, prefiere una llamada config patch en lugar de muchas llamadas SSH a config set. Mantén los tokens reales en el entorno de la VM o en ~/.openclaw/.env, y coloca solo SecretRefs en openclaw.json. Consulta Gestión de secretos para ver el contrato completo de SecretRef.
En la VM, haz que el entorno del servicio contenga los secretos que necesita:
cat >> ~/.openclaw/.env <<'EOF'SLACK_BOT_TOKEN=xoxb-...SLACK_APP_TOKEN=xapp-...DISCORD_BOT_TOKEN=...OPENAI_API_KEY=sk-...EOFDesde tu máquina local, crea un archivo de parche y envíalo por tubería a la VM:
// 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.5" }, models: { "openai/gpt-5.5": { 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'Usa --replace-path cuando una allowlist anidada deba convertirse exactamente en el valor del parche, por ejemplo al reemplazar una allowlist de canales de Discord:
ssh <vm-name>.exe.xyz 'openclaw config patch --stdin --replace-path "channels.discord.guilds[\"123\"].channels"' < ./discord.patch.json5Consulta Discord y Slack para ver la referencia completa de configuración de canales.
Acceso remoto
exe.dev gestiona la autenticación para el acceso remoto. De forma predeterminada, el tráfico HTTP del puerto 8000 se reenvía a https://<vm-name>.exe.xyz con autenticación por correo electrónico.
Actualización
openclaw updateConsulta Actualización para cambios de canal y recuperación manual.