Skip to main content

Docker Deployment

The simplest way to run Dispatcharr is using Docker with a single command. This method is ideal for quick setup and testing.

Prerequisites

  • Docker installed on your system
  • At least 2GB of available RAM
  • Port 9191 available (or choose a different port)

Quick Start

1

Pull the latest image

docker pull ghcr.io/dispatcharr/dispatcharr:latest
2

Run the container

docker run -d \
  -p 9191:9191 \
  --name dispatcharr \
  -v dispatcharr_data:/data \
  -e DISPATCHARR_ENV=aio \
  -e REDIS_HOST=localhost \
  -e CELERY_BROKER_URL=redis://localhost:6379/0 \
  -e DISPATCHARR_LOG_LEVEL=info \
  --restart unless-stopped \
  ghcr.io/dispatcharr/dispatcharr:latest
3

Access the web interface

Open your browser and navigate to http://localhost:9191

Configuration

Environment Variables

VariableDefaultDescription
DISPATCHARR_ENVaioDeployment mode (use aio for all-in-one)
REDIS_HOSTlocalhostRedis host for caching and task queue
CELERY_BROKER_URLredis://localhost:6379/0Celery broker URL
DISPATCHARR_LOG_LEVELinfoLogging level (debug, info, warning, error)
USE_LEGACY_NUMPYfalseEnable for older CPUs (circa 2009) lacking modern CPU features
UWSGI_NICE_LEVEL0Process priority for streaming (-20 to 19, negative requires SYS_NICE)
CELERY_NICE_LEVEL5Process priority for background tasks (-20 to 19)

Volume Mounts

The /data volume stores all persistent data:
  • /data/logos - Channel logos
  • /data/recordings - Recorded streams
  • /data/uploads/m3us - Uploaded M3U playlists
  • /data/uploads/epgs - Uploaded EPG files
  • /data/m3us - Processed M3U files
  • /data/epgs - Processed EPG files
  • /data/plugins - Custom plugins
  • /data/db - SQLite database (AIO mode only)
Always back up the /data volume before upgrading or making major changes.

Hardware Acceleration

Intel/AMD GPU (VA-API)

For transcoding acceleration using Intel or AMD GPUs:
docker run -d \
  -p 9191:9191 \
  --name dispatcharr \
  -v dispatcharr_data:/data \
  --device /dev/dri:/dev/dri \
  -e DISPATCHARR_ENV=aio \
  ghcr.io/dispatcharr/dispatcharr:latest

NVIDIA GPU

For NVIDIA GPU support (requires NVIDIA Container Toolkit):
docker run -d \
  -p 9191:9191 \
  --name dispatcharr \
  -v dispatcharr_data:/data \
  --gpus all \
  -e DISPATCHARR_ENV=aio \
  ghcr.io/dispatcharr/dispatcharr:latest
NVIDIA GPU support requires the NVIDIA Container Toolkit to be installed on your host system.

Process Priority Configuration

Optimize performance by adjusting process priorities:
docker run -d \
  -p 9191:9191 \
  --name dispatcharr \
  -v dispatcharr_data:/data \
  --cap-add SYS_NICE \
  -e DISPATCHARR_ENV=aio \
  -e UWSGI_NICE_LEVEL=-5 \
  -e CELERY_NICE_LEVEL=5 \
  ghcr.io/dispatcharr/dispatcharr:latest
  • UWSGI_NICE_LEVEL=-5: Higher priority for streaming and FFmpeg processes
  • CELERY_NICE_LEVEL=5: Lower priority for background tasks (EPG updates, etc.)
  • Negative nice values require --cap-add SYS_NICE

Upgrading

1

Stop the running container

docker stop dispatcharr
2

Remove the old container

docker rm dispatcharr
3

Pull the latest image

docker pull ghcr.io/dispatcharr/dispatcharr:latest
4

Start the new container

Use the same docker run command you used initially. Your data will be preserved in the volume.
Always back up your data volume before upgrading:
docker run --rm -v dispatcharr_data:/data -v $(pwd):/backup \
  alpine tar czf /backup/dispatcharr-backup.tar.gz /data

Troubleshooting

View Logs

docker logs dispatcharr
For live log streaming:
docker logs -f dispatcharr

Container Won’t Start

lsof -i :9191

Legacy CPU Support

If you’re running on older hardware (pre-2010 CPUs), enable legacy NumPy:
docker run -d \
  -p 9191:9191 \
  --name dispatcharr \
  -v dispatcharr_data:/data \
  -e DISPATCHARR_ENV=aio \
  -e USE_LEGACY_NUMPY=true \
  ghcr.io/dispatcharr/dispatcharr:latest

Reset to Default Configuration

If you need to start fresh:
# Stop and remove container
docker stop dispatcharr && docker rm dispatcharr

# Remove the data volume (WARNING: This deletes all data!)
docker volume rm dispatcharr_data

# Start a new container
docker run -d -p 9191:9191 --name dispatcharr \
  -v dispatcharr_data:/data \
  ghcr.io/dispatcharr/dispatcharr:latest

Next Steps