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

We're good on readlink /etc/localtime though, yes? Works on the Debians, and according to Skynet, works on MacOS too.

OLD Synology NAS

# readlink /etc/localtime
/usr/share/zoneinfo/Canada/Pacific

NEW Synology NAS

# readlink /etc/localtime
/usr/share/zoneinfo/US/Pacific

exec'd into the OliveTin container with TZ set

root@olivetin:/# date
Tue Mar 25 20:07:37 PDT 2025
root@olivetin:/# echo $TZ
PST8PDT,M3.2.0,M11.1.0

exec'd into the OliveTin container with TZ commented out

      #- TZ=${TZ} # Add your local timezone in standard linux format. E.G. US/Eastern, US/Central, US/Mountain, US/Pacific, etc.
root@olivetin:/# date
Tue Mar 25 20:17:36 PDT 2025
root@olivetin:/# echo $TZ

root@olivetin:/# 

exec'd into the OliveTin container with TZ and volume directory bindings commented out

      #- TZ=${TZ} # Add your local timezone in standard linux format. E.G. US/Eastern, US/Central, US/Mountain, US/Pacific, etc.
      #- /etc/localtime:/etc/localtime:ro # works on Synology
      #- /etc/TZ:/etc/timezone:ro         # works on Synology
root@olivetin:/# date
Wed Mar 26 03:25:28 UTC 2025
root@olivetin:/# echo $TZ

root@olivetin:/# 
1 Like

I just signed up for Frndly and cannot get the bridge to work. I get this error every time:

JSON response from http://192.168.150.242:9000/api/stacks/create/standalone/string?endpointId=:
404 page not found

The only values I enter are my username and password. The password does have an ! in it.

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)