ChannelsDVR

ChannelsDVR

Docker app from Mackid1993's Repository

Overview

Unoffical Channels DVR Docker for Unraid.

FANCY BITS LLC IS NOT AFFILIATED WITH THIS PACKAGE AND WILL NOT PROVIDE SUPPORT

Based on Debian Bookworm with minimal tini init system.

Key Features:

  • Proper PUID/PGID mapping (no root-owned files)
  • TV Everywhere (TVE) support with Google Chrome
  • Intel QuickSync and NVIDIA GPU transcoding
  • App handles its own updates like the official container (including pre-releases)
  • Automated container rebuilds on the 1st of every month for security patches.

REMOVE THE INTEL GPU VARIABLE IF NOT USING INTEL QUICKSYNC

GPU Setup:

Intel QuickSync:

  1. Edit this container, scroll to Intel GPU
  2. Set the value to: /dev/dri
  3. Apply

NVIDIA GPU:

  1. Install Nvidia-Driver plugin from Community Apps
  2. Edit this container, add --runtime=nvidia to Extra Parameters
  3. In Advanced View, set NVIDIA Visible Devices to: all
  4. Remove the Intel GPU variable
  5. Apply, shell into the container and verify with nvidia-smi

Channels DVR Docker Container

FANCY BITS LLC IS NOT AFFILIATED WITH THIS PACKAGE AND WILL NOT PROVIDE SUPPORT

An unofficial Debian-based Docker container for Channels DVR with proper file permissions and monthly base image updates. Optimized for Unraid but works on any Linux system.

Why This Container

  • Correct file permissions — PUID/PGID mapping + umask 0000 so you can delete recordings via Windows SMB shares
  • Monthly rebuilds — Fresh Debian base with latest security patches (rebuilds on the 1st of each month)
  • No Docker update hassle — The Channels DVR app updates itself just like the offical image
  • Channels installs from the offical source based off of the offical Linux installer on first launch unless it's already detected

Features

  • PUID/PGID support — Proper user mapping for any Linux system (no root-owned files)
  • Monthly base image updates — Automatic rebuilds keep dependencies current
  • TV Everywhere (TVE) — Google Chrome for TVE authentication
  • Intel QuickSync — Hardware transcoding support
  • NVIDIA GPU — Support via nvidia-container-toolkit
  • Auto-updates — App handles its own updates (including pre-releases)

Unraid Installation

  • Install from Community Applications and follow the instructions in the template.

Manual Setup

  1. Go to Docker tab → Add Container
  2. Configure manually:
    • Repository: ghcr.io/mackid1993/channels-dvr:latest
    • Network: host
    • Add path mappings and environment variables as shown below

Quick Start

docker run -d \
  --name channels-dvr \
  --net=host \
  -e PUID=99 \
  -e PGID=100 \
  -e TZ=America/New_York \
  -v /path/to/config:/channels-dvr \
  -v /path/to/recordings:/shares/DVR \
  ghcr.io/mackid1993/channels-dvr:latest

Docker Compose

version: "3.8"
services:
  channels-dvr:
    image: ghcr.io/mackid1993/channels-dvr:latest
    container_name: channels-dvr
    network_mode: host
    restart: unless-stopped
    environment:
      - PUID=99
      - PGID=100
      - TZ=America/New_York
    volumes:
      - /path/to/config:/channels-dvr
      - /path/to/recordings:/shares/DVR

Environment Variables

Variable Default Description
PUID 99 User ID for file permissions (99 = nobody on Unraid)
PGID 100 Group ID for file permissions (100 = users on Unraid)
UMASK 0000 File permission mask (0000 = 777/666 for SMB compatibility)
TZ America/New_York Timezone for scheduling

Note for non-Unraid systems: The defaults (99/100) are Unraid-specific. On other Linux systems, find your user's IDs with:

id $USER
# Example output: uid=1000(john) gid=1000(john) ...

Then set PUID=1000 and PGID=1000 (or whatever your IDs are).

GPU Settings

Variable Default Description
NVIDIA_DRIVER_CAPABILITIES compute,video,utility NVIDIA capabilities for GPU transcoding

Volumes

Path Description
/channels-dvr Config directory and Channels DVR binary
/shares/DVR Recordings storage

Hardware Transcoding (Optional)

Hardware transcoding is not enabled by default. Add GPU support only if you need it.

Intel QuickSync

Docker Run

docker run -d \
  --name channels-dvr \
  --net=host \
  --device /dev/dri:/dev/dri \
  -e PUID=99 \
  -e PGID=100 \
  -e TZ=America/New_York \
  -v /path/to/config:/channels-dvr \
  -v /path/to/recordings:/shares/DVR \
  ghcr.io/mackid1993/channels-dvr:latest

Docker Compose

version: "3.8"
services:
  channels-dvr:
    image: ghcr.io/mackid1993/channels-dvr:latest
    container_name: channels-dvr
    network_mode: host
    restart: unless-stopped
    environment:
      - PUID=99
      - PGID=100
      - TZ=America/New_York
    volumes:
      - /path/to/config:/channels-dvr
      - /path/to/recordings:/shares/DVR
    devices:
      - /dev/dri:/dev/dri

Unraid

  1. Edit the container
  2. In Advanced View, find the Intel GPU field
  3. Set the value to /dev/dri
  4. Click Apply

NVIDIA GPU

Prerequisites

Install the NVIDIA Container Toolkit on your host:

# Debian/Ubuntu
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
  sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
  sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker

Unraid

  1. Install the Nvidia-Driver plugin from Community Applications:

    • Go to Apps tab → search for "Nvidia-Driver" → Install
    • After installation, go to SettingsNvidia Driver
    • Ensure the driver version matches your GPU and click Apply
    • Reboot if prompted
  2. Configure the container for NVIDIA:

    • Go to Docker tab → click on the channels-dvr container → Edit
    • Scroll down to Extra Parameters and add: --runtime=nvidia
    • In Advanced View, set NVIDIA Visible Devices to all
    • Click Apply
  3. Verify it's working:

    • Click on the channels-dvr container icon → Console
    • Run nvidia-smi — you should see your GPU listed

Docker Run

docker run -d \
  --name channels-dvr \
  --net=host \
  --runtime=nvidia \
  -e PUID=99 \
  -e PGID=100 \
  -e TZ=America/New_York \
  -e NVIDIA_VISIBLE_DEVICES=all \
  -e NVIDIA_DRIVER_CAPABILITIES=compute,video,utility \
  -v /path/to/config:/channels-dvr \
  -v /path/to/recordings:/shares/DVR \
  ghcr.io/mackid1993/channels-dvr:latest

Docker Compose

version: "3.8"
services:
  channels-dvr:
    image: ghcr.io/mackid1993/channels-dvr:latest
    container_name: channels-dvr
    network_mode: host
    runtime: nvidia
    restart: unless-stopped
    environment:
      - PUID=99
      - PGID=100
      - TZ=America/New_York
      - NVIDIA_VISIBLE_DEVICES=all
      - NVIDIA_DRIVER_CAPABILITIES=compute,video,utility
    volumes:
      - /path/to/config:/channels-dvr
      - /path/to/recordings:/shares/DVR

Verify NVIDIA is Working

docker exec channels-dvr nvidia-smi

You should see your GPU listed. In the Channels DVR web UI, go to SettingsTranscoding and select your NVIDIA GPU.

Ports

Port Protocol Description
8089 TCP Web interface and API
1900 UDP SSDP/UPnP discovery
5353 UDP Bonjour/mDNS

Note: --net=host is recommended for proper discovery.

Building Locally

docker build -t channels-dvr .

License

This Docker image is provided as-is under the MIT License. Channels DVR is a commercial product — see getchannels.com for licensing. Channels DVR binaries are not distributed with this container. They are downloaded from offical sources on first start using the Linux installer. This is an unofficial container and not supported or endorsed by Fancy Bits LLC. All Channels DVR trademarks, logos, etc are property of Fancy Bits LLC.

Install ChannelsDVR on Unraid in a few clicks.

Find ChannelsDVR in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.

Open the Apps tab on your Unraid server Search Community Apps for ChannelsDVR Review the template variables and paths Click Install

Related apps

Explore more like this

Explore all

Details

Repository
ghcr.io/mackid1993/channels-dvr:latest
Last Updated2026-07-13
First Seen2026-02-08

Runtime arguments

Web UI
http://[IP]:8089
Network
host
Shell
bash
Privileged
false

Template configuration

Config StoragePathrw

Container Path: /channels-dvr - Stores Channels DVR configuration and binary

Target
/channels-dvr
Default
/mnt/user/appdata/channels-dvr
Value
/mnt/user/appdata/channels-dvr
RecordingsPathrw

Container Path: /shares/DVR - Where recordings are stored

Target
/shares/DVR
PUIDVariable

User ID - Use 99 for nobody on Unraid

Default
99
Value
99
PGIDVariable

Group ID - Use 100 for users on Unraid

Default
100
Value
100
TimezoneVariable

Timezone - Set to your timezone.

Target
TZ
Default
America/New_York
Value
America/New_York
Intel GPUDevice

**Remove this variable if using NVIDIA or not using QuickSync.** - For Intel QuickSync hardware transcoding, set this to: /dev/dri

Target
/dev/dri
UMASKVariable

File permission mask. Default 0000 allows SMB file deletion. Use 0022 for standard permissions (755/644).

Default
0000
Value
0000
NVIDIA Visible DevicesVariable

To enable NVIDIA GPU: 1) Install Nvidia-Driver plugin from Community Apps, 2) Add --runtime=nvidia to Extra Parameters above, 3) Set this to: all 4) remove Intel QuickSync Variable

Target
NVIDIA_VISIBLE_DEVICES
NVIDIA Driver CapabilitiesVariable

Leave as default (compute,video,utility) for transcoding. Only change if you know what you're doing.

Target
NVIDIA_DRIVER_CAPABILITIES
Default
compute,video,utility
Value
compute,video,utility