Skip to content

mackid1993/channels-dvr

Repository files navigation

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.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages