exe.dev
Run ThinkFleet Gateway on exe.dev (VM + HTTPS proxy) for remote access
exe.dev
Goal: ThinkFleet 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.
Beginner quick path
- https://exe.new/thinkfleetbot
- Fill in your auth key/token as needed
- Click on "Agent" next to your VM, and wait...
- ???
- Profit
What you need
- exe.dev account
ssh exe.devaccess to exe.dev virtual machines (optional)
Automated Install with Shelley
Shelley, exe.dev's agent, can install ThinkFleet instantly with our prompt. The prompt used is as below:
Set up ThinkFleetBot (https://docs.thinkfleet.dev/install) on this VM. Use the non-interactive and accept-risk flags for thinkfleetbot 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 "thinkfleetbot devices list" and "thinkfleetbot device approve <request id>". Make sure the dashboard shows that ThinkFleetBot'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.Manual installation
1) Create the VM
From your device:
ssh exe.dev new Then connect:
ssh <vm-name>.exe.xyzTip: keep this VM stateful. ThinkFleet stores state under ~/.thinkfleetbot/ and ~/thinkfleet/.
2) Install prerequisites (on the VM)
sudo apt-get update
sudo apt-get install -y git curl jq ca-certificates openssl3) Install ThinkFleet
Run the ThinkFleet install script:
curl -fsSL https://thinkfleet.dev/install.sh | bash4) Setup nginx to proxy ThinkFleet 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 ThinkFleet and grant privileges
Access https://<vm-name>.exe.xyz/?token=YOUR-TOKEN-FROM-TERMINAL. Approve
devices with thinkfleetbot devices list and thinkfleetbot device approve. When in doubt,
use Shelley from your browser!
Remote Access
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.
Updating
npm i -g thinkfleetbot@latest
thinkfleetbot doctor
thinkfleetbot gateway restart
thinkfleetbot healthGuide: Updating