OliveTin EZ-Start: A New Way to Deploy OliveTin-for-Channels Using Just Two Environment Variables to Get Started!

Something is up with your settings, given that your endpointid shows as a colon.

Could you run the OliveTin Post-Install Healthcheck and post the results here please?

Checking your OliveTin-for-Channels installation...
(extended_check=false)

OliveTin Container Version 2025.04.22
OliveTin Docker Compose Version


Checking that your selected Channels DVR server (192.168.150.242: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

0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 1276 100 1276 0 0 28355 0 --:--:-- --:--:-- --:--:-- 28355
HTTP Status: 200
Effective URL: http://192.168.150.242:8089/


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

total 16
drwxr-xr-x 9 root root 288 Apr 19 19:52 .
drwxr-xr-x 1 root root 4096 Apr 22 17:55 ..
-rw-r--r-- 1 root root 10244 Apr 15 21:31 .DS_Store
drwxr-xr-x 33 root root 1056 Apr 23 20:53 Database
drwxr-xr-x 5 root root 160 Apr 13 07:11 Images
drwxr-xr-x 6 root root 192 Feb 2 17:37 Imports
drwxr-xr-x 4 root root 128 Feb 16 19:30 Logs
drwxr-xr-x 27 root root 864 Apr 23 20:29 Streaming
drwxr-xr-x 3 root root 96 Apr 19 19:52 TV

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

Channels reports this path as...
/Volumes/External Drive/Channels DVR


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

total 16
drwxr-xr-x 9 root root 288 Apr 19 19:52 .
drwxr-xr-x 1 root root 4096 Apr 22 17:55 ..
-rw-r--r-- 1 root root 10244 Apr 15 21:31 .DS_Store
drwxr-xr-x 33 root root 1056 Apr 23 20:53 Database
drwxr-xr-x 5 root root 160 Apr 13 07:11 Images
drwxr-xr-x 6 root root 192 Feb 2 17:37 Imports
drwxr-xr-x 4 root root 128 Feb 16 19:30 Logs
drwxr-xr-x 27 root root 864 Apr 23 20:29 Streaming
drwxr-xr-x 3 root root 96 Apr 19 19:52 TV

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

Channels reports this path as...
Support/ChannelsDVR


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

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


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

HOSTNAME=olivetin
CHANNELS_DVR=192.168.150.242:8089
CHANNELS_DVR_ALTERNATES=
CHANNELS_CLIENTS=192.168.150.231 192.168.150.194 146.12.197.19 192.168.150.177
ALERT_SMTP_SERVER=smtp.gmail.com:587
ALERT_EMAIL_FROM=[Redacted]@gmail.com
ALERT_EMAIL_PASS=[Redacted]
ALERT_EMAIL_TO=[Redacted]@gmail.com
UPDATE_YAMLS=true
UPDATE_SCRIPTS=true
PORTAINER_TOKEN=[Redacted]
PORTAINER_HOST=192.168.150.242
PORTAINER_PORT=9443
PORTAINER_ENV=


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

The lack of a value here indicates you're not running a recent version of the OliveTin Docker Compose.

Olivetin can see you're running Portainer, but can't determine this important value.

Be sure you're running the latest Docker Compose, and the latest version of the OliveTin container.

I think I am. I use watchtower to update. I got the Docker running now by setting up through terminal but get a 505 error when I try to add the sources

Isn't watchtower the way to update?

Yes, as far as the container is concerned, but there are also occasional updates to the OliveTin Docker Compose.

The latest, with it's publish date can be found here:

Make sure you check the sample env vars for anything new required as well.

This is what I have in Portainer. I can't tell what I'm missing.

UPDATE_YAMLS=true
[email protected]
ALERT_SMTP_SERVER=smtp.gmail.com:587
PORTAINER_HOST=192.168.150.242
PORTAINER_PORT=9443
CHANNELS_CLIENTS=192.168.150.231 192.168.150.194 146.12.197.19 192.168.150.177
PORTAINER_TOKEN=ptr_TP3q1aaHghJfhw94AMoa6ulP04EI93wfbogZlsKSb3c=
UPDATE_SCRIPTS=true
TZ=US/Central
[email protected]
CHANNELS_DVR=192.168.150.242:8089
ALERT_EMAIL_PASS=xxxxx
PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
GPG_KEY=7169605F62C751356D054A26A821E680E5FA6305
PYTHON_VERSION=3.13.3
PYTHON_SHA256=40f868bcbdeb8149a3149580bb9bfd407b3321cd48f0be631af955ac92c0e041

Trying spinning it up with the latest Docker compose, and those env vars.

Stop the stack, and paste the new compose into the editor followed by "Update the stack". Use the "Repull and re-deploy" slider as well

Thanks for the help!

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.

I'm a newbie trying to run this on an Asustor NAS, with Portainer and the CDVR both running on the same system. I had previously tried to get OliveTin working manually, but never got it going properly, so I removed the containers and stack from Portainer, and tried using this EZ-Start procedure.

After selecting the OliveTin Environment Variables Generator/Tester Action, I get Standard Error:

cat: /config/olivetin.token: No such file or directory

The Standard Output was as follows:

TAG=latest
DOMAIN=
HOST_PORT=1337
CHANNELS_DVR_HOST=192.168.50.40
CHANNELS_DVR_PORT=8089
CHANNELS_CLIENTS=
ALERT_SMTP_SERVER=
ALERT_EMAIL_FROM=
ALERT_EMAIL_PASS=
ALERT_EMAIL_TO=
UPDATE_YAMLS=true
UPDATE_SCRIPTS=true
TZ=
HOST_DIR=/data
DVR_SHARE=/volume1/MediaBank/Channels DVR
LOGS_SHARE=/usr/local/AppCentral/ChannelsDVR/channels-dvr
TUBEARCHIVIST_SHARE=/volume1/MediaBank/Channels DVR
DVR2_SHARE=
LOGS2_SHARE=
TUBEARCHIVIST2_SHARE=
DVR3_SHARE=
LOGS3_SHARE=
TUBEARCHIVIST3_SHARE=
HOST_SFS_PORT=8080
FOLDER=/web
PORTAINER_TOKEN=
PORTAINER_HOST=192.168.50.40
PORTAINER_PORT=9443
PORTAINER_ENV=2
PERSISTENT_LOGS=false

The instructions in this thread are for those that already have Portainer installed. Since you removed Portainer too (hopefully including the portainer_data volume), this is the set of instructions to follow:

Oops, I omitted that I have already reinstalled Portainer CE from the Asustor App Central, and have several stacks and packages running, so I'd prefer not to have to remove everthing again. That's why I'm not using the "Next Generation".

What should I do next?

Your env vars are looking pretty good, with just two that need attention.

First:

HOST_DIR=/data

Using /data as a value here is fine, as long as this is allowed by the OS on your ASUSTOR.

Second:

PORTAINER_TOKEN=

You need a PORTAINER_TOKEN. There's an Action on the Project One-Click page to create one. Be sure to copy-and-paste the value to a safe place, as you'll only see it when it's created.

Then, you can run the OliveTin Environment Variables Generator/Tester again and adjust the value for HOST_DIR (if needed), and PORTAINER_TOKEN. Copy the new set of env vars shown in Standard Output, stop the OliveTin stack, and paste this new set of values in the Environment variables section of the Portainer-Stacks editor in Advanced mode.

Click on Update the stack, and then run the OliveTin Post-Install Healthcheck to make sure everything looks correct. From there, you should be good-to-go.

Getting the error JSON response from https://192.168.0.20:9443/api/stacks/create/standalone/string?endpointId=: {"message":"Invalid query parameter: endpointId","details":"Missing query parameter"} false

I verified the api url and token are valid. Any ideas what could be causing this?

Looks like you're missing a PORTAINER_ENV value. If you're to the point where you're running the full version of OliveTin (not still in the midst of the EZ-Start process), can you post your OliveTin Post-Install Healthcheck? (anything sensitive is automatically redacted)

Thanks here is the Healthcheck: BTW I've tried PORTAINER_ENV 0-3 all return same error.

Checking your OliveTin-for-Channels installation...
(extended_check=true)

OliveTin Container Version 2025.07.21
OliveTin Docker Compose Version 2025.03.26

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

Checking that your selected Channels DVR server (192.168.0.51: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

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100  1276  100  1276    0     0   138k      0 --:--:-- --:--:-- --:--:--  138k
HTTP Status: 200
Effective URL: http://192.168.0.51:8089/

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

Checking that your selected Channels DVR server's data files (/mnt/192.168.0.51-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 Jul 24 21:37 .
drwxr-xr-x 1 root root 4096 Jul 27 15:36 ..
drwxr-xr-x 2 root root    0 Jul 26 22:05 Database
drwxr-xr-x 2 root root    0 Jul 20 12:49 Images
drwxr-xr-x 2 root root    0 Jul 24 16:52 Imports
drwxr-xr-x 2 root root    0 Sep  5  2020 Live TV
drwxr-xr-x 2 root root    0 Jun 27  2022 Logs
drwxr-xr-x 2 root root    0 Oct  6  2023 Movies
drwxr-xr-x 2 root root    0 Jul  5 22:10 Streaming
drwxr-xr-x 2 root root    0 Jul  9 10:53 TV

Docker reports your current DVR_SHARE setting as...
/mnt/data/supervisor/media/DVR/Channels

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

Channels reports this path as...
Z:\Recorded TV\Channels

When using WSL with a Linux distro and Docker Desktop, it's recommended to use...
/mnt/z/Recorded TV/Channels

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

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

total 4
drwxr-xr-x 2 root root    0 Jun 27  2022 .
drwxr-xr-x 1 root root 4096 Jul 27 15:36 ..
drwxr-xr-x 2 root root    0 May 12 04:24 comskip
drwxr-xr-x 2 root root    0 May 12 04:24 recording

Docker reports your current LOGS_SHARE setting as...
/mnt/data/supervisor/media/DVR/Channels/Logs

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

Channels reports this path as...
C:\ProgramData\ChannelsDVR

When using WSL with a Linux distro and Docker Desktop, it's recommended to use...
/mnt/c/ProgramData/ChannelsDVR

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

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.32.0
Portainer Environment ID for local is 

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

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

HOSTNAME=olivetin
CHANNELS_DVR=192.168.0.51:8089
CHANNELS_DVR_ALTERNATES=another-server:8089 a-third-server:8089
CHANNELS_CLIENTS=appletv4k firestick-master amazon-aftkrt
ALERT_SMTP_SERVER=smtp.gmail.com:587
ALERT_EMAIL_FROM=[Redacted]@gmail.com
ALERT_EMAIL_PASS=[Redacted]
ALERT_EMAIL_TO=[Redacted]@gmail.com
UPDATE_YAMLS=true
UPDATE_SCRIPTS=true
PORTAINER_TOKEN=[Redacted]
PORTAINER_HOST=192.168.0.20
PORTAINER_PORT=9443
PORTAINER_ENV=1

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

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 lan
options ndots:0

# Based on host file: '/etc/resolv.conf' (internal resolver)
# ExtServers: [host(192.168.0.1) host(2603:7000:b500:15f8::1)]
# Overrides: []
# 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.19.0.2	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 pretty sure I see the problem in my code. Give me a bit and I'll push a fix...

1 Like

If you're comfortable editing a Bash script, could you edit lines 15 & 16 in portainerstack.sh that look like this:

portainerEnv=$(curl -s -k -H "X-API-Key: $portainerToken" "http://$portainerHost:9000/api/endpoints" | jq '.[] | select(.Name=="local") | .Id') \
  && [[ -z $portainerEnv ]] && portainerEnv=$(curl -s -k -H "X-API-Key: $portainerToken" "https://$portainerHost:$portainerPort/api/endpoints" | jq '.[] | select(.Name=="local") | .Id')`

And make this small change (get rid of backslash at the end of the first line, and delete the && at the beginning of the second):

portainerEnv=$(curl -s -k -H "X-API-Key: $portainerToken" "http://$portainerHost:9000/api/endpoints" | jq '.[] | select(.Name=="local") | .Id')
  [[ -z $portainerEnv ]] && portainerEnv=$(curl -s -k -H "X-API-Key: $portainerToken" "https://$portainerHost:$portainerPort/api/endpoints" | jq '.[] | select(.Name=="local") | .Id')

This should correct a logic flaw (on my part) that affects people with only https enabled in Portainer. Let me know if that works.