SUB/WAVE
Help

Exposing Navidrome, safely.

Your station streams straight from your own Navidrome, so the DJ needs to reach it over the internet. Five minutes, one of two routes, no ports flung open.

Why this is needed

A LAN address like 192.168.1.20:4533 only exists inside your home. The station lives in our rack, so it needs a public HTTPS address for your library.

Tailscale Funnel

OPTION ARecommended

Works behind CGNAT and home firewalls; nothing to port-forward. With Tailscale on the Navidrome box:

Shell
tailscale funnel --bg 4533

Tailscale prints your public URL — something like https://yourbox.tailXXXX.ts.net. That's the address you paste at onboarding. Done.

Reverse proxy you already run

OPTION B

Got Caddy or nginx with a domain? Point a subdomain at Navidrome:

Caddyfile
music.example.com {
  reverse_proxy 127.0.0.1:4533
}

A login for the DJ

In Navidrome, add a user just for the station — subwave works — so you can revoke it any time without touching your own account.

Test it

Shell — from any network, not your LAN
curl -s https://music.example.com/ping
# → {"status":"OK"}

If that answers from your phone's data connection, the DJ can hear your records. Paste the URL and login at yourname.getsubwave.com/onboarding.

Troubleshooting

The funnel URL times outFunnel needs HTTPS enabled on your tailnet (Tailscale admin → DNS → HTTPS certificates) and the box online. `tailscale funnel status` shows what's live.
The ping answers at home but not on mobile dataYou're hitting a LAN or tailnet-only address. Use the public https://… URL, and test with Wi-Fi off.
Behind CGNAT and no domainThat's exactly what Option A is for — the funnel needs no port-forwarding and no domain. Cloudflare Tunnel works too if you already live there.
Onboarding says the login failsTest the same user in a browser at your public URL first. Navidrome logins are case-sensitive.
Stuck? We've seen every router.Email support
[TODO before launch: set NEXT_PUBLIC_LEGAL_ENTITY / _ADDRESS / _COMPANY_NO / _VAT_NO — the registered trading entity, address, and tax numbers.]