> ## Documentation Index
> Fetch the complete documentation index at: https://mintlify.com/euzu/tuliprox/llms.txt
> Use this file to discover all available pages before exploring further.

# tuliprox

> High-performance IPTV proxy and playlist processor written in Rust. Ingest M3U/Xtream sources, filter and reshape them, and deliver streams to Plex, Jellyfin, Emby, Kodi and more.

<CardGroup cols={2}>
  <Card title="Quick Start" icon="rocket" href="/quickstart">
    Get tuliprox running with Docker in minutes and serve your first IPTV playlist.
  </Card>

  <Card title="Getting Started" icon="book-open" href="/getting-started">
    Understand run modes, CLI arguments, and the recommended configuration workflow.
  </Card>

  <Card title="Configuration Reference" icon="sliders" href="/configuration/main-config">
    Full reference for config.yml, source.yml, api-proxy.yml and all subsystems.
  </Card>

  <Card title="API Reference" icon="code" href="/api/overview">
    Explore the M3U, Xtream Codes, HDHomeRun, XMLTV and management API endpoints.
  </Card>
</CardGroup>

## 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.

<CardGroup cols={3}>
  <Card title="Playlist Processing" icon="filter" href="/features/playlist-processing">
    Filter, rename, map and sort channels. Merge multiple providers into curated outputs.
  </Card>

  <Card title="Reverse Proxy" icon="arrow-right-arrow-left" href="/features/streaming-and-proxy">
    Proxy streams with user limits, shared connections, priority preemption and fallback videos.
  </Card>

  <Card title="Xtream & M3U" icon="tv" href="/guides/xtream-setup">
    Ingest Xtream Codes and M3U sources. Publish as Xtream, M3U, HDHomeRun or STRM outputs.
  </Card>

  <Card title="HDHomeRun" icon="satellite-dish" href="/features/overview">
    Emulate HDHomeRun devices so Plex, Emby, Jellyfin and TVHeadend discover tuliprox natively.
  </Card>

  <Card title="Local Media Library" icon="folder-open" href="/features/local-media-library">
    Scan local video files and enrich them with TMDB metadata. Serve alongside live TV.
  </Card>

  <Card title="Notifications" icon="bell" href="/features/monitoring-and-alerts">
    Get alerts via Telegram, Discord, Pushover or REST webhooks when issues occur.
  </Card>
</CardGroup>

## Supported input and output formats

<Tabs>
  <Tab title="Inputs">
    | Format                       | Description                                   |
    | ---------------------------- | --------------------------------------------- |
    | `m3u` / `m3u8`               | Standard M3U playlist over HTTP or local file |
    | `xtream`                     | Xtream Codes API (live, VOD, series)          |
    | `library`                    | Local video files from disk                   |
    | `m3u_batch` / `xtream_batch` | Batch multiple sources from a single URL      |
  </Tab>

  <Tab title="Outputs">
    | Format      | Description                                  |
    | ----------- | -------------------------------------------- |
    | `m3u`       | Standard M3U playlist for any IPTV player    |
    | `xtream`    | Xtream Codes API for compatible clients      |
    | `hdhomerun` | HDHomeRun device emulation                   |
    | `strm`      | STRM files for Kodi, Plex, Jellyfin and Emby |
  </Tab>

  <Tab title="Clients">
    tuliprox is tested with: **Plex**, **Jellyfin**, **Emby**, **Kodi**, **VLC**, **TiviMate**, **Sparkle**, **Xteve**, **TVHeadend**, and any M3U-compatible player.
  </Tab>
</Tabs>

## Quick Docker start

```yaml docker-compose.yml theme={null}
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

<Note>
  tuliprox is licensed under the MIT License. Source code is available at [github.com/euzu/tuliprox](https://github.com/euzu/tuliprox).
</Note>
