Project One-Click: All-in-One Installations of Docker Extensions and CDVR Custom Channels

You probably need to correct these directories

Do I need to copy the new stack info before updating the stack?
edit...
I copy/pasted the info from post #1, and OliveTin says version 2025.02.22.

Thanks.

ChannelsDVR location is on same Windows 11 PC as Docker. The location is C:\ProgramData2\DVR

What should the values be?

You should be able use C:/ProgramData2/DVR for your LOGS_SHARE value.

I've updated everything and got a new token, the Olivetin post install health is green. I am getting this now,

JSON response from http://192.168.7.109:9000/api/stacks/create/standalone/string?endpointId=3:
{"Id":20,"Name":"samsung-tvplus-for-channels","Type":2,"EndpointId":3,"SwarmId":"","EntryPoint":"docker-compose.yml","Env":[{"name":"TAG","value":"latest"},{"name":"HOST_PORT","value":"8182"},{"name":"REGIONS","value":"us"},{"name":"TZ","value":"US/Mountain"}],"ResourceControl":{"Id":11,"ResourceId":"3_samsung-tvplus-for-channels","SubResourceIds":[],"Type":6,"UserAccesses":[],"TeamAccesses":[],"Public":false,"AdministratorsOnly":true,"System":false},"Status":1,"ProjectPath":"/data/compose/20","CreationDate":1740270976,"CreatedBy":"felix","UpdateDate":0,"UpdatedBy":"","AdditionalFiles":null,"AutoUpdate":null,"Option":null,"GitConfig":null,"FromAppTemplate":false,"Namespace":""}
true
true
version: '3.9'
services:
  olivetin: # This docker-compose typically requires no editing. Use the Environment variables section of Portainer to set your values.
    # 2025.02.21
    # GitHub home for this project: https://github.com/bnhf/OliveTin.
    # Docker container home for this project with setup instructions: https://hub.docker.com/repository/docker/bnhf/olivetin.
    image: bnhf/olivetin:${TAG} # Add the tag like latest or test to the environment variables below.
    container_name: olivetin
    hostname: olivetin
    dns_search: ${DOMAIN} # For Tailscale users using Magic DNS, add your Tailnet (tailxxxxx.ts.net) to use hostnames for remote nodes, otherwise use your local domain name.
    ports:
      - ${HOST_PORT}:1337
    environment:
      - CHANNELS_DVR=${CHANNELS_DVR_HOST}:${CHANNELS_DVR_PORT} # Add your Channels DVR server in the form CHANNELS_DVR_HOST=<hostname or ip> and CHANNELS_DVR_PORT=<port>.
      #- CHANNELS_DVR_ALTERNATES=${CHANNELS_DVR2_HOST}:${CHANNELS_DVR2_PORT} # Space separated list of alternate Channels DVR servers to choose from in the form hostname:port or ip:port.
      - CHANNELS_CLIENTS=${CHANNELS_CLIENTS} # Space separated list of Channels DVR clients you'd like notifications sent to in the form hostname or IP.
      - ALERT_SMTP_SERVER=${ALERT_SMTP_SERVER} # SMTP server to use for sending alert e-mails. smtp.gmail.com:587 for example.
      - ALERT_EMAIL_FROM=${ALERT_EMAIL_FROM} # Sender address for alert e-mails.
      - ALERT_EMAIL_PASS=${ALERT_EMAIL_PASS} # SMTP "app" password established through GMail or Yahoo Mail. Do not use your everyday e-mail address.
      - ALERT_EMAIL_TO=${ALERT_EMAIL_TO} # Recipient address for alert e-mails.
      - UPDATE_YAMLS=${UPDATE_YAMLS} # Set this to true to update config.yaml.
      - UPDATE_SCRIPTS=${UPDATE_SCRIPTS} # Set this to true to update all included scripts.
      - TZ=${TZ} # Add your local timezone in standard linux format. E.G. US/Eastern, US/Central, US/Mountain, US/Pacific, etc.
      - PORTAINER_TOKEN=${PORTAINER_TOKEN} # Generate via <username> dropdown (upper right of WebUI), "My account", API tokens.
      - PORTAINER_HOST=${PORTAINER_HOST} # Hostname or IP of the Docker host you're running Portainer on.
      - PORTAINER_PORT=${PORTAINER_PORT} # https port you're running Portainer on. 9443 is the default.
      - PORTAINER_ENV=3 # Set this is if you're using an alternate Portainer Environment for some reason. 2 is the default.
    volumes:
      - ${HOST_DIR}/olivetin:/config # Add the parent directory on your Docker you'd like to use.
      - ${DVR_SHARE}:/mnt/${CHANNELS_DVR_HOST}-${CHANNELS_DVR_PORT} # This can either be a Docker volume or a host directory that's connected via Samba or NFS to your Channels DVR network share.
      - ${LOGS_SHARE}:/mnt/${CHANNELS_DVR_HOST}-${CHANNELS_DVR_PORT}_logs # This can either be a Docker volume or a host directory that's connected via Samba or NFS to your Channels DVR logs network share.
      - ${TUBEARCHIVIST_SHARE}:/mnt/${CHANNELS_DVR_HOST}-${CHANNELS_DVR_PORT}_ta # This can either be a Docker volume or a host directory that's connected via Samba or NFS to your TubeArchivist videos network share.
      #- ${DVR2_SHARE}:/mnt/${CHANNELS_DVR2_HOST}-${CHANNELS_DVR2_PORT} # Note that these volume mounts should always be to /mnt/hostname-port or /mnt/ip-port (dash rather than a colon between).
      #- ${LOGS2_SHARE}:/mnt/${CHANNELS_DVR2_HOST}-${CHANNELS_DVR2_PORT}_logs # This can either be a Docker volume or a host directory that's connected via Samba or NFS to your Channels DVR logs network share.
      #- ${TUBEARCHIVIST2_SHARE}:/mnt/${CHANNELS_DVR2_HOST}-${CHANNELS_DVR2_PORT}_ta # This can either be a Docker volume or a host directory that's connected via Samba or NFS to your TubeArchivist videos network share.
      - /var/run/docker.sock:/var/run/docker.sock
    restart: unless-stopped

  static-file-server:
    image: halverneus/static-file-server:latest
    container_name: static-file-server
    dns_search: ${DOMAIN}
    ports:
      - ${HOST_SFS_PORT}:8080
    environment:
      - FOLDER=${FOLDER}
    volumes:
      - ${HOST_DIR}/olivetin/data:${FOLDER}
    restart: unless-stopped

#volumes: # use this section if you've setup a docker volume named channels-dvr, with CIFS or NFS, to bind to /mnt/dvr inside the container. Set ${HOST_DIR} to channels-dvr (HOST_DIR=channels_dvr) in that example.
  #channels-dvr:
    #external: true
  #channels-dvr-logs:
    #external: true
  #tubearchivist:
    #external: true

TAG=latest
DOMAIN=local
HOST_PORT=1337
CHANNELS_DVR_HOST=192.168.7.109
CHANNELS_DVR_PORT=8089
CHANNELS_DVR2_HOST=
CHANNELS_DVR2_PORT=
CHANNELS_CLIENTS=appletv4k-livingroom 192.168.7.187
ALERT_SMTP_SERVER=smtp.gmail.com:587
ALERT_EMAIL_FROM=felix92810@gmail.com
ALERT_EMAIL_PASS=XXXXXXXXXXX
ALERT_EMAIL_TO=felix92810@gmail.com
UPDATE_YAMLS=true
UPDATE_SCRIPTS=true
TZ=US/Arizona
HOST_DIR=/volume1/docker
DVR_SHARE=/volume1/chDVRtve
LOGS_SHARE=/volume1/docker/channelsdvr
TUBEARCHIVIST_SHARE=/volume1/docker/channelsdvr
HOST_SFS_PORT=8080
FOLDER=/web
PORTAINER_HOST=192.168.7.109
PORTAINER_TOKEN=ptr_nqHKJ846qp57qIx1fTDGkmCv3usycSUzV4pOP/Ubvgo=
PORTAINER_PORT=9443

That's what you want to see! Looks good.

I edited my post for an error message when I run the Pluto one click command.

Your most recent post is for SamsungTVPlus, and indicates success.

Ahh I see, I had to give it a bit of time. Thank you for your help and dedication in creating this project!!

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

Version 2025.02.22

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

Checking that your selected Channels DVR server (192.168.29.131: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   207k      0 --:--:-- --:--:-- --:--:--  249k
HTTP Status: 200
Effective URL: http://192.168.29.131:8089/

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

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

total 4
drwxr-xr-x 2 root root   40 Feb 22 17:35 .
drwxr-xr-x 1 root root 4096 Feb 22 19:44 ..

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:\ProgramData2\DVR

When using a Windows path in Portainer, change the backslashes to slashes like this...
C:/ProgramData2/DVR

When using WSL with a Linux distro and Docker Desktop, it's also possible to use...
/mnt/c/ProgramData2/DVR

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

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

total 4
drwxrwxrwx 1 root root  512 Feb 22 19:43 .
drwxr-xr-x 1 root root 4096 Feb 22 19:44 ..
drwxrwxrwx 1 root root  512 Feb 22 18:59 Database
drwxrwxrwx 1 root root  512 Feb 21 16:49 Images
drwxrwxrwx 1 root root  512 Feb 21 16:49 Imports
drwxrwxrwx 1 root root  512 Feb 21 17:46 Streaming
drwxrwxrwx 1 root root  512 Feb 22 19:44 olivetin

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 a Windows path in Portainer, change the backslashes to slashes like this...
C:/ProgramData/ChannelsDVR

When using WSL with a Linux distro and Docker Desktop, it's also possible 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 2.27.0
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.29.131:8089
CHANNELS_DVR_ALTERNATES=
CHANNELS_CLIENTS=192.168.29.245
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.29.131
PORTAINER_PORT=
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: [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::0	ip6-localnet
ff00::0	ip6-mcastprefix
ff02::1	ip6-allnodes
ff02::2	ip6-allrouters
172.19.0.2	olivetin

As for organizr,

this is my docker compose,

version: '3.9'
services:
  organizr:
    image: organizr/organizr:latest
    container_name: organizr
    hostname: organizr
    ports:
      - 81:80
    environment:
      - PUID=nobody
      - PGID=nobody
      - TZ=US/Arizona
    volumes:
      - /volume1/docker/organizr/data/organizr:/config
    restart: unless-stopped

But when I go to http://htpc6/, I get nothing.

That's the hostname for my Docker/Portainer host.

You should try:

http://192.168.29.131:81
1 Like

Looks like these two should be:

DVR_SHARE=C:/ProgramData2/DVR
LOGS_SHARE=C:/ProgramData/ChannelsDVR

Looks like you have Portainer installed only for http on port 9000, so I'll need to make a modification to my Healthcheck script to account for that -- as I'm trying to confirm your Portainer Environment ID.

@Channels2021 That's done, so Re-pull and redeploy again, after making the other changes above -- and then re-post the healthcheck.

He should also add this env var

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

Version 2025.02.22

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

Checking that your selected Channels DVR server (192.168.29.131: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   249k      0 --:--:-- --:--:-- --:--:--  249k
HTTP Status: 200
Effective URL: http://192.168.29.131:8089/

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

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

total 4
drwxrwxrwx 1 root root  512 Feb 22 19:43 .
drwxr-xr-x 1 root root 4096 Feb 22 20:45 ..
drwxrwxrwx 1 root root  512 Feb 22 18:59 Database
drwxrwxrwx 1 root root  512 Feb 21 16:49 Images
drwxrwxrwx 1 root root  512 Feb 21 16:49 Imports
drwxrwxrwx 1 root root  512 Feb 21 17:46 Streaming
drwxrwxrwx 1 root root  512 Feb 22 19:44 olivetin

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:\ProgramData2\DVR

When using a Windows path in Portainer, change the backslashes to slashes like this...
C:/ProgramData2/DVR

When using WSL with a Linux distro and Docker Desktop, it's also possible to use...
/mnt/c/ProgramData2/DVR

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

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

total 8
drwxrwxrwx 1 root root  512 Feb 21 16:54 .
drwxr-xr-x 1 root root 4096 Feb 22 20:45 ..
-rwxrwxrwx 1 root root  838 Feb 21 16:54 Channels DVR Server.lnk
drwxrwxrwx 1 root root  512 Feb 21 17:29 data
drwxrwxrwx 1 root root  512 Feb 21 16:54 latest

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 a Windows path in Portainer, change the backslashes to slashes like this...
C:/ProgramData/ChannelsDVR

When using WSL with a Linux distro and Docker Desktop, it's also possible 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 2.27.0
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.29.131:8089
CHANNELS_DVR_ALTERNATES=
CHANNELS_CLIENTS=192.168.29.245
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.29.131
PORTAINER_PORT=
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: [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::0	ip6-localnet
ff00::0	ip6-mcastprefix
ff02::1	ip6-allnodes
ff02::2	ip6-allrouters
172.19.0.2	olivetin
TAG=latest
DOMAIN=local
HOST_PORT=1337
CHANNELS_DVR_HOST=192.168.29.131
CHANNELS_DVR_PORT=8089
CHANNELS_DVR2_HOST=
CHANNELS_DVR2_PORT=
CHANNELS_CLIENTS=192.168.29.245
ALERT_SMTP_SERVER=smtp.gmail.com:587
ALERT_EMAIL_FROM=username@gmail.com
ALERT_EMAIL_PASS=xxxxxxxxxxxxxxxx
ALERT_EMAIL_TO=username@gmail.com
UPDATE_YAMLS=true
UPDATE_SCRIPTS=true
TZ=US/Eastern
HOST_DIR=/data
DVR_SHARE=C:/ProgramData2/DVR
LOGS_SHARE=C:/ProgramData/ChannelsDVR
TUBEARCHIVIST_SHARE=/mnt/dvr
HOST_SFS_PORT=8080
FOLDER=/web
PORTAINER_TOKEN=ptr_RoCJi+tUL6FZFHvZysHNd849xqbcREDDuQlKbqg8sl4=
PORTAINER_HOST=192.168.29.131
PORTAINER_PORT=9443

I would change to this

HOST_DIR=C:/ProgramData

And unless you use TUBEARCHIVIST and know where you want those videos

TUBEARCHIVIST_SHARE=