Skip to main content

Quick Start

Get tuliprox running with Docker in minutes and serve your first IPTV playlist.

Getting Started

Understand run modes, CLI arguments, and the recommended configuration workflow.

Configuration Reference

Full reference for config.yml, source.yml, api-proxy.yml and all subsystems.

API Reference

Explore the M3U, Xtream Codes, HDHomeRun, XMLTV and management API endpoints.

What is tuliprox?

tuliprox is a self-hosted IPTV proxy and playlist processor. It sits between your IPTV providers and your media clients, giving you full control over how streams are filtered, renamed, merged and delivered.

Playlist Processing

Filter, rename, map and sort channels. Merge multiple providers into curated outputs.

Reverse Proxy

Proxy streams with user limits, shared connections, priority preemption and fallback videos.

Xtream & M3U

Ingest Xtream Codes and M3U sources. Publish as Xtream, M3U, HDHomeRun or STRM outputs.

HDHomeRun

Emulate HDHomeRun devices so Plex, Emby, Jellyfin and TVHeadend discover tuliprox natively.

Local Media Library

Scan local video files and enrich them with TMDB metadata. Serve alongside live TV.

Notifications

Get alerts via Telegram, Discord, Pushover or REST webhooks when issues occur.

Supported input and output formats

FormatDescription
m3u / m3u8Standard M3U playlist over HTTP or local file
xtreamXtream Codes API (live, VOD, series)
libraryLocal video files from disk
m3u_batch / xtream_batchBatch multiple sources from a single URL

Quick Docker start

docker-compose.yml
services:
  tuliprox:
    container_name: tuliprox
    image: ghcr.io/euzu/tuliprox-alpine:latest
    working_dir: /app
    volumes:
      - /home/tuliprox/tuliprox:/app/tuliprox
      - /home/tuliprox/config:/app/config
      - /home/tuliprox/data:/app/data
      - /home/tuliprox/cache:/app/cache
    environment:
      - TZ=Europe/Paris
    ports:
      - "8901:8901"
    restart: unless-stopped
Open http://localhost:8901 after startup to access the Web UI and continue configuration.

Key features

  • Advanced filtering — expressive boolean/regex DSL: (Group ~ "^FR.*") AND NOT (Group ~ ".*XXX.*")
  • Multi-source merging — combine multiple providers into a single curated target
  • Stream sharing — multiple users share one upstream connection to reduce provider load
  • Priority preemption — higher-priority users can displace lower-priority connections
  • Scheduled updates — cron-based playlist refreshes keep channels current
  • Hot config reload — update mapping and API-proxy configuration without restarts
  • Provider failover — automatic rotation on timeouts and HTTP errors
  • DNS-aware routing — resolve and rotate provider IPs for resilience
tuliprox is licensed under the MIT License. Source code is available at github.com/euzu/tuliprox.

Build docs developers (and LLMs) love