# 11-dispatcharr.md

kstack:
  book: Centerpoint Home Lab
  chapter: Media Management
  page: Dispatcharr
  tags: [dispatcharr, iptv, m3u, media-management]
---

## Overview

Dispatcharr is an IPTV playlist and stream management tool. It organises M3U
channel lists, manages IPTV stream sources, and acts as a companion to Threadfin —
providing a more structured interface for managing channel groups, EPG mappings,
and stream prioritisation before they are published to Plex and Jellyfin via
Threadfin.

Dispatcharr runs in **all-in-one (`aio`) mode**, bundling its application server,
Celery task worker, and Redis instance into a single container.

## Access

| Type      | URL                                 | Notes                              |
|-----------|-------------------------------------|------------------------------------|
| Internal  | `https://dispatcharr.home.local`    | LAN access via Step-CA TLS         |

No external route — internal management only.

## Configuration

**Image:** `ghcr.io/dispatcharr/dispatcharr:latest`
**Compose project:** `arr` stack

### Traefik Labels

```yaml
traefik.enable: "true"
traefik.http.routers.dispatcharr.rule: Host(`dispatcharr.home.local`)
traefik.http.routers.dispatcharr.entrypoints: websecure
traefik.http.routers.dispatcharr.tls.certresolver: step-ca
traefik.http.services.dispatcharr.loadbalancer.server.port: 9191
```

### Key Environment Variables

| Variable                | Value              | Purpose                               |
|-------------------------|--------------------|---------------------------------------|
| `DISPATCHARR_ENV`       | `aio`              | All-in-one mode (app + worker + Redis) |
| `DISPATCHARR_LOG_LEVEL` | `info`             | Logging verbosity                     |
| `REDIS_HOST`            | `localhost`        | Internal Redis (bundled in AIO mode)  |
| `CELERY_BROKER_URL`     | `redis://localhost:6379/0` | Celery task queue            |

## Volumes / Bind Mounts

| Host Path                                    | Container Path | Purpose                      |
|----------------------------------------------|----------------|------------------------------|
| `/home/jeeves/docker/arr/dispatcharr/data`   | `/data`        | Dispatcharr database and config |

## Notes / Gotchas

- In `aio` mode, Redis runs inside the container and does not persist state between
  restarts beyond what is stored in the `/data` bind mount. Task queue state is lost
  on container restart.
- Dispatcharr integrates with Threadfin as the downstream consumer of its managed
  M3U playlists. Configure the Dispatcharr output URL in Threadfin as the M3U
  source.
- `ghcr.io/dispatcharr/dispatcharr:latest` is an actively developed project —
  check release notes before pulling updates as breaking changes may affect the
  channel database schema.

---
*Last Updated: 2026-06-16*