Channels DVR on VPS Server

I will start off by saying that I am an avid user of Channels DVR. I think it is the next best thing to light bread. Having the ability to combine multiple streaming sources into one GUI and being able to DVR movies, much as the old Dish 525 did, I have found several ways to use the service.

In this post, I will highlight how to put the service on a VPS server, connect to it through a mesh VPN service, and only allow your ip addresses to connect to the service. I am using Ubuntu 20.04 on my VPS, so this article is written accordingly.

First up, let’s get that server set up. You can get VPS service through most webhosting services or Amazon. I haven’t tried this on any other OS but I am sure it can be done.

Once you have the VPS, you’ll need to install a couple of things to make this work. Obviously we are going to need ChannelsDVR. We also will need TailScale. It is a free MeshVPN service. You can learn more at Install TailScale by typing:

curl -fsSL | sh

Next, start it by entering:

tailscale up

Follow the prompts to get logged in and install it on your other devices.

Next set up Channels DVR on the server by entering:

curl -f -s | sh

Now, on all your device, choose at home and use the tailscale ip for your server.

Finally, let’s block unwanted traffic so that it only you can get into it. On my server, UFW (Uncomplicated Firewall) is installed. Let’s configure it.

ufw default deny incoming
ufw default allow outgoing
ufw allow from <ip address of your first device> *Run this command for each additional device
ufw enabled

This will allow only your specified devices to connect. Everything else will timeout.

You are now ready to add sources by going to <VPS IP Address>:8089 in your browser. You can configure everything like it is a local machine.

I have setup additional scripts to automate Frndly by delaying running command at reboot and delaying Channels by 10 seconds. Also, I have a script written to clear my Movies and TV Folders monthly to prevent from running out of space.