Skip to content

Standard Proxies & Daily Operations

Routine workflows for running tunlx after the first proxy is up. This page focuses on Standard proxies — for the other blueprints, see Composite Catalogs and Xtream Services.

What a Standard proxy is

A Standard proxy reverse-proxies one upstream Xtream / IPTV provider behind a stable URL that you control. It does the work most operators think of as "tunlx":

  • Stable public URL via thisServerHost / thisServerPort and publicBaseURL.
  • Per-proxy egress routing (system / vpn / tsexit / direct).
  • Optional MediaFlow handling for HLS / MPEG-TS streams.
  • EPG auto-refresh so guide data stays current.
  • Stored Xtream credentials reused by the player and EPG worker.

Lifecycle

  1. Create proxy with target and listen address.
  2. Set route policy (system, vpn, tsexit, or direct).
  3. Add Xtream credentials if the upstream requires them.
  4. Save and verify playback with the built-in player.
  5. Tune categories and EPG behavior to taste.

Dashboard shortcuts

Expanding a proxy card gives you its address, upstream, egress route, EPG state, live throughput, and every per-proxy action in one place:

An expanded standard proxy card

Edit opens the full configuration dialog:

The standard proxy configuration dialog

  • Press / anywhere on the dashboard (when no modal is open) to focus the proxy search.
  • Press Esc while focused in proxy search to clear it quickly.
  • Use the filter chips: All · Active · Inactive · MediaFlow to narrow the table.
  • The filter summary line tells you how many proxies match the active filters.

Manage categories

Manage categories

  • Open Actions → Manage Categories on any proxy or composite.
  • Pick the content type (Live, Movies, Series). Composites also let you filter by source proxy first.
  • Drag-and-drop or double-click to move categories between Available and Enabled. Counts update live.
  • Apply a Global Prefix to prepend text (e.g. [US]) to every enabled category. Per-category overrides win.
  • Click Save Changes to persist back to config.json.

Validate streams

Use Stream Health Tests before users find a broken channel.

Stream health tests

Recommended cadence:

  • After provider / upstream changes.
  • After enabling VPN routing or MediaFlow on a proxy.
  • On a recurring schedule for large catalogs.

Use the built-in player

The built-in web player is the fastest way to verify route, format, and credential behavior.

  • Test both Proxy and Direct URL modes where applicable.
  • Confirm HLS and MPEG-TS behavior for representative channels.
  • Use the EPG view to verify refresh jobs are healthy.

Web player

EPG automation

Enable epgAutoRefresh on the proxy and set epgRefreshIntervalHours (1–72) to schedule background refreshes. The worker:

  1. Confirms Xtream credentials are present (it can't authenticate without them).
  2. Performs an initial refresh on startup if none is recorded.
  3. Fetches and caches XMLTV data on the configured interval.
  4. Stamps epgLastRefresh in config.json for visibility.

Proxies with the worker enabled show an EPG Auto badge in the dashboard list.

Retention window

To keep memory use sensible, EPG cache filters programmes older than 24 hours past or further than 72 hours into the future.

If auto-refresh is off, you can still refresh on demand from the player's EPG button.

MediaFlow on a Standard proxy

Set mediaFlowEnabled: true and mediaFlowURL to route /live, /movie, /series, and /hls paths through MediaFlow. See the dedicated MediaFlow Integration guide for the full path routing table and Docker recipe.

Manage Users (Xtream services only)

Manage Users lives on Xtream services, not Standard proxies (Standard proxies pass through whatever credentials the upstream demands). See Xtream Services → Manage from the dashboard.

Start and stop

docker compose up -d
docker compose logs -f tunlx
docker compose restart tunlx
docker compose down
./tunlx -configFile=/etc/tunlx/config.json

Set TUNLX_DEBUG=true for startup troubleshooting.

Operational best practices

  • Keep a canary proxy for testing config changes without risking the main lineup.
  • Apply VPN routing only where needed. Every tunneled proxy adds a failure mode.
  • Version config.json. Treat it like infrastructure code; commit it somewhere safe.
  • Prefer dashboard edits for routine ops, then audit the generated diff in source control.