[SOLVED] Channels not updating (Docker)

I am running Channels DVR server as a Docker container. I moved my server from one Linux machines to another many months ago. I tried doing an update and it does not appear to be going through. Looking at the logs I am seeing:

2025/08/30 15:42:52.330325 [SYS] Downloading new version v2025.08.01.1845
2025/08/30 15:43:05.593843 [SYS] Error checking for update: remove /channels-dvr/latest: directory not empty

I am own version 2025.02 so way behind. Can someone advise? Can I just remove the contents of that dir? Everything is working so I don't want to break anything but would like to update. Thanks

Install fresh container and restore backup

How did you move it?

It should have automatically updated to the stable release version 2025.08.01.1845 when it came out on August 1st

What host directory do you have mapped to the container directory /channels-dvr ?
Sounds like your latest is a regular directory, instead of a symlink.

Looks like @tmm1 beat me to it. Instead of trying to troubleshoot why it happened, do what he said.

Been months. Can't really remember but if I had to guess I copied from previous host to the new one.

Right. It looks like it is trying. I can see it trying to update in the logs even when I am not doing a manual update. The log I posted above repeats often

dinki@nas:/DATA/AppData/channels-dvr$ ls -l
total 52
drwxr-xr-x  2 root root 4096 Jul  2 09:40 2025.06.26.1658
drwxr-xr-x  2 root root 4096 Jul  3 12:12 2025.07.03.0419
drwxr-xr-x  2 root root 4096 Jul  8 18:59 2025.07.08.2149
drwxr-xr-x  2 root root 4096 Jul  9 18:07 2025.07.09.0103
drwxr-xr-x  2 root root 4096 Aug  1 15:05 2025.08.01.1845
drwxr-xr-x  2 root root 4096 Aug 25 13:58 2025.08.24.0217
drwxr-xr-x  2 root root 4096 Aug 30 13:42 2025.08.28.2100
drwxr-xr-x 13 root root 4096 Aug 30 17:32 data
drwxr-xr-x 10 root root 4096 Mar  3 10:20 Database
drwxr-xr-x  3 root root 4096 Mar  3 10:20 Images
drwxr-xr-x  5 root root 4096 Mar  3 10:20 Imports
drwxr-xr-x  2 root root 4096 Mar  3 10:21 latest
drwxr-xr-x  4 root root 4096 Mar  3 10:20 Streaming

Does look like a normal for and not symlink.

I don't want to mess this up. Can you point me to docs on how to do this or if easier a quick explanation?

Thanks guys

Just force removal of the directory /DATA/AppData/channels-dvr/latest
and run the update again.
The only things in that directory are the Channels DVR executables, which get replaced when updating.
Should work while Channels DVR is running, but to play it safe you could stop the container, remove the directory and restart the container. That will download and run the latest stable release. Then you can update to the latest pre-release.

2 Likes

Thanks. Worked great. Just didn't want to botch it and spend a bunch of time trying to fix it. Big game starting now!

1 Like

Pretty sure the setup.sh would create the directory symlink $version inside the directory
/channels-dvr/latest if /channels-dvr/latest already exists as a directory

ln -nsf $version channels-dvr/latest

So if $version is 2025.08.01.1845, the symlink created
would be /channels-dvr/latest/2025.08.01.1845 pointing to /channels-dvr/2025.08.01.1845
instead of /channels-dvr/latest pointing to /channels-dvr/2025.08.01.1845

Am I correct in my assumption?

EDIT: Answered my own question
It fails to create the directory symlink, since a directory by that name already exists and continues running the same old version

2025/08/30 18:31:25.163056 [SYS] Starting Channels DVR v2025.05.31.0551 (linux-x86_64 pid:7) in /channels-dvr/data
2025/08/30 18:31:25.337066 [SYS] Started HTTP Server on 8089
2025/08/30 18:31:25.792412 [HDR] Found 1 devices
2025/08/30 18:31:26.421913 [TLS] Requesting certificate for xxxxxxxxcad.u.channelsdvr.net
2025/08/30 18:31:26.498343 [DVR] Recording engine started in /shares/dvr
2025/08/30 18:31:26.531154 [SYS] Created database snapshot: backup-20250831.013126
2025/08/30 18:31:27.039884 [SYS] Downloading new version v2025.08.01.1845
2025/08/30 18:31:48.005909 [SYS] Error checking for update: remove /channels-dvr/latest: directory not empty

Once I delete the latest directory and check for update, it works

2025/08/30 18:36:55.734980 [TLS] Certificate ready for xxxxxxxxxcad.u.channelsdvr.net
2025/08/30 18:39:51.259370 [SYS] Downloading new version v2025.08.28.2100
2025/08/30 18:40:06.348952 [SYS] Update downloaded and verified successfully.
2025/08/30 18:40:06.450200 [SYS] Created database snapshot: backup-20250831.014006
2025/08/30 18:40:06.450511 [SYS] Shutting down for upgrade from v2025.05.31.0551 to v2025.08.28.2100
2025/08/30 18:40:06.471680 [DVR] Recording engine stopped.
2025/08/30 18:40:07.746420 [SYS] Starting Channels DVR v2025.08.28.2100 (linux-x86_64 pid:7) in /channels-dvr/data
2025/08/30 18:40:07.815570 [SYS] Started HTTP Server on 8089
2025/08/30 18:40:08.291693 [HDR] Found 1 devices
2025/08/30 18:40:08.954211 [DVR] Recording engine started in /shares/dvr
2025/08/30 18:40:09.261024 [SYS] Created database snapshot: backup-20250831.014009