ENDPORT / GET STARTED

From localhost
to anywhere.

Connect a running local server, choose your public URL, and inspect its traffic. No email account or cloud project setup.

YOUR APPlocalhost:3000Running on your machine
↘
ENDPORT CLIendport 3000Secure tunnel to the gateway
↘
PUBLIC HTTPSmyapp.endport.ioRequests return to localhost
01 / PREPARE

Run your local app.

Start the server you want to share, using its usual development command. Note the port it prints. Endport forwards traffic to that port; your local process needs to stay running.

EXAMPLE APPhttp://localhost:3000
CHECK IT RESPONDScurl http://localhost:3000

Use your actual port if it is 4000, 5173, 8000, or something else. Your app can be written in any language.

02 / INSTALL

Install the CLI.

With Node.js 20.19 or newer installed, add the Endport command. Run it from the directory of the app you just started.

TERMINALnpm install -g https://endport.io/downloads/endport-cli-0.1.0.tgz

No account or email sign-in is needed. The CLI creates a private project identity on your machine.

03 / CONNECT

Point Endport at the port.

Open a second terminal in your app directory and pass Endport the port number. Give the app a readable name, or omit --name to use the directory name.

FROM YOUR APP DIRECTORYendport 3000 --name myapp
✓ Tunnel connected
Local
http://localhost:3000
Public
https://myapp.endport.io
Logs
https://workspace.endport.io/
Code
•••••-•••••

The CLI prints the actual assigned URL. If another project owns the name, Endport adds a short readable suffix. Leave this terminal open while the endpoint should be online.

04 / CONFIGURE

Choose your public URL.

OPTION A / INCLUDED

Use an Endport URL

The name printed by the CLI is ready to use. No DNS change is needed.

https://myapp.endport.io
OPTION B / YOUR DOMAIN

Connect your hostname

Open the logs workspace’s Domain section. Add a subdomain, create the CNAME and TXT records shown, then verify DNS.

api.example.com

After your custom domain is verified, connect it from the same app directory:

CUSTOM DOMAINendport 3000 --domain api.example.com

The logs URL stays at workspace.endport.io/<app> even when the public app uses your domain.

05 / MONITOR

See what your app receives.

Open the Logs URL printed by the CLI. Enter the one-time code from the same terminal; Endport finds your app automatically. The workspace shows request methods, paths, statuses, durations, sizes, and 24-hour analytics.

01Open the logs URLworkspace.endport.io/
02Enter the terminal codeValid for 10 minutes; works once
03Send a requestWatch it appear in Traffic

Need another code later? Run this in the same app directory:

FRESH LOGIN CODEendport code
Open Workspace
06 / WHEN YOU NEED MORE

Share a preview or connect more ports.

In your workspace, open Access to restrict the public app and create an expiring visitor link. The visitor can open the running app; the logs workspace still requires your terminal code.

For a web app and API in one project, create endport.config.json with {"name":"myapp","services":{"web":{"port":3000},"api":{"port":4000}}}, then run endport start. Each service has a stable URL and its own request history. See Documentation for the full configuration.

TESTING WITHOUT DEPLOYING

Trying Endport locally?

The public *.endport.io URL needs deployed DNS and HTTPS. For a local Docker test, point the CLI at the local gateway:

LOCAL GATEWAYendport 3000 --name myapp --server http://localhost:8080

The CLI prints a local logs page. You can simulate a public request with the Host header:

TEST A REQUESTcurl -H 'Host: myapp.endport.io' http://localhost:8080/
See detailed docs and troubleshooting ↗