2026-01-08 06:25:01 +01:00
---
2026-01-30 03:15:10 +01:00
summary: "Run OpenClaw Gateway on exe.dev (VM + HTTPS proxy) for remote access"
2026-01-08 06:25:01 +01:00
read_when:
- You want a cheap always-on Linux host for the Gateway
- You want remote Control UI access without running your own VPS
2026-01-31 16:04:03 -05:00
title: "exe.dev"
2026-01-08 06:25:01 +01:00
---
# exe.dev
2026-01-30 03:15:10 +01:00
Goal: OpenClaw Gateway running on an exe.dev VM, reachable from your laptop via: `https://<vm-name>.exe.xyz`
2026-01-08 06:25:01 +01:00
2026-01-27 16:36:07 -08:00
This page assumes exe.dev's default **exeuntu** image. If you picked a different distro, map packages accordingly.
2026-01-08 21:56:41 +01:00
## Beginner quick path
2026-01-31 21:13:13 +09:00
1. [https://exe.new/openclaw ](https://exe.new/openclaw )
2. Fill in your auth key/token as needed
3. Click on "Agent" next to your VM, and wait...
4. ???
5. Profit
2026-01-08 21:56:41 +01:00
2026-01-08 06:25:01 +01:00
## What you need
2026-01-27 16:36:07 -08:00
- exe.dev account
- `ssh exe.dev` access to [exe.dev ](https://exe.dev ) virtual machines (optional)
2026-01-08 06:25:01 +01:00
2026-01-27 16:36:07 -08:00
## Automated Install with Shelley
2026-01-08 06:25:01 +01:00
2026-01-30 03:15:10 +01:00
Shelley, [exe.dev ](https://exe.dev )'s agent, can install OpenClaw instantly with our
2026-01-27 16:36:07 -08:00
prompt. The prompt used is as below:
2026-01-08 06:25:01 +01:00
```
2026-02-22 20:52:46 +01:00
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.
2026-01-08 06:25:01 +01:00
```
2026-01-27 16:36:07 -08:00
## Manual installation
2026-01-08 06:25:01 +01:00
2026-01-27 16:36:07 -08:00
## 1) Create the VM
2026-01-08 06:25:01 +01:00
2026-01-27 16:36:07 -08:00
From your device:
2026-01-08 06:25:01 +01:00
```bash
2026-01-31 21:13:13 +09:00
ssh exe.dev new
2026-01-08 06:25:01 +01:00
```
2026-01-27 16:36:07 -08:00
Then connect:
2026-01-08 06:25:01 +01:00
```bash
2026-01-27 16:36:07 -08:00
ssh < vm-name > .exe.xyz
2026-01-08 06:25:01 +01:00
```
2026-01-30 03:15:10 +01:00
Tip: keep this VM **stateful** . OpenClaw stores state under `~/.openclaw/` and `~/.openclaw/workspace/` .
2026-01-08 06:25:01 +01:00
2026-01-27 16:36:07 -08:00
## 2) Install prerequisites (on the VM)
2026-01-08 06:25:01 +01:00
```bash
2026-01-27 16:36:07 -08:00
sudo apt-get update
sudo apt-get install -y git curl jq ca-certificates openssl
2026-01-08 06:25:01 +01:00
```
2026-01-30 03:15:10 +01:00
## 3) Install OpenClaw
2026-01-08 06:25:01 +01:00
2026-01-30 03:15:10 +01:00
Run the OpenClaw install script:
2026-01-08 06:25:01 +01:00
```bash
2026-01-31 13:57:35 +01:00
curl -fsSL https://openclaw.ai/install.sh | bash
2026-01-08 06:25:01 +01:00
```
2026-01-30 03:15:10 +01:00
## 4) Setup nginx to proxy OpenClaw to port 8000
2026-01-08 06:25:01 +01:00
2026-01-27 16:36:07 -08:00
Edit `/etc/nginx/sites-enabled/default` with
2026-01-08 06:25:01 +01:00
```
2026-01-27 16:36:07 -08:00
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 $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# Timeout settings for long-lived connections
proxy_read_timeout 86400s;
proxy_send_timeout 86400s;
}
2026-01-08 06:25:01 +01:00
}
```
2026-01-30 03:15:10 +01:00
## 5) Access OpenClaw and grant privileges
2026-01-08 06:25:01 +01:00
2026-02-05 18:08:29 -08:00
Access `https://<vm-name>.exe.xyz/` (see the Control UI output from onboarding). If it prompts for auth, paste the
token from `gateway.auth.token` on the VM (retrieve with `openclaw config get gateway.auth.token` , or generate one
with `openclaw doctor --generate-gateway-token` ). Approve devices with `openclaw devices list` and
`openclaw devices approve <requestId>` . When in doubt, use Shelley from your browser!
2026-01-08 06:25:01 +01:00
2026-01-27 16:36:07 -08:00
## Remote Access
2026-01-08 06:25:01 +01:00
2026-01-27 16:36:07 -08:00
Remote access is handled by [exe.dev ](https://exe.dev )'s authentication. By
default, HTTP traffic from port 8000 is forwarded to `https://<vm-name>.exe.xyz`
2026-01-31 21:13:13 +09:00
with email auth.
2026-01-08 06:25:01 +01:00
2026-01-27 16:36:07 -08:00
## Updating
2026-01-08 06:25:01 +01:00
```bash
2026-01-30 03:15:10 +01:00
npm i -g openclaw@latest
openclaw doctor
openclaw gateway restart
openclaw health
2026-01-08 06:25:01 +01:00
```
Guide: [Updating ](/install/updating )