Post moved based on topic split above
Hi! I have been experimenting with the "Project One-Click" action for "Create a Chrome-Capture-for-Channels Stack in Portainer". I initiated with all of the variables as default values other than changing my local timezone (US/Pacific).
I am receiving the following error:
JSON response from http://192.168.1.100:9000/api/stacks?type=2&method=string&endpointId=2:
{"message":"Invalid request payload","details":"invalid character ' ' in string escape code"}
false
I see it too. I'll work on it.
@jsfullam The cc4c invalid character issue should be fixed in :latest (2024.07.23). Pushed just now.
Just updated Olivetin and launched the cc4c action with all defaults with the exception of time zone. The cc4c container is currently running in Portainer.
I'll try to figure out how to get the rest of cc4c into play tomorrow.
There is an experimental docker compose that includes the ability to set the "viewport" to a lower resolution, plus some addition "args" that one user is reporting good results with -- along with success with Intel Quicksysnc support.
If you do use the new compose, and have success with it, I'll incorporate it into Project One-Click. It's here if you decide to give it a try:
I think that trying this experimental docker compose for cc4c might be over my head. For now, I'm hoping to get a basic installation of cc4c working. Preferably on my Synology NAS, or on a Windows PC on the same network as my NAS.
Just tried it out and YES! GReat Job!!!! Worked like a charm!
Total Noob here. Is there anyway to get help on installing Olivetin?
I have downloaded the version for Windows, but am totally stuck. I have never messed with Docker before.
Thanks for the help
First thing you want to do is install WSL2 with a Linux distro -- I'd recommend Debian. Then install Docker Desktop for Windows, and enable "integration" with your default distro. No need to select any additional distro:
Thanks for the help
There's more to do -- let me know when you've completed those first steps.
Hi. I installed olivetin and went to the project one click to try to create the plex for channels stack, but i keep getting an error. What did i do wrong? Here is the error message:
exit status 1
+ dvr=192.168.68.55:8089
++ basename /config/plex-for-channels.sh
+ extension=plex-for-channels.sh
+ extension=plex-for-channels
+ cp /config/plex-for-channels.env /tmp
+ envFile=/tmp/plex-for-channels.env
+ [[ -n 192.168.68.55 ]]
+ extensionURL=192.168.68.55:7779
+ [[ 10000 == \# ]]
+ cdvrStartingChannel=10000
+ [[ -n 10000 ]]
+ cdvrIgnoreM3UNumbers=ignore
+ curl -s -o /dev/null http://192.168.68.55:7779
+ envVars=("TAG=$2" "HOST_PORT=$3" "PLEX_PORT=$4" "PLEX_CODE=$5" "CDVR_STARTING_CHANNEL=$6")
+ printf '%s\n' TAG=latest HOST_PORT=7779 PLEX_PORT=7777 PLEX_CODE=local CDVR_STARTING_CHANNEL=10000
+ sed -i /=#/d /tmp/plex-for-channels.env
+ /config/portainerstack.sh plex-for-channels
+ stackName=plex-for-channels
+ portainerHost=192.168.68.55
+ curl -s -o /dev/null http://192.168.68.55:9000
+ portainerURL='https://192.168.68.55:9443/api/stacks?type=2&method=string&endpointId=2'
+ portainerToken=ptr_04ckjy0u1H17MFv6OcyZAqRHc80fPqBFh6dJnfNTIqs=
+ cp /config/plex-for-channels.yaml /tmp
+ stackFile=/tmp/plex-for-channels.yaml
+ envFile=/tmp/plex-for-channels.env
++ grep DVR_SHARE= /tmp/plex-for-channels.env
++ grep -v /
++ awk -F= '{print $2}'
+ dockerVolume=
++ grep VOL_EXTERNAL= /tmp/plex-for-channels.env
++ grep -v '#'
++ awk -F= '{print $2}'
+ volumeExternal=
++ grep VOL_NAME= /tmp/plex-for-channels.env
++ grep -v '#'
++ awk -F= '{print $2}'
+ volumeName=
+ [[ -n '' ]]
++ sed 's/\\/\\\\/g' /tmp/plex-for-channels.yaml
++ sed 's/"/\\"/g'
++ awk '{printf "%s\\n", $0}'
+ stackContent='version: '\''3.9'\''\nservices:\n # GitHub home for this project with setup instructions: https://github.com/jgomez177/plex-for-channels\n # Docker container home for this project: https://ghcr.io/jgomez177/plex-for-channels\n plex-for-channels:\n image: ghcr.io/jgomez177/plex-for-channels:${TAG}\n container_name: plex-for-channels\n ports:\n - ${HOST_PORT}:${PLEX_PORT}\n environment:\n - PLEX_PORT=${PLEX_PORT}\n restart: unless-stopped\n\n # Default Environment variables can be found below under stderr -- copy and paste into Portainer-Stacks Environment variables section in Advanced mode\n'
+ stackEnvVars='['
+ IFS==
+ read -r key value
+ stackEnvVars='[{"name": "TAG", "value": "latest"},'
+ IFS==
+ read -r key value
+ stackEnvVars='[{"name": "TAG", "value": "latest"},{"name": "HOST_PORT", "value": "7779"},'
+ IFS==
+ read -r key value
+ stackEnvVars='[{"name": "TAG", "value": "latest"},{"name": "HOST_PORT", "value": "7779"},{"name": "PLEX_PORT", "value": "7777"},'
+ IFS==
+ read -r key value
+ stackEnvVars='[{"name": "TAG", "value": "latest"},{"name": "HOST_PORT", "value": "7779"},{"name": "PLEX_PORT", "value": "7777"},{"name": "PLEX_CODE", "value": "local"},'
+ IFS==
+ read -r key value
+ stackEnvVars='[{"name": "TAG", "value": "latest"},{"name": "HOST_PORT", "value": "7779"},{"name": "PLEX_PORT", "value": "7777"},{"name": "PLEX_CODE", "value": "local"},{"name": "CDVR_STARTING_CHANNEL", "value": "10000"},'
+ IFS==
+ read -r key value
+ stackEnvVars='[{"name": "TAG", "value": "latest"},{"name": "HOST_PORT", "value": "7779"},{"name": "PLEX_PORT", "value": "7777"},{"name": "PLEX_CODE", "value": "local"},{"name": "CDVR_STARTING_CHANNEL", "value": "10000"}]'
++ cat
+ stackJSON='{
"Name": "plex-for-channels",
"SwarmID": "",
"StackFileContent": "version: '\''3.9'\''\nservices:\n # GitHub home for this project with setup instructions: https://github.com/jgomez177/plex-for-channels\n # Docker container home for this project: https://ghcr.io/jgomez177/plex-for-channels\n plex-for-channels:\n image: ghcr.io/jgomez177/plex-for-channels:${TAG}\n container_name: plex-for-channels\n ports:\n - ${HOST_PORT}:${PLEX_PORT}\n environment:\n - PLEX_PORT=${PLEX_PORT}\n restart: unless-stopped\n\n # Default Environment variables can be found below under stderr -- copy and paste into Portainer-Stacks Environment variables section in Advanced mode\n",
"Env": [{"name": "TAG", "value": "latest"},{"name": "HOST_PORT", "value": "7779"},{"name": "PLEX_PORT", "value": "7777"},{"name": "PLEX_CODE", "value": "local"},{"name": "CDVR_STARTING_CHANNEL", "value": "10000"}]
}'
+ echo 'JSON response from https://192.168.68.55:9443/api/stacks?type=2&method=string&endpointId=2:'
++ curl -k -X POST -H 'Content-Type: application/json' -H 'X-API-Key: ptr_04ckjy0u1H17MFv6OcyZAqRHc80fPqBFh6dJnfNTIqs=' -d '{
"Name": "plex-for-channels",
"SwarmID": "",
"StackFileContent": "version: '\''3.9'\''\nservices:\n # GitHub home for this project with setup instructions: https://github.com/jgomez177/plex-for-channels\n # Docker container home for this project: https://ghcr.io/jgomez177/plex-for-channels\n plex-for-channels:\n image: ghcr.io/jgomez177/plex-for-channels:${TAG}\n container_name: plex-for-channels\n ports:\n - ${HOST_PORT}:${PLEX_PORT}\n environment:\n - PLEX_PORT=${PLEX_PORT}\n restart: unless-stopped\n\n # Default Environment variables can be found below under stderr -- copy and paste into Portainer-Stacks Environment variables section in Advanced mode\n",
"Env": [{"name": "TAG", "value": "latest"},{"name": "HOST_PORT", "value": "7779"},{"name": "PLEX_PORT", "value": "7777"},{"name": "PLEX_CODE", "value": "local"},{"name": "CDVR_STARTING_CHANNEL", "value": "10000"}]
}' 'https://192.168.68.55:9443/api/stacks?type=2&method=string&endpointId=2'
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:02 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:03 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:04 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:05 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:06 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:07 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:08 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:09 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:10 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:11 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:12 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:13 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:14 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:15 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:16 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:17 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:18 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:19 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:20 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:21 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:22 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:23 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:24 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:25 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:26 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:27 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:28 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:29 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:30 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:31 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:32 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:33 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:34 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:35 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:36 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:37 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:38 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:39 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:40 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:41 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:42 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:43 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:44 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:45 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:46 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:47 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:48 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:49 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:50 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:51 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:52 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:53 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:54 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:55 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:56 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:57 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:58 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:59 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:01:00 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:01:01 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:01:02 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:01:03 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:01:04 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:01:05 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:01:06 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:01:07 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:01:08 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:01:09 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:01:10 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:01:11 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:01:12 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:01:13 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:01:14 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:01:15 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:01:16 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:01:17 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:01:18 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:01:19 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:01:20 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:01:21 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:01:22 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:01:23 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:01:24 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:01:25 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:01:26 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:01:27 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:01:28 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:01:29 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:01:30 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:01:31 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:01:32 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:01:33 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:01:34 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:01:35 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:01:36 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:01:37 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:01:38 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:01:39 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:01:40 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:01:41 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:01:42 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:01:43 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:01:44 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:01:45 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:01:46 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:01:47 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:01:48 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:01:49 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:01:50 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:01:51 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:01:52 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:01:53 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:01:54 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:01:55 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:01:56 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:01:57 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:01:58 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:01:59 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:02:00 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:02:01 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:02:02 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:02:03 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:02:04 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:02:05 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:02:06 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:02:07 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:02:08 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:02:09 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:02:10 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:02:11 --:--:-- 0
curl: (28) Failed to connect to 192.168.68.55 port 9443: Connection timed out
+ portainerResponse=
+ [[ -z '' ]]
+ exit 1
+ [[ 1 == 1 ]]
+ exit 1
It doesn't look like Portainer was reachable at either http://192.168.68.55:9000 or https://192.168.68.55:9443. Are you able to access Portainer from either (ideally both) of those URLs in a browser?
Yes, i can access both in a browser.
BTW, welcome to the Channels forum! Please post the OliveTin Stack you're using and your env vars. When including logs, yamls, code or anything of that nature, be sure to use 3 backticks before and after to define a code block -- it's much easier to read.
I used this olive tin docker-compose:
version: '3.9'
services:
olivetin: # This docker-compose requires little or no editing. Set the variables in the Environment section of Portainer-Stacks.
# 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_DVR_ALTERNATES} # 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
- 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.
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
#- ${DVR2_SHARE}:/mnt/remote-server-8089 # Note that these volume mounts should always be to /mnt/hostname-port or /mnt/ip-port (dash rather than a colon between)
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
Environmental variables:
TAG=latest
DOMAIN=local
HOST_PORT=1337
CHANNELS_DVR_HOST=IP address of QNAP NAS
CHANNELS_DVR_PORT=8089
CHANNELS_DVR2_HOST=another-server
CHANNELS_DVR2_PORT=8089
CHANNELS_CLIENTS=shield pixel 7a Susie's 2nd Fire TV Susie's Fire TV Susie's 3rd Fire TV P30 Susie's 4th Fire TV
ALERT_SMTP_SERVER=smtp.gmail.com:587
ALERT_EMAIL_FROM=my gmail address
ALERT_EMAIL_PASS=gmail password
ALERT_EMAIL_TO=my gmail address
UPDATE_YAMLS=true
UPDATE_SCRIPTS=true
TZ=US/Pacific
HOST_DIR=/data
DVR_SHARE=/mnt/dvr
LOGS_SHARE=/mnt/channelsdvr
HOST_SFS_PORT=8500
FOLDER=/web
PORTAINER_TOKEN= the token number that i created in portainer
PORTAINER_HOST= QNAP NAS IP address
These are backtick marks
```
Paste in between the lines \ <>
```
Got it. Will use those going forward. Thanks.
That stack is slightly outdated, though I don't think that's the problem, go ahead and update the stack and any env var changes:
version: '3.9'
services:
olivetin: # This docker-compose requires little or no editing. Set the Environment variables section of Portainer.
# 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.
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.
#- ${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.
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 docker volumes named channels-dvr and channels-dvr-logs, with CIFS or NFS, to bind to /mnt/${CHANNELS_DVR_HOST}-${CHANNELS_DVR_PORT} and /mnt/${CHANNELS_DVR_HOST}-${CHANNELS_DVR_PORT}_logs inside the container. Set DVR_SHARE=channels-dvr and LOGS_SHARE=channels-dvr-logs in this example.
#channels-dvr:
#external: true
#channels-dvr-logs:
#external: true
TAG=latest
DOMAIN=tailxxxxx.ts.net
HOST_PORT=1337
CHANNELS_DVR_HOST=local-server
CHANNELS_DVR_PORT=8089
CHANNELS_DVR2_HOST=another-server
CHANNELS_DVR2_PORT=8089
CHANNELS_CLIENTS=appletv4k-den firestick-bedroom
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/Mountain
HOST_DIR=/data
DVR_SHARE=/mnt/dvr
LOGS_SHARE=/mnt/channelsdvr
HOST_SFS_PORT=8080
FOLDER=/web
PORTAINER_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
PORTAINER_HOST=docker-host
Also, once the stack is running again, if you could run the OliveTin Post-Install Healthcheck and post the results here.