Feature Tour¶
A guided walk through everything tunlx can do. Each tile links to a deeper how-to or reference page so you can drill in when you're ready.
Proxy flavors¶
tunlx ships three proxy blueprints — pick the one that matches the shape of the service you want to publish.
Networking¶
Per-proxy egress¶
Every proxy and Xtream service can set route independently:
| Mode | What it does | When to use |
|---|---|---|
system |
Use the host's default routing table. | Default. Works everywhere. |
vpn |
SO_BINDTODEVICE onto the WireGuard interface (default wg0). |
Force a specific upstream through your VPN. |
tsexit |
Send the proxy's egress through the configured Tailscale exit node. | Use a Tailnet peer for outbound — no WireGuard required. |
direct |
Bind to an explicit sourceIP so host policy routing applies. |
Bypass VPN by source-IP policy without touching system routing. |
Anti-block toolkit¶
Real-world upstreams fight client identification. tunlx ships several features so you can match them.
uTLS fingerprints
Replace Go's TLS ClientHello with chrome, firefox, safari, ios, edge, android, or randomized to defeat JA3/JA4 detection on Cloudflare-fronted origins.
Header normalization
Set upstreamUserAgent and enable normalizeUpstreamXtreamHeaders to send VLC-style request headers, which routinely sidestep WAF rules.
Referer preservation
Turn on forceStreamReferer to keep the original Referer when an upstream gates content on hotlink-protection.
302 redirect mode
Set redirectStreams to issue HTTP 302 to the upstream URL for stream paths. tunlx steps out of the data path, the client connects directly, and the upstream sees the client's IP.
Operations¶
Built-in web player¶
The web player is the fastest way to verify a stream actually plays before you put it in front of users.
- Proxy and Direct URLs side by side so you can compare with the proxy in and out of the data path.
- EPG timeline view that pulls fresh data on open and respects your auto-refresh schedule.
- Honors
publicBaseURLso the redirect URL it generates resolves from outside the LAN.

Authentication and admin surface¶
- Username + bcrypt password from
webCredentialsinconfig.json. - Signed sessions using
sessionSecret(32 bytes, base64 / hex / ASCII). - Rate limiters on the login endpoint (deters brute force) and on EPG.
- CSP, HSTS, X-Frame-Options, and CORS configurable at the server level.
- Optional
enforceHttps301 redirect that respectsX-Forwarded-Proto.
Programmable¶
Everything the dashboard does is also reachable over HTTP. See CLI & Environment for flags and env vars, and Xtream API Reference for the client-facing endpoints your IPTV apps will hit.
What's next¶
- Quick Start — five-minute setup
- Setup Wizards — dashboard onboarding and the CLI wizard
- Architecture — how the pieces fit together
- Configuration Reference — every field, every default