Skip to main content
api-proxy.yml tells Tuliprox which server URLs to advertise to clients and which users may access which targets.

Top-level entries


server

You can define multiple named servers — typically one for local network access and one for external access. One server should always be named default.

Server fields

If Tuliprox is behind another reverse proxy, use path to simplify URL rewriting without extra proxy rewrites.

user

Users are defined per target. Each target can expose multiple sets of credentials.

Credential fields

username and password are mandatory. token is optional but must be globally unique if set.

Proxy mode

The proxy field controls how Tuliprox delivers streams to this user.
Use redirect when clients can reach the provider directly and you want to reduce load on Tuliprox. Use reverse when you need buffering, caching, or connection tracking.

Priority

User priority is optional and defaults to 0.
Probe tasks use the same priority scale via metadata_update.probe.user_priority in config.yml.

use_user_db

When set to true, users are stored in the Tuliprox database instead of this YAML file. Use the Web UI to add, edit, or remove users.
Tuliprox migrates users automatically when you switch between YAML and database mode.

auth_error_status

HTTP status code returned when authentication fails (invalid or missing credentials). Defaults to 403.
This setting applies to streaming and playlist API endpoints (player_api.php, get.php, xmltv.php, stream paths, resource paths). It does not affect the Web UI / REST API (/api/v1/…) or HDHomeRun endpoints, which always use their own fixed status codes.

Access URLs

REST-friendly alias:

Reverse proxy in front of Tuliprox

If another proxy sits in front of Tuliprox, configure it to forward the original client IP.
Make sure your reverse proxy forwards X-Real-IP and X-Forwarded-For headers. Without these, Tuliprox cannot track per-client connections accurately.

Multiple server example

This pattern exposes Tuliprox on the local network and externally via HTTPS with different base URLs:

User bouquets

Tuliprox supports per-user bouquets — curated channel lists that are stored in the user config directory (user_config_dir in config.yml). Bouquets are managed through the Web UI and are tied to a user’s target assignment. They allow users to create personal filtered views without modifying the shared target configuration.