Skip to content

exe.dev

Goal: BuilderForce Agents Gateway running on an exe.dev VM, reachable from your laptop via: https://<vm-name>.exe.xyz

This page assumes exe.dev’s default exeuntu image. If you picked a different distro, map packages accordingly.

  1. https://exe.new/builderforce
  2. Fill in your auth key/token as needed
  3. Click on “Agent” next to your VM, and wait…
  4. ???
  5. Profit
  • exe.dev account
  • ssh exe.dev access to exe.dev virtual machines (optional)

Shelley, exe.dev’s agent, can install BuilderForce Agents instantly with our prompt. The prompt used is as below:

Set up BuilderForce Agents (https://builderforce.ai/docs/install) on this VM. Use the non-interactive and accept-risk flags for builderforce 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 "builderforce devices list" and "builderforce device approve <request id>". Make sure the dashboard shows that BuilderForce Agents'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.

From your device:

Terminal window
ssh exe.dev new

Then connect:

Terminal window
ssh <vm-name>.exe.xyz

Tip: keep this VM stateful. BuilderForce Agents stores state under ~/.builderforce/ and ~/.builderforce/workspace/.

Terminal window
sudo apt-get update
sudo apt-get install -y git curl jq ca-certificates openssl

Run the BuilderForce Agents install script:

Terminal window
curl -fsSL https://builderforce.ai/install.sh | bash

4) Setup nginx to proxy BuilderForce Agents to port 8000

Section titled “4) Setup nginx to proxy BuilderForce Agents to port 8000”

Edit /etc/nginx/sites-enabled/default with

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;
}
}

5) Access BuilderForce Agents and grant privileges

Section titled “5) Access BuilderForce Agents and grant privileges”

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 builderforce config get gateway.auth.token, or generate one with builderforce doctor --generate-gateway-token). Approve devices with builderforce devices list and builderforce devices approve <requestId>. When in doubt, use Shelley from your browser!

Remote access is handled by exe.dev’s authentication. By default, HTTP traffic from port 8000 is forwarded to https://<vm-name>.exe.xyz with email auth.

Terminal window
npm i -g builderforce@latest
builderforce doctor
builderforce gateway restart
builderforce health

Guide: Updating