One VM.
Every project
gets a URL.✱
devbox wires DNS, exe.dev routing, nginx, and HMR so every project on your exe.dev VM gets its own public domain. Three commands total. Zero nginx yoga.
The boring part, automated.
Running many projects on one VM means DNS records, domain registration, Host routing, and websocket HMR through two proxies. You can do all of that by hand — or not.
Follow a request home.
Four hops, zero config written by you. Fire a request at myapp.nesin.io and watch it route — or send the HMR websocket and watch the upgrade survive.
devbox writes the three things that make this chain work: the nginx server block, the portless route, and the HMR env var.
Eight commands.
That's the whole thing.
Click a command. Watch it run.
Fresh VM to public URL
in three commands.
No Go toolchain, no yaml, no terraform. A binary, a one-time setup, then one command per project.
Install devbox
Pulls the latest release binary. Nothing else required.
$ curl -sfL https://raw.githubusercontent.com/AshikNesin/exe-devbox/main/install.sh | bash
Bring the VM up once · idempotent
Installs node, portless, and nginx. Discovers the VM's identity from exe.dev reflection. Remembers your default domain.
$ devbox setup --default-domain example.com
optional: auto-register domains with an exe.dev API token
Without a token, devbox new prints the ssh exe.dev domain add … command for you to run. With one, registration is fully automatic. Generate a scoped token on your laptop, store it on the VM:
# laptop — scoped to only domain add/remove
$ ssh exe.dev ssh-key generate-api-key --cmds="domain add,domain remove" --exp=never --label=devbox
# vm
$ devbox set-token <token>
Ship a project
DNS CNAME, exe.dev registration, nginx route, dev server, working HMR. Then open the URL.
$ devbox new myapp && devbox dev myapp
$ open https://myapp.example.com