Skip to main content
config.yml controls the application runtime, storage, reverse proxy behavior, and optional subsystems. Relative paths are resolved against the Tuliprox home directory.

Top-level fields


Core runtime

api

Configures the embedded HTTP server.
web_root is resolved relative to the Tuliprox home directory when it is not an absolute path.

storage_dir

Storage location for persisted playlists, databases, and metadata.

process_parallel

Enable parallel processing on multi-core systems. Be aware that multiple worker threads can also consume multiple provider connections simultaneously during updates.

mapping_path and template_path

Tuliprox loads mappings and templates from a single file or an entire directory.
  • If a path points to a directory, all *.yml files are loaded in alphanumeric order and merged.
  • Template names must remain globally unique.
  • Defaults: mapping.yml and template.yml in the home directory.

Provider failover and rotation

Tuliprox supports provider failover and DNS-aware rotation. Providers can expose multiple URLs, and Tuliprox rotates to the next candidate on supported failure conditions.

provider:// scheme

Configurations can reference providers via provider://<provider_name>/.... Tuliprox resolves that to the current active provider URL or resolved IP.

Automatic failover triggers

Failover is triggered for the following HTTP status codes:

proxy — provider DNS block

Each provider entry can include a dns block: Resolved IPs are persisted in provider_dns_resolved.json under storage_dir.

messaging

Optional notification system supporting Telegram, Discord, Pushover, and REST webhooks.

notify_on events

Templates can be raw strings or file:// / http(s):// URIs. Handlebars variables available in templates: message, kind, timestamp, stats, watch, processing.

video

Optional video-related behavior for the Web UI.

metadata_update

Controls how Tuliprox resolves metadata, probes streams, queries TMDB, and invokes FFprobe.
Duration fields accept s, m, h, d suffixes or plain seconds. Size fields accept B, KB, MB, GB, TB or plain bytes.

schedules

See the Scheduled tasks page for the full reference. Quick example:

reverse_proxy

This block controls stream delivery, buffering, caching, header forwarding, rate limiting, and resource retries. See the Streaming and Proxy page for the full reference.
The reverse_proxy block is covered in detail on the Streaming and Proxy page under Core Features.

backup_dir

Location for configuration backups written from the Web UI.

update_on_boot

If true, Tuliprox starts a playlist update automatically when the application launches.

log

log_level accepts a plain level (debug, info, warn, error) or a comma-separated module filter:

web_ui

auth sub-section

The userfile format is one username:password_hash entry per line. Generate password hashes with:

Access control and stream fallback

user_access_control

When enabled, Tuliprox evaluates each user’s status, exp_date, and max_connections on every stream request.

connect_timeout_secs

Defines the connect-phase timeout for provider requests. Set to 0 to disable the timeout.

custom_stream_response_path

Directory containing fallback transport streams served to clients when a stream cannot be delivered. custom_stream_response_timeout_secs caps the playback duration of those fallback streams.

Other optional sections

Storage location for user-specific configuration such as bouquets.
Enables HDHomeRun device emulation for integration with Plex, Jellyfin, Emby, and TVHeadend. Supports multiple virtual devices, optional lineup authentication, and SSDP plus SiliconDust discovery.
Global outgoing proxy for all upstream provider requests. Supported schemes: http, https, socks5.
Defines endpoints and optional regexes for public IP detection.
When enabled, Tuliprox watches mapping files and api-proxy.yml and reloads them automatically when changes are detected — no restart required.
Enables local media library integration with recursive directory scanning, movie vs. series classification, NFO reading and writing, TMDB enrichment, incremental scans, and stable virtual IDs.