tailscale-proxy

Installation & setup

Get from zero to a public URL in four steps. Total time: ~5 minutes.

1. Install Tailscale & sign in

Tailscale  is the secure tunnel tsp runs on (the part that replaces ngrok’s relay). Install it, then bring your machine online:

brew install --cask tailscale # or download the app: https://tailscale.com/download tailscale up # opens a browser to sign up / log in (free)

2. Enable Funnel (for public URLs)

Funnel is what makes your dev server reachable from the public internet. Turn it on once in the Tailscale admin console:

  1. Enable HTTPS certificates → admin console → DNS → toggle on MagicDNS and HTTPS Certificates (guide ).
  2. Allow Funnel → admin console → Access controls → add this to your policy file and save:
    { "nodeAttrs": [ { "target": ["autogroup:member"], "attr": ["funnel"] } ] }
    (Funnel docs )

Only want it reachable from your own devices (your laptop, phone, teammates on the tailnet)? Skip this step and run tsp --private — that uses Tailscale Serve and needs no extra setup.

3. Install tsp

npx tailscale-proxy doctor

tsp doctor confirms everything is wired up and prints the exact fix link for anything missing:

✓ tailscale installed (1.98.2) ✓ tailscale up ✓ funnel enabled ✓ service discovery (2 service(s) in 3000-5000)

Supported: macOS, Linux, Windows, WSL (amd64 + arm64).

4. Run it

Start your dev servers as usual, then:

tsp # discover :3000-5000 and expose them publicly (Funnel)
Services: https://your-node.ts.net/web/ → 127.0.0.1:4000 https://your-node.ts.net/api/ → 127.0.0.1:4100

Open those from anywhere. Ctrl-C stops it and resets the entry. Next: the full Getting started walkthrough.


Updating

tsp update # self-updates, or prints the brew/npm command