Sixter logo Sixter
Home / Tutorials / Expose localhost to the internet

How to expose localhost to the internet (with HTTPS)

You have an app running on http://localhost:3000 and need a public URL — to share a demo, test a webhook, or preview on your phone. Here's how to do it with a secure HTTPS tunnel in under a minute.

What is a tunnel?

A tunnel creates an outbound connection from your machine to a public gateway. The gateway gives you a public URL and forwards incoming requests back down that connection to your local port — so you never open a firewall port or need a public IP. Sixter adds automatic HTTPS on top.

Step 1 — Install and log in

curl -fsSL https://sixter.in/sixter_amd64.deb -o sixter.deb
sudo dpkg -i sixter.deb
sixter login

Approve the login from any device. On Windows/macOS, grab the CLI from your dashboard.

Step 2 — Run your local server

Start your app as usual, e.g. a dev server on port 3000:

npm run dev        # or: python -m http.server 3000, go run ., etc.

Step 3 — Start the tunnel

sixter tunnel -port 3000

Sixter prints your public URL: https://<name>.sixter.in. It forwards to http://127.0.0.1:3000, with HTTP and WebSocket both supported and HTTPS handled for you.

Step 4 — Share it

Send the URL to a colleague, paste it as a webhook endpoint, or open it on your phone. Traffic is inspected by Sixter's edge firewall (WAF, rate limiting) before it reaches your machine.

Common uses

Going further

Add a custom domain, deploy the project so it stays online, or host from a box with no public IP using Tunnel Mode.

Get startedSixter vs ngrok