> ## Documentation Index
> Fetch the complete documentation index at: https://docs.equa.cc/llms.txt
> Use this file to discover all available pages before exploring further.

# Exe dev

# exe.dev

Goal: Equabot Gateway running on an exe.dev VM, reachable from your laptop via:

* **exe.dev HTTPS proxy** (easy, no tunnel) or
* **SSH tunnel** (most secure; loopback-only Gateway)

This page assumes **Ubuntu/Debian**. If you picked a different distro, map packages accordingly.

If you’re on any other Linux VPS, the same steps apply — you just won’t use the exe.dev proxy commands.

## Beginner quick path

1. Create VM → install Node 22 → install Equabot
2. Run `equabot onboard --install-daemon`
3. Tunnel from laptop (`ssh -N -L 18789:127.0.0.1:18789 …`)
4. Open `http://127.0.0.1:18789/` and paste your token

## What you need

* exe.dev account + `ssh exe.dev` working on your laptop
* SSH keys set up (your laptop → exe.dev)
* Model auth (OAuth or API key) you want to use
* Provider credentials (optional): WhatsApp QR scan, Telegram bot token, Discord bot token, …

## 1) Create the VM

From your laptop:

```bash theme={null}
ssh exe.dev new --name=equabot
```

Then connect:

```bash theme={null}
ssh equabot.exe.xyz
```

Tip: keep this VM **stateful**. Equabot stores state under `~/.equabot/` and `~/equa/`.

## 2) Install prerequisites (on the VM)

```bash theme={null}
sudo apt-get update
sudo apt-get install -y git curl jq ca-certificates openssl
```

### Node 22

Install Node **>= 22.12** (any method is fine). Quick check:

```bash theme={null}
node -v
```

If you don’t already have Node 22 on the VM, use your preferred Node manager (nvm/mise/asdf) or a distro package source that provides Node 22+.

Common Ubuntu/Debian option (NodeSource):

```bash theme={null}
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt-get install -y nodejs
```

## 3) Install Equabot

Recommended on servers: npm global install.

```bash theme={null}
npm i -g equabot@latest
equabot --version
```

If native deps fail to install (rare; usually `sharp`), add build tools:

```bash theme={null}
sudo apt-get install -y build-essential python3
```

## 4) First-time setup (wizard)

Run the onboarding wizard on the VM:

```bash theme={null}
equabot onboard --install-daemon
```

It can set up:

* `~/equa` workspace bootstrap
* `~/.equabot/equabot.json` config
* model auth profiles
* model provider config/login
* Linux systemd **user** service (service)

If you’re doing OAuth on a headless VM: do OAuth on a normal machine first, then copy the auth profile to the VM (see [Help](/help)).

## 5) Remote access options

### Option A (recommended): SSH tunnel (loopback-only)

Keep Gateway on loopback (default) and tunnel it from your laptop:

```bash theme={null}
ssh -N -L 18789:127.0.0.1:18789 equabot.exe.xyz
```

Open locally:

* `http://127.0.0.1:18789/` (Control UI)

Runbook: [Remote access](/gateway/remote)

### Option B: exe.dev HTTPS proxy (no tunnel)

To let exe.dev proxy traffic to the VM, bind the Gateway to the LAN interface and set a token:

```bash theme={null}
export EQUABOT_GATEWAY_TOKEN="$(openssl rand -hex 32)"
equabot gateway --bind lan --port 8080 --token "$EQUABOT_GATEWAY_TOKEN"
```

For service runs, persist it in `~/.equabot/equabot.json`:

```json5 theme={null}
{
  gateway: {
    mode: "local",
    port: 8080,
    bind: "lan",
    auth: { mode: "token", token: "YOUR_TOKEN" }
  }
}
```

Notes:

* Non-loopback binds require `gateway.auth.token` (or `EQUABOT_GATEWAY_TOKEN`).
* `gateway.remote.token` is only for remote CLI calls; it does not enable local auth.

Then point exe.dev’s proxy at `8080` (or whatever port you chose) and open your VM’s HTTPS URL:

```bash theme={null}
ssh exe.dev share port equabot 8080
```

Open:

* `https://equabot.exe.xyz/`

In the Control UI, paste the token (UI → Settings → token). The UI sends it as `connect.params.auth.token`.

Notes:

* Prefer a **non-default** port (like `8080`) if your proxy expects an app port.
* Treat the token like a password.

Control UI details: [Control UI](/web/control-ui)

## 6) Keep it running (service)

On Linux, Equabot uses a systemd **user** service. After `--install-daemon`, verify:

```bash theme={null}
systemctl --user status equabot-gateway[-<profile>].service
```

If the service dies after logout, enable lingering:

```bash theme={null}
sudo loginctl enable-linger "$USER"
```

More: [Linux](/platforms/linux)

## 7) Updates

```bash theme={null}
npm i -g equabot@latest
equabot doctor
equabot gateway restart
equabot health
```

Guide: [Updating](/install/updating)
