Skip to main content
1

Deploy with Docker Compose

Create a docker-compose.yml file with the following contents:
services:
  teamarr:
    image: ghcr.io/pharaoh-labs/teamarr:latest
    container_name: teamarr
    restart: unless-stopped
    ports:
      - 9195:9195
    volumes:
      - ./data:/app/data
    environment:
      - TZ=America/New_York
Then start the container:
docker compose up -d
2

Wait for the cache to load

On first startup, Teamarr builds its league and team cache from sports data providers. This takes approximately 2–3 minutes.Once ready, the web UI is available at http://<your-server>:9195. The dashboard will display a Getting Started guide until you complete the setup steps below.
3

Connect to Dispatcharr

Teamarr requires a Dispatcharr connection to create and manage IPTV channels.
  1. Go to Settings > Dispatcharr
  2. Enable the integration toggle
  3. Enter your Dispatcharr URL (e.g., http://dispatcharr:9191)
  4. Enter your Dispatcharr username and password
  5. Click Test — the status should show “Connected”
  6. Click Save
For network configuration details and troubleshooting, see Dispatcharr Integration.
4

Create a template

Templates control how Teamarr names channels and writes EPG descriptions. You need at least one template before generating EPG.Click Create Template in the dashboard quick actions (top-right corner), or go to the Templates page. Give your template a name and define a channel title format using variables — for example:
{home_team} vs {away_team}
Save the template. You can refine it later once you see how events are matched.
5

Add a team or create an event group

Choose the workflow that matches how your IPTV provider serves sports content:
Team-based EPG creates a persistent 24/7 channel for a specific team, populated with their schedule.
  1. Go to the Teams page and click Import Teams
  2. Search for a league or team name
  3. Select the teams you want and click Import
  4. Assign a template and stream to each team
6

Run EPG generation and verify output

Click Generate EPG in the dashboard quick actions. Teamarr will:
  1. Refresh your M3U accounts in Dispatcharr
  2. Match streams to real sporting events
  3. Create or update channels in Dispatcharr with names, logos, and EPG data
  4. Write the XMLTV file to data/epg/
When the run completes, the dashboard shows a row in the EPG Generation History table with the number of programmes generated, streams matched, and active channels.Click the Matched count to drill down into which streams were matched and to which events. Click Failed to see any streams that could not be matched and use the Fix button to open the event matcher.

Installation

Full environment variable reference, Unraid setup, and data persistence details

Dispatcharr Integration

Network configuration, EPG source setup, and troubleshooting

Templates

194 variables for channel names, descriptions, and filler content

Event Groups

Stream matching, aliases, and dynamic channel lifecycle

Build docs developers (and LLMs) love