ChannelsDVR

ChannelsDVR

apps.detail.types.app from Mackid1993's Repository

apps.detail.sections.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.

apps.marketingCta.appInstallTitle

apps.marketingCta.appInstallDescription

apps.installHelp.stepOpen apps.installHelp.stepSearchApp apps.installHelp.stepReview apps.installHelp.stepInstall

apps.detail.sections.categories

apps.detail.sections.related

apps.detail.sections.details

apps.detail.details.repository
ghcr.io/mackid1993/channels-dvr:latest
apps.detail.details.registry
apps.detail.details.lastUpdated2026-08-08
apps.detail.details.firstSeen2026-02-08

apps.detail.sections.runtime

apps.detail.details.webui
http://[IP]:8089
apps.detail.details.network
host
apps.detail.details.shell
bash
apps.detail.details.privileged
false

apps.detail.sections.configuration

Config StoragePathrw

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

apps.detail.config.target
/channels-dvr
apps.detail.config.default
/mnt/user/appdata/channels-dvr
apps.detail.config.value
/mnt/user/appdata/channels-dvr
RecordingsPathrw

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

apps.detail.config.target
/shares/DVR
PUIDVariable

User ID - Use 99 for nobody on Unraid

apps.detail.config.default
99
apps.detail.config.value
99
PGIDVariable

Group ID - Use 100 for users on Unraid

apps.detail.config.default
100
apps.detail.config.value
100
TimezoneVariable

Timezone - Set to your timezone.

apps.detail.config.target
TZ
apps.detail.config.default
America/New_York
apps.detail.config.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

apps.detail.config.target
/dev/dri
UMASKVariable

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

apps.detail.config.default
0000
apps.detail.config.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

apps.detail.config.target
NVIDIA_VISIBLE_DEVICES
NVIDIA Driver CapabilitiesVariable

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

apps.detail.config.target
NVIDIA_DRIVER_CAPABILITIES
apps.detail.config.default
compute,video,utility
apps.detail.config.value
compute,video,utility