How do you test localhost without a tunnel?
Point BASE_URL at your app on localhost or on a private staging URL. The Nexus engine starts the app before the run, waits until it answers, runs the tests and stops it afterwards, with no tunnel, no exposed staging URL and no test data leaving your network.
By the Nexus Studio team, Verdict System LLC. October 27, 2026.
Why does a cloud grid need a tunnel?
A hosted grid runs its browsers on its own servers, so it can reach an app on your machine only through a tunnel, or through a staging URL that is public. Nexus Studio runs the browsers on the machine that holds your app, so the test and the app talk to each other as they are, on localhost or on a private staging URL.
How does the engine run your app?
- A dev server left running after the tests.
NEXUS_APP_STARTstarts your app before every run and stops it with its whole process tree when the run ends, fails or is interrupted, Ctrl+C included. - A green run against an app that never started. The run waits until the ready URL answers, with any status below 500, asked every 0.5 s. If the app cannot start, the run never starts:
CONFIG_ERROR APP_DID_NOT_START, with its last 40 log lines. - A second copy of an app that is already up.
NEXUS_APP_REUSE=trueuses an app that already answers and leaves it running;falsestops the run if something else answers there. - A result nobody can tie to a build. Each run records your app's package.json version and the git commit it tested.
What changes in Docker and over SSH?
In Docker the app still runs on this machine, and the container reaches a localhost BASE_URL as host.docker.internal. Over SSH the app starts on the remote host.
What do you configure?
One program and its arguments, with no shell: npm run dev, pnpm dev or node server.js. nexus app check, or Test it in the Studio, starts the app, waits for it and stops it. The whole log stays in evidence/run-context/.
What are the limits?
- The start command is one program with its arguments and no shell, so shell operators such as
&&do not apply. Put a longer sequence in a script and start that script. - Over SSH, localhost means the remote host: the app starts there, not on the machine that holds the Studio.
Where can I read more?
The own-your-infrastructure page compares a PC, a mini PC, Docker and a rented server, and says what each costs. The trust page lists the one connection the Studio makes on its own, and the self-hosted Playwright guide covers running the same tests in Docker or on a Linux server.