Run modes
tuliprox has two distinct run modes:CLI mode
In CLI mode, tuliprox reads your sources, processes the playlist, writes the output files, and exits. Use this when you want to generate static M3U files to serve with your own web server (Nginx, Apache, Caddy, etc.):-t:
Server mode
In server mode, tuliprox starts a long-running process that exposes the M3U, Xtream Codes, HDHomeRun, and management APIs, runs the background scheduler, and serves the Web UI:CLI arguments
--dbx, --dbm, --dbe, --dbv, and --dbms open interactive database inspection tools for debugging. They are intended for troubleshooting, not normal operation.Home directory resolution
tuliprox resolves its home directory in this priority order:- The
--homeCLI flag - The
TULIPROX_HOMEenvironment variable - The directory containing the
tuliproxbinary
/app acts as the home directory.
Project layout
A typical tuliprox home directory looks like this:Key configuration files
Utility commands
Generate a Web UI password hash
The Web UIuser.txt file stores bcrypt-hashed passwords. Generate a hash for a new password:
user.txt.
Healthcheck
tuliprox exposes a healthcheck command suitable for Docker or container orchestration:0 if the server is responding and 1 otherwise. Wire it into your docker-compose.yml healthcheck block:
Good first milestone
When setting up tuliprox for the first time, keep the scope small until each step is confirmed working. Adding filtering, mapping, reverse proxy, and metadata features all at once makes it hard to isolate failures.1
Add one working input
Configure a single input in
source.yml — one M3U URL or one set of Xtream Codes credentials. Start tuliprox and confirm it fetches the playlist without errors.2
Create one target
Define one target with a single output type (start with
m3u). Confirm the output file is written to your data/ directory.3
Confirm playlist output
Open the generated M3U file and check that channels appear as expected. Verify channel count and spot-check group names.
4
Confirm one stream plays
Point VLC or another player at the playlist. Confirm at least one live stream plays from end to end before proceeding.
5
Add advanced features
Only once streaming is confirmed end-to-end, layer in mapping rules, filters, reverse proxy configuration, and metadata enrichment. Adding these one at a time keeps failures easy to diagnose.
Recommended reading order
Once you have a working baseline, explore the rest of the documentation in this order:Config reference
Full reference for
config.yml — API server, scheduling, logging, and reverse proxy settings.Sources and targets
Define inputs, configure multiple providers, and shape outputs with filters.
API proxy
Configure per-user credentials, connection limits, and published server URLs.
Streaming and proxy
Understand how tuliprox handles live stream proxying, sharing, and failover.
Mapping and templates
Rename channels, rewrite attributes, and define reusable template expressions.
Examples and recipes
Copy-paste recipes for common setups and real-world filtering patterns.