OliveTin for Channels: An Interface for Misc Channels DVR Scripts & Tricks

Just a thought, maybe add support for generating a adbtuner/apituner json for fios tv+ seeing as how verizon won't give out cablecards anymore.

Still getting the same error. I think I have the mnts to Channels ok but the host directory is killing me.

In Docker Desktop settings, you can find the paths that are allowed, but I know the /Users is one of them. Keep in mind upper/lowercase matters. You can open a terminal on the Mac, and do an ls -la /Users to see the subdirectories. One of them will be your Mac username:

slayer@Mac-Mini-M4 ~ % ls -la /Users 
total 0
drwxr-xr-x   5 root    admin   160 Aug 31 05:35 .
drwxr-xr-x  22 root    wheel   704 Aug 12 20:51 ..
-rw-r--r--   1 root    wheel     0 Aug 12 20:51 .localized
drwxrwxrwt  13 root    wheel   416 Aug 31 05:35 Shared
drwxr-x---+ 33 slayer  staff  1056 Sep  4 19:50 slayer

So, in my case my HOST_DIR value would be /Users/slayer

We have made some headway as I think were getting past the local host directory.

This is the current error:
failed to deploy a stack: compose up operation failed: Error response from daemon: mounts denied: The path /mnt/channel-dvr is not shared from the host and is not known to Docker. You can configure shared paths from Docker -> Preferences... -> Resources -> File Sharing. See Change your Docker Desktop settings | Docker Docs for more info.

TAG=latest
DOMAIN=local
HOST_PORT=1337
CHANNELS_DVR_HOST=10.0.1.65
CHANNELS_DVR_PORT=8089
CHANNELS_DVR2_HOST=
CHANNELS_DVR2_PORT=
CHANNELS_CLIENTS=
ALERT_SMTP_SERVER=
ALERT_EMAIL_FROM=
ALERT_EMAIL_PASS=
ALERT_EMAIL_TO=
UPDATE_YAMLS=true
UPDATE_SCRIPTS=true
TZ=America/Chicago
HOST_DIR=/Users/alang
DVR_SHARE=/mnt/channel-dvr
LOGS_SHARE=/mnt/channel-dvr
TUBEARCHIVIST_SHARE=/mnt/channel-dvr
DVR2_SHARE=
LOGS2_SHARE=
TUBEARCHIVIST2_SHARE=
DVR3_SHARE=
LOGS3_SHARE=
TUBEARCHIVIST3_SHARE=
HOST_SFS_PORT=8080
FOLDER=/web
PORTAINER_TOKEN=(REDACTED)
PORTAINER_HOST=10.0.1.40
PORTAINER_PORT=9443
PORTAINER_ENV=2
PERSISTENT_LOGS=false

I got to call it a night. I will probably be out of touch to Sunday — Geaux Tigers

Docker Volumes are referenced by their name only. So, if you created one volume named channels-dvr, then that's the value you use for DVR_SHARE. Then, hopefully you created another Docker Volume called channels-dvr-logs, and that's the value you'd use for LOGS_SHARE. TUBEARCHIVIST_SHARE is usually the same value as DVR_SHARE.

You also need to un-comment a few things in the "volumes:" section. They start with #0#, #1# and #2#. That will define avolumes: section along with channels-dvr and channels-dvr-logs volumes specifically.

By uncommit, you mean just delete the #0#, etc.

I tried various things. One of the errors said can’t have more than one volumes. After a failed deploy, the items show back up commented out. Others say it can’t reach the Synology mints.

I’m pretty sure we have the host directory correct because it has created an olivetin folder ( nothing in it).

I'll redo the Volumes again tomorrow and post each step. The Mac has no issue navigating the Synology thru finder.

I'll sleep on it and try again tomorrow am.

Making some progress but not ready for prime time yet.

Using Host Directory as Users/alang and letting it think my DVR is on Mac allows it to spin up without errors. No need to run post health check yet.

Adding my Synology in still gives errors but I started using 'Gordon' in docker desktop to troubleshoot the errors. It actually created a volume named ChannelsDVR that connects with Synology and would spin up but it had an 8080 port conflict and switched to 8081. I'll redo later and stop that item running 8080 when I troubleshoot. Then everything should be good. In hindsight, I should have stopped that other piece in OliveTin the first time.

I'll have to add the channels log volume and let 'Gordon' do its work on that. I'll change the uncommented pieces to the actual volume Gordon creates.

Hopefully my next post will be the post install health check. Maybe tonight but probably tomorrow. Times are busy!!

1 Like

@bnhf Thank you for OliveTin for Channels. I'm primarily using the one click "Create Fruit ADBTuner Lanes + CDVR Custom Channels" feature and have used it for Peacock and Paramount+.

I'm wondering if it's possible to update it to support Apple F1 as FruitDeepLinks exposes that in the same way for ADBTuner. Is that relatively straightforward and something either you could add or give me some hints on how to do it myself?

It should be pretty easy -- let me take a look at it, and I'll get back to you.

1 Like

@chrispederick New bnhf/olivetin:latest (aka bnhf/olivetin:2026.09.08) pushed with Project One-Click support for apple_f1 in Create Fruit ADBTuner Lanes + CDVR Custom Channels.

If you could confirm back to me that `apple_f1' is working as intended, I'd appreciate it!

It looks to have worked setting everything up correctly, but there are no active events right now. I'll be able to fully verify everything this weekend, but it looks good so far.

Thanks so much!

1 Like

@bnhf
Here’s the results of the Post Install Health Check.

For documentaion:
I used Docker Desktop’s ā€œGordonā€ to create:

  • Credentials file for Sinology
  • channels-dvr and channels-dvr volumes creations
  • the correct path that I should use for the environmental variable
Checking your OliveTin-for-Channels installation...
(extended_check=false)

OliveTin Container Version 2026.09.01
OliveTin Docker Compose Version 2025.08.25

----------------------------------------

Checking that your selected Channels DVR server (10.0.1.65:8089) is reachable by URL:
HTTP Status: 200 indicates success...

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1276  100  1276    0     0   458k      0 --:--:-- --:--:-- --:--:--  623k
HTTP Status: 200
Effective URL: http://10.0.1.65:8089/

----------------------------------------

Checking that your selected Channels DVR server's data files (/mnt/10.0.1.65-8089) are accessible:
Folders with the names Database, Images, Imports, Logs, Movies, Streaming and TV should be visible...

total 8
drwxr-xr-x 2 root root 4096 Sep 11 10:11 .
drwxr-xr-x 1 root root 4096 Sep 11 10:12 ..

Docker reports your current DVR_SHARE setting as...
/var/lib/docker/volumes/channels-dvr/_data

If the listed folders are NOT visible, AND you have your Channels DVR and Docker on the same system:

Channels reports this path as...
/volume1/ChannelsDVR

----------------------------------------

Checking that your selected Channels DVR server's log files (/mnt/10.0.1.65-8089_logs) are accessible:
Folders with the names data and latest should be visible...

total 8
drwxr-xr-x 2 root root 4096 Sep 11 09:54 .
drwxr-xr-x 1 root root 4096 Sep 11 10:12 ..

Docker reports your current LOGS_SHARE setting as...
/var/lib/docker/volumes/channels-dvr-logs/_data

If the listed folders are NOT visible, AND you have your Channels DVR and Docker on the same system:

Channels reports this path as...
/var/packages/ChannelsDVR/target/channels-dvr
----------------------------------------

Checking if your Portainer token is working on ports 9000 and/or 9443:

Portainer http response on port 9000 reports version 
Portainer Environment ID for local is 
Portainer https response on port 9443 reports version 2.45.0
Portainer Environment ID for local is 3

----------------------------------------

Here's a list of your current OliveTin-related settings:

HOSTNAME=olivetin
CHANNELS_DVR=10.0.1.65:8089
CHANNELS_DVR_ALTERNATES=
CHANNELS_CLIENTS=
ALERT_SMTP_SERVER=
ALERT_EMAIL_FROM=[Redacted]@
ALERT_EMAIL_PASS=[Redacted]
ALERT_EMAIL_TO=[Redacted]@
UPDATE_YAMLS=true
UPDATE_SCRIPTS=true
PORTAINER_TOKEN=[Redacted]
PORTAINER_HOST=10.0.1.40
PORTAINER_PORT=9443
PORTAINER_ENV=2

----------------------------------------

Here's the contents of /etc/resolv.conf from inside the container:

# Generated by Docker Engine.
# This file can be edited; Docker Engine will not make further changes once it
# has been modified.

nameserver 127.0.0.11
search local
options ndots:0

# Based on host file: '/etc/resolv.conf' (internal resolver)
# ExtServers: [host(192.168.65.7)]
# Overrides: [search]
# Option ndots from: internal

----------------------------------------

Here's the contents of /etc/hosts from inside the container:

127.0.0.1       localhost
::1     localhost ip6-localhost ip6-loopback
fe00::  ip6-localnet
ff00::  ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.18.0.3      olivetin

As you can see, none of the folders you should be seeing are visible here.

Same situation here.

@chDVRuser Do you know which version of CIFS a Synology NAS needs used to connect to its Samba shares? I'm thinking that may be a factor here:

I don’t know if this affects it but Volumes were created in Docker and shared to Portainer.

I’m going to try and spin something up and see what it does.

Can I delete all those ā€œunusedā€ volumes?

Probably, especially if they're the ones with very long generated names (they're temporary). If you have others you think might belong to a stopped stack -- don't delete those.

So I had P1C spin up Fast Channels (probably the one I shouldn’t be trying yet).

Went to the webui, and changed TZ.
Tried connection to Channels DVR Server (10.0.1.65:8089) and it timed out. Changed url to the http://172.17.0.1:8089 and tested ok. Retested and it failed. Changed back to original (10.0.1.65:8089) and Connected to Channels DVR v2026.09.02.0507 (jagrim)
have tested it several times with good connection.

1 Like

SMB2
You can set Minimum and Maximum version in Control Panel > File Services > SMB > Advanced Settings

So, as I previously posted, I set up Fast Channels using P1C using my ip address and tested the connection. In FC, I disabled all except Pluto. Used the "add to Channels DVR" and the sources showed up. Checked several shows and all played. Checked Channels logs and it's working as normal with entries from FC. Am currently recording a FC station (test) and now watching the recording. Everything appears to be working as intended. Have set a program to record later and will check it later.

I’m going to rerun the health check using the extended and see if anything else pops up. Will add results as an edit.

My thoughts:
Volumes were set up on docker desktop using Gordon. The volumes show in docker but not in Portainer. In setting up OliveTin, Gordon provided the details for the volume locations which is what I used. No errors deploying. Spun up FC thru P1C. Went to FC webui/Settings and checked time zone then check connection to channels DVR which failed. Changed server location to the location in the text write up and it passed. Came back a few minutes later and rechecked location and it failed. Reverted back to my Channels DVR url and it has passed every time I have checked. In FC, all I added was Pluto at this time. I have guide data, can view, and can record. Channels log shows the FC entries.

All appears to be working correctly. I'll report the extended health check after I run it.

+ hostCommand=WSL_DISTRO_NAME
+ hostCommandArguments=
+ fifoPipe=/config/fifopipe
+ '[' '!' -p /config/fifopipe ']'
+ echo 'FIFO pipe not found. Is the host helper script running?'
+ echo -e 'Run sudo -E ./fifopipe_hostside.sh "$PATH" from the directory you have bound to /config on your host computer'
+ exit 1
+ hostCommand=LINUX_DISTRO_NAME
+ hostCommandArguments=
+ fifoPipe=/config/fifopipe
+ '[' '!' -p /config/fifopipe ']'
+ echo 'FIFO pipe not found. Is the host helper script running?'
+ echo -e 'Run sudo -E ./fifopipe_hostside.sh "$PATH" from the directory you have bound to /config on your host computer'
+ exit 1
+ hostCommand=resolv.conf
+ hostCommandArguments=
+ fifoPipe=/config/fifopipe
+ '[' '!' -p /config/fifopipe ']'
+ echo 'FIFO pipe not found. Is the host helper script running?'
+ echo -e 'Run sudo -E ./fifopipe_hostside.sh "$PATH" from the directory you have bound to /config on your host computer'
+ exit 1
+ hostCommand=hosts
+ hostCommandArguments=
+ fifoPipe=/config/fifopipe
+ '[' '!' -p /config/fifopipe ']'
+ echo 'FIFO pipe not found. Is the host helper script running?'
+ echo -e 'Run sudo -E ./fifopipe_hostside.sh "$PATH" from the directory you have bound to /config on your host computer'
+ exit 1
+ hostCommand=wsl.conf
+ hostCommandArguments=
+ fifoPipe=/config/fifopipe
+ '[' '!' -p /config/fifopipe ']'
+ echo 'FIFO pipe not found. Is the host helper script running?'
+ echo -e 'Run sudo -E ./fifopipe_hostside.sh "$PATH" from the directory you have bound to /config on your host computer'
+ exit 1
+ hostCommand=.wslconfig
+ hostCommandArguments=
+ fifoPipe=/config/fifopipe
+ '[' '!' -p /config/fifopipe ']'
+ echo 'FIFO pipe not found. Is the host helper script running?'
+ echo -e 'Run sudo -E ./fifopipe_hostside.sh "$PATH" from the directory you have bound to /config on your host computer'
+ exit 1
+ hostCommand=windows_hosts
+ hostCommandArguments=
+ fifoPipe=/config/fifopipe
+ '[' '!' -p /config/fifopipe ']'
+ echo 'FIFO pipe not found. Is the host helper script running?'
+ echo -e 'Run sudo -E ./fifopipe_hostside.sh "$PATH" from the directory you have bound to /config on your host computer'
+ exit 1
+ hostCommand=nslookup
+ hostCommandArguments='10.0.1.65.local
Overrides:'
+ fifoPipe=/config/fifopipe
+ '[' '!' -p /config/fifopipe ']'
+ echo 'FIFO pipe not found. Is the host helper script running?'
+ echo -e 'Run sudo -E ./fifopipe_hostside.sh "$PATH" from the directory you have bound to /config on your host computer'
+ exit 1
+ hostCommand=windows_ipconfig
+ hostCommandArguments=
+ fifoPipe=/config/fifopipe
+ '[' '!' -p /config/fifopipe ']'
+ echo 'FIFO pipe not found. Is the host helper script running?'
+ echo -e 'Run sudo -E ./fifopipe_hostside.sh "$PATH" from the directory you have bound to /config on your host computer'
+ exit 1
+ hostCommand=windows_tailscale_version
+ hostCommandArguments=
+ fifoPipe=/config/fifopipe
+ '[' '!' -p /config/fifopipe ']'
+ echo 'FIFO pipe not found. Is the host helper script running?'
+ echo -e 'Run sudo -E ./fifopipe_hostside.sh "$PATH" from the directory you have bound to /config on your host computer'
+ exit 1
+ hostCommand=END_OF_RUN
+ hostCommandArguments=
+ fifoPipe=/config/fifopipe
+ '[' '!' -p /config/fifopipe ']'
+ echo 'FIFO pipe not found. Is the host helper script running?'
+ echo -e 'Run sudo -E ./fifopipe_hostside.sh "$PATH" from the directory you have bound to /config on your host computer'
+ exit 1
Checking your OliveTin-for-Channels installation...
(extended_check=true)

OliveTin Container Version 2026.09.01
OliveTin Docker Compose Version 2025.08.25

----------------------------------------

Checking that your selected Channels DVR server (10.0.1.65:8089) is reachable by URL:
HTTP Status: 200 indicates success...

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1276  100  1276    0     0   461k      0 --:--:-- --:--:-- --:--:--  623k
HTTP Status: 200
Effective URL: http://10.0.1.65:8089/

----------------------------------------

Checking that your selected Channels DVR server's data files (/mnt/10.0.1.65-8089) are accessible:
Folders with the names Database, Images, Imports, Logs, Movies, Streaming and TV should be visible...

total 8
drwxr-xr-x 2 root root 4096 Sep 11 10:11 .
drwxr-xr-x 1 root root 4096 Sep 11 10:12 ..

Docker reports your current DVR_SHARE setting as...
/var/lib/docker/volumes/channels-dvr/_data

If the listed folders are NOT visible, AND you have your Channels DVR and Docker on the same system:

Channels reports this path as...
/volume1/ChannelsDVR

----------------------------------------

Checking that your selected Channels DVR server's log files (/mnt/10.0.1.65-8089_logs) are accessible:
Folders with the names data and latest should be visible...

total 8
drwxr-xr-x 2 root root 4096 Sep 11 09:54 .
drwxr-xr-x 1 root root 4096 Sep 11 10:12 ..

Docker reports your current LOGS_SHARE setting as...
/var/lib/docker/volumes/channels-dvr-logs/_data

If the listed folders are NOT visible, AND you have your Channels DVR and Docker on the same system:

Channels reports this path as...
/var/packages/ChannelsDVR/target/channels-dvr

----------------------------------------

Checking if your Portainer token is working on ports 9000 and/or 9443:

Portainer http response on port 9000 reports version 
Portainer Environment ID for local is 
Portainer https response on port 9443 reports version 2.45.0
Portainer Environment ID for local is 3

----------------------------------------

Here's a list of your current OliveTin-related settings:

HOSTNAME=olivetin
CHANNELS_DVR=10.0.1.65:8089
CHANNELS_DVR_ALTERNATES=
CHANNELS_CLIENTS=
ALERT_SMTP_SERVER=
ALERT_EMAIL_FROM=[Redacted]@
ALERT_EMAIL_PASS=[Redacted]
ALERT_EMAIL_TO=[Redacted]@
UPDATE_YAMLS=true
UPDATE_SCRIPTS=true
PORTAINER_TOKEN=[Redacted]
PORTAINER_HOST=10.0.1.40
PORTAINER_PORT=9443
PORTAINER_ENV=2

----------------------------------------

Here's the contents of /etc/resolv.conf from inside the container:

# Generated by Docker Engine.
# This file can be edited; Docker Engine will not make further changes once it
# has been modified.

nameserver 127.0.0.11
search local
options ndots:0

# Based on host file: '/etc/resolv.conf' (internal resolver)
# ExtServers: [host(192.168.65.7)]
# Overrides: [search]
# Option ndots from: internal

----------------------------------------

Here's the contents of /etc/hosts from inside the container:

127.0.0.1       localhost
::1     localhost ip6-localhost ip6-loopback
fe00::  ip6-localnet
ff00::  ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.18.0.3      olivetin

----------------------------------------

Your WSL Docker-host is running:

 FIFO pipe not found. Is the host helper script running?
Run sudo -E ./fifopipe_hostside.sh "$PATH" from the directory you have bound to /config on your host computer

----------------------------------------

Your WSL Docker-host's /etc/resolv.conf file contains:

FIFO pipe not found. Is the host helper script running?
Run sudo -E ./fifopipe_hostside.sh "$PATH" from the directory you have bound to /config on your host computer

----------------------------------------

Your WSL Docker-host's /etc/hosts file contains:

FIFO pipe not found. Is the host helper script running?
Run sudo -E ./fifopipe_hostside.sh "$PATH" from the directory you have bound to /config on your host computer

----------------------------------------

Your WSL Docker-host's /etc/wsl.conf file contains:

FIFO pipe not found. Is the host helper script running?
Run sudo -E ./fifopipe_hostside.sh "$PATH" from the directory you have bound to /config on your host computer

----------------------------------------

Your Windows PC's %USERPROFILE%\.wslconfig file contains:

FIFO pipe not found. Is the host helper script running?
Run sudo -E ./fifopipe_hostside.sh "$PATH" from the directory you have bound to /config on your host computer


----------------------------------------

Your Windows PC's etc/hosts file contains:

FIFO pipe not found. Is the host helper script running?
Run sudo -E ./fifopipe_hostside.sh "$PATH" from the directory you have bound to /config on your host computer

----------------------------------------

Your Windows PC's DNS server resolution:

FIFO pipe not found. Is the host helper script running?
Run sudo -E ./fifopipe_hostside.sh "$PATH" from the directory you have bound to /config on your host computer

----------------------------------------

Your Windows PC's network interfaces:

FIFO pipe not found. Is the host helper script running?
Run sudo -E ./fifopipe_hostside.sh "$PATH" from the directory you have bound to /config on your host computer

----------------------------------------

Your Tailscale version is:

FIFO pipe not found. Is the host helper script running?
Run sudo -E ./fifopipe_hostside.sh "$PATH" from the directory you have bound to /config on your host computer

----------------------------------------

I'm not sure what "Gordon" did, but it was not correct, or you would pass all of the tests in the basic healthcheck. Being able to deploy without errors is not the same as having a deployment that's error-free.

It's true, that many things will work in OliveTin (and Project One-Click), without having all of your values set correctly. If the Actions you use in OliveTin are functioning, perhaps that's good enough. Just be aware you will see errors with any Action that requires access to your recordings and related files, or to your system logs.

In Portainer Volumes: these are the only volumes and are being used.

  • Fast Channels_db_data
  • Portainer_data
  • Bunch of numbers volume (which also shows up in docker desktop volumes). This is the volume that is linked to channels-dvr & channels-dvr-log volumes.

In docker desktop, the channels dvr & channels-dvr-logs are listed but are marked unused.

What I think I need to do to correct:

  1. Remove Fast Channels using P1C.
  2. Create the channels-dvr & channels-dvr-logs Volumes in Portainer.
  3. Edit the DVR Share to /Volumes/channels-dvr & /Volumes/channels-dvr-logs
  4. Redeploy the stack

Does that sound like the way to go?

This is the error I get:
failed to deploy a stack: compose up operation failed: Error response from daemon: mounts denied: The path /Volumes/channels-dvr is not shared from the host and is not known to Docker. You can configure shared paths from Docker -> Preferences... -> Resources -> File Sharing. See Change your Docker Desktop settings | Docker Docs for more info