How to expose localhost:8080 to the internet
Port 8080 is where your dev server lives right now. Here is how to put a public HTTPS URL in front of it without deploying.
8080 is the usual fallback when a framework does not pick 3000 or 8000. The tunnel does not care what framework you run. It forwards HTTPS to whatever is bound on 8080.
Quick start
curl -fsSL https://get.ngsrv.com | bash
ngsrv token <YOUR_TOKEN>
ngsrv http 8080
You get a public URL like https://furry-otter-1842.tnl.ngsrv.com that routes to http://localhost:8080.
What usually runs on 8080
- Spring Boot
- Go services
- Tomcat
- many Java stacks
Typical dev command: ./mvnw spring-boot:run
Install the CLI
# macOS (Homebrew)
brew install ngsrv/tap/ngsrv
# macOS / Linux
curl -fsSL https://get.ngsrv.com | bash
# Windows (PowerShell)
irm https://get.ngsrv.com/windows | iex
Sign up at ngsrv.com/register if you need a token. Free tier, no card.
Run the tunnel
With your server already up on port 8080:
ngsrv http 8080
Sample output:
forwarding https://furry-otter-1842.tnl.ngsrv.com -> http://localhost:8080
status online
Stable subdomain (optional)
Random names change when you restart. For webhooks or client previews, reserve one:
ngsrv http 8080 --subdomain spring-dev
# -> https://spring-dev.tnl.ngsrv.com
When it breaks
connection refused — Nothing is listening on 8080. Confirm with lsof -i :8080 (macOS/Linux) or netstat -ano | findstr :8080 (Windows).
401 invalid token — Re-run ngsrv token <YOUR_TOKEN> from the dashboard.
Tunnel drops — ngsrv reconnects on its own. Persistent drops usually mean VPN or proxy interference.