~/$ devbox
v0.5.8· for exe.dev VMs

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.

$ curl -sfL https://raw.githubusercontent.com/AshikNesin/exe-devbox/main/install.sh | bash
exedev@nesins-devbox zsh
the problem

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.

~/saturday-afternoon — what multi-project dev on a VM actually takes
    under the hood

    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.

    browser
    myapp.nesin.io
    exe.dev
    tls · :443
    nginx
    :8080 · host routing
    portless
    :8888 · myapp.localhost
    vite
    :5173 · hmr
    request log live
    # press a button above to trace a request through the stack

    devbox writes the three things that make this chain work: the nginx server block, the portless route, and the HMR env var.

    the cli

    Eight commands.
    That's the whole thing.

    Click a command. Watch it run.

    devbox --help v0.5.8
    Available Commands:
    devbox setup simulated
    setup

    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.

    1

    Install devbox

    Pulls the latest release binary. Nothing else required.

    $ curl -sfL https://raw.githubusercontent.com/AshikNesin/exe-devbox/main/install.sh | bash
    2

    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>
    3

    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