All apps · 0 apps
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:
- Edit this container, scroll to Intel GPU
- Set the value to: /dev/dri
- Apply
NVIDIA GPU:
- Install Nvidia-Driver plugin from Community Apps
- Edit this container, add --runtime=nvidia to Extra Parameters
- In Advanced View, set NVIDIA Visible Devices to: all
- Remove the Intel GPU variable
- Apply, shell into the container and verify with nvidia-smi
Readme
View on GitHubChannels 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 0000so 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
- Go to Docker tab → Add Container
- Configure manually:
- Repository:
ghcr.io/mackid1993/channels-dvr:latest - Network:
host - Add path mappings and environment variables as shown below
- Repository:
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
- Edit the container
- In Advanced View, find the Intel GPU field
- Set the value to
/dev/dri - 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
Install the Nvidia-Driver plugin from Community Applications:
- Go to Apps tab → search for "Nvidia-Driver" → Install
- After installation, go to Settings → Nvidia Driver
- Ensure the driver version matches your GPU and click Apply
- Reboot if prompted
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
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 Settings → Transcoding 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.
Categories
Related apps
Explore more like this
Explore allDetails
ghcr.io/mackid1993/channels-dvr:latestRuntime arguments
- Web UI
http://[IP]:8089- Network
host- Shell
bash- Privileged
- false
Template configuration
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
Container Path: /shares/DVR - Where recordings are stored
- Target
- /shares/DVR
User ID - Use 99 for nobody on Unraid
- Default
- 99
- Value
- 99
Group ID - Use 100 for users on Unraid
- Default
- 100
- Value
- 100
Timezone - Set to your timezone.
- Target
- TZ
- Default
- America/New_York
- Value
- America/New_York
**Remove this variable if using NVIDIA or not using QuickSync.** - For Intel QuickSync hardware transcoding, set this to: /dev/dri
- Target
- /dev/dri
File permission mask. Default 0000 allows SMB file deletion. Use 0022 for standard permissions (755/644).
- Default
- 0000
- Value
- 0000
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
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