Though it is possible to do this via the command line, I don't support it that way -- only via Portainer. There are enough variables with this kind of thing without dealing with all of the different ways it can be run. Given the "stack" nature of this project, and the multiple environment variables Portainer makes things easier -- and more cross-platform.
So, you've got Docker Desktop running, and have added the Portainer extension -- if I remember correctly. Now's the time time to fire-up Portainer's excellent WebUI, and paste in the following to Portainer-Stacks:
version: '3.9'
services:
olivetin:
image: bnhf/olivetin:${TAG} # Add the tag like latest or test to the environment variables below
container_name: 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:
- 1337:1337
environment:
- CHANNELS_DVR=${CHANNELS_DVR} # Add your Channels DVR server in the form hostname:port or ip: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
volumes:
- ${HOST_DIR}/olivetin:/config # Add the parent directory on your Docker you'd like to use
- ${DVR_SHARE}:/mnt/local-server-8089 # 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:
- 8080: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
#channels-dvr:
#external: true
And then, in the environment section of Portainer -- in Advanced mode, paste in the following:
You'll need to modify the environment variables to suit your environment, and tweak the "volumes" section ONLY of the docker-compose to your setup. Use the comments in the docker-compose to help you with the env vars.
Based on what you posted above, your environment variables might look something like this. Note that I'm assuming your LAN domain is localdomain, also hostnames can never have spaces -- so double-check those. And, you need to figure out the full path to your Channels DVR data directory (after the /mnt/c I put in):
And your Volumes section of the compose, should have this modification. The dash instead of a colon shown below is on-purpose, and required:
volumes:
- ${HOST_DIR}/olivetin:/config # Add the parent directory on your Docker you'd like to use
- ${DVR_SHARE}:/mnt/xxx.xxx.xxx.xxx-8089 # This can either be a Docker volume or a host directory that's connected via Samba or NFS to your Channels DVR network share
New version of OliveTin-for-Channels pushed as bnhf/olivetin:latest (aka bnhf/olivetin:2024.03.20). This adds a new Healthcheck Action, that should prove useful to diagnose setup issues related to Docker, Portainer, WSL, Tailscale and OliveTin.
Here's some background on the motivation for creating this, and samples of the ouput:
I've worked with several people, particularly Windows Docker Desktop users, where their setups haven't been "quite right". Rather than continuing to attempt to address these issues one-by-one, I've created a new OliveTin Action that's intended to root out some common problems with both Windows and Linux docker installations.
This may also work with Mac Docker Desktop installations, but I have no way to test that -- help there would be appreciated.
It also serves as a quick way to confirm that one's OliveTin environment variables are set correctly. It's intended that this data is safe to post, as anything sensitive is automatically redacted by the script.
Here's what the output looks like when your Docker host is running Windows:
First the basic test, which can be run without using the "helper script" on the host:
Windows basic healthcheck details
Checking your OliveTin installation...
----------------------------------------
Checking that your selected Channels DVR server (media-server6: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
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 1276 100 1276 0 0 1696 0 --:--:-- --:--:-- --:--:-- 1694
HTTP Status: 200
Effective URL: http://media-server6:8089/
----------------------------------------
Checking that your selected Channels DVR server's data files (/mnt/media-server6-8089) are accessible:
Folders with the names Database, Images, Imports, Logs, Movies, Streaming and TV should be visible...
total 12
drwxr-xr-x 2 root root 8192 Dec 31 01:52 .
drwxr-xr-x 1 root root 4096 Mar 20 11:16 ..
drwxr-xr-x 2 root root 0 Dec 24 11:45 .config
drwxr-xr-x 2 root root 0 Dec 24 03:07 .pki
drwxr-xr-x 2 root root 0 Mar 20 10:18 Database
drwxr-xr-x 2 root root 0 Mar 20 09:42 Images
drwxr-xr-x 2 root root 0 Apr 8 2023 Imports
drwxr-xr-x 2 root root 0 Apr 9 2023 Logs
drwxr-xr-x 2 root root 0 Feb 10 18:55 Movies
drwxr-xr-x 2 root root 0 Dec 15 02:54 PlayOn
drwxr-xr-x 2 root root 0 Mar 19 18:43 Streaming
drwxr-xr-x 2 root root 0 Mar 19 16:35 TV
----------------------------------------
Here's a list of your current OliveTin-related settings:
CHANNELS_DVR=media-server6:8089
CHANNELS_DVR_ALTERNATES=utheater-pc:8089
CHANNELS_CLIENTS=appletv4k firestick-master
UPDATE_YAMLS=false
UPDATE_SCRIPTS=false
----------------------------------------
Here's the contents of /etc/resolv.conf from inside the container:
search tail[Redacted].ts.net
nameserver 127.0.0.11
options ndots:0
----------------------------------------
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.30.0.2 olivetin
And then with the helper script running on the host, which creates a temporary "pipe" between the container and the host. This script can be easily inspected, if desired, to confirm it's safe to run. In particular, you can see that only specific commands can be executed on the host. In addition, the pipe is automatically terminated after the test run:
Here's what that script looks like:
fifopipe_hostside.sh script
#!/bin/bash
parentPath="$1"
[[ -n $parentPath ]] && export PATH="$parentPath"
fifoPipe="./fifopipe"
[ ! -p "$fifoPipe" ] && mkfifo "$fifoPipe"
echo -e "\nThis script will be terminated from the container side once the OliveTin healthcheck has finished running..."
finish() {
rm $fifoPipe
}
trap finish EXIT
while true; do
if read -r hostCommand < "$fifoPipe"; then
case "$hostCommand" in
"tailscale netcheck")
tailscale netcheck > "$fifoPipe"_latest.log 2>&1
;;
"tailscale status")
tailscale status > "$fifoPipe"_latest.log 2>&1
;;
"WSL_DISTRO_NAME")
echo "$WSL_DISTRO_NAME" > "$fifoPipe"_latest.log 2>&1
;;
"LINUX_DISTRO_NAME")
cat /etc/os-release > "$fifoPipe"_latest.log 2>&1
;;
"resolv.conf")
cat /etc/resolv.conf > "$fifoPipe"_latest.log 2>&1
;;
"hosts")
cat /etc/hosts > "$fifoPipe"_latest.log 2>&1
;;
"wsl.conf")
cat /etc/wsl.conf > "$fifoPipe"_latest.log 2>&1
;;
".wslconfig")
cat /mnt/c/Users/$(whoami)/.wslconfig > "$fifoPipe"_latest.log 2>&1
;;
"windows_hosts")
cat /mnt/c/Windows/System32/drivers/etc/hosts > "$fifoPipe"_latest.log 2>&1
;;
nslookup*)
cmd.exe /c $hostCommand > "$fifoPipe"_latest.log 2>&1
;;
"windows_ipconfig")
cmd.exe /c ipconfig /all > "$fifoPipe"_latest.log 2>&1
;;
"END_OF_RUN")
exit 0
;;
*)
echo "Unrecognized command: $hostCommand" > "$fifoPipe"_latest.log
;;
esac
else
echo "Error reading from FIFO pipe" > "$fifoPipe"_latest.log
fi
sleep 1
done
When that script is executed on your Docker host, from the directory you have bound to /config, it'll look like this while it's waiting for the Action to be executed:
Helper script command line execution example
slayer@Convertible-PC3:/data2/olivetin$ sudo -E ./fifopipe_hostside.sh "$PATH"
This script will be terminated from the container side once the OliveTin healthcheck has finished running...
And the extended output, which includes a few key files on the host, looks like this:
Windows extended healthcheck details
Checking your OliveTin installation...
----------------------------------------
Checking that your selected Channels DVR server (media-server6: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 1743 0 --:--:-- --:--:-- --:--:-- 1743
HTTP Status: 200
Effective URL: http://media-server6:8089/
----------------------------------------
Checking that your selected Channels DVR server's data files (/mnt/media-server6-8089) are accessible:
Folders with the names Database, Images, Imports, Logs, Movies, Streaming and TV should be visible...
total 12
drwxr-xr-x 2 root root 8192 Dec 31 01:52 .
drwxr-xr-x 1 root root 4096 Mar 20 11:16 ..
drwxr-xr-x 2 root root 0 Dec 24 11:45 .config
drwxr-xr-x 2 root root 0 Dec 24 03:07 .pki
drwxr-xr-x 2 root root 0 Mar 20 10:18 Database
drwxr-xr-x 2 root root 0 Mar 20 09:42 Images
drwxr-xr-x 2 root root 0 Apr 8 2023 Imports
drwxr-xr-x 2 root root 0 Apr 9 2023 Logs
drwxr-xr-x 2 root root 0 Feb 10 18:55 Movies
drwxr-xr-x 2 root root 0 Dec 15 02:54 PlayOn
drwxr-xr-x 2 root root 0 Mar 19 18:43 Streaming
drwxr-xr-x 2 root root 0 Mar 19 16:35 TV
----------------------------------------
Here's a list of your current OliveTin-related settings:
CHANNELS_DVR=media-server6:8089
CHANNELS_DVR_ALTERNATES=utheater-pc:8089
CHANNELS_CLIENTS=appletv4k firestick-master
UPDATE_YAMLS=false
UPDATE_SCRIPTS=false
----------------------------------------
Here's the contents of /etc/resolv.conf from inside the container:
search tail[Redacted].ts.net
nameserver 127.0.0.11
options ndots:0
----------------------------------------
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.30.0.2 olivetin
----------------------------------------
Your WSL Docker-host is running:
Debian
----------------------------------------
Your WSL Docker-host's /etc/resolv.conf file contains:
# This file was automatically generated by WSL. To stop automatic generation of this file, add the following entry to /etc/wsl.conf:
# [network]
# generateResolvConf = false
nameserver 172.22.192.1
----------------------------------------
Your WSL Docker-host's /etc/hosts file contains:
# This file was automatically generated by WSL. To stop automatic generation of this file, add the following entry to /etc/wsl.conf:
# [network]
# generateHosts = false
127.0.0.1 localhost
127.0.1.1 Convertible-PC3. Convertible-PC3
192.168.110.130 encoder_48007
192.168.110.49 encoder_23393
192.168.110.224 battery-warmer
192.168.110.66 omr-vps
192.168.110.9 raspberrypi11
192.168.110.167 raspberrypi12
192.168.100.161 host.docker.internal
192.168.100.161 gateway.docker.internal
127.0.0.1 kubernetes.docker.internal
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
----------------------------------------
Your WSL Docker-host's /etc/wsl.conf file contains:
[boot]
systemd=true
----------------------------------------
Your Windows PC's %USERPROFILE%\.wslconfig file contains:
cat: /mnt/c/Users/root/.wslconfig: No such file or directory
----------------------------------------
Your Windows PC's etc/hosts file contains:
## Added by WSU for hostname resolution over Tailscale
192.168.110.130 encoder_48007
192.168.110.49 encoder_23393
192.168.110.224 battery-warmer
192.168.110.66 omr-vps
192.168.110.9 raspberrypi11
192.168.110.167 raspberrypi12
# Added by Docker Desktop
192.168.100.161 host.docker.internal
192.168.100.161 gateway.docker.internal
# To allow the same kube context to work on the host and the container:
127.0.0.1 kubernetes.docker.internal
# End of section
----------------------------------------
Your Windows PC's DNS server resolution:
'\\wsl.localhost\Debian\data2\olivetin'
CMD.EXE was started with the above path as the current directory.
UNC paths are not supported. Defaulting to Windows directory.
Server: magicdns.localhost-tailscale-daemon
Address: 100.100.100.100
Name: media-server6.tail[Redacted].ts.net
Address: 100.[Redacted]
----------------------------------------
Your Windows PC's network interfaces:
'\\wsl.localhost\Debian\data2\olivetin'
CMD.EXE was started with the above path as the current directory.
UNC paths are not supported. Defaulting to Windows directory.
Windows IP Configuration
Host Name . . . . . . . . . . . . : Convertible-PC3
Primary Dns Suffix . . . . . . . :
Node Type . . . . . . . . . . . . : Hybrid
IP Routing Enabled. . . . . . . . : No
WINS Proxy Enabled. . . . . . . . : No
DNS Suffix Search List. . . . . . : tail[Redacted].ts.net
lan
Unknown adapter Tailscale:
Connection-specific DNS Suffix . : tail[Redacted].ts.net
Description . . . . . . . . . . . : Tailscale Tunnel
Physical Address. . . . . . . . . : [Redacted]
DHCP Enabled. . . . . . . . . . . : No
Autoconfiguration Enabled . . . . : Yes
IPv6 Address. . . . . . . . . . . : [Redacted]
Link-local IPv6 Address . . . . . : [Redacted]
IPv4 Address. . . . . . . . . . . : 100.[Redacted]
Subnet Mask . . . . . . . . . . . : 255.255.255.255
Default Gateway . . . . . . . . . : ::
0.0.0.0
DNS Servers . . . . . . . . . . . : 100.100.100.100
NetBIOS over Tcpip. . . . . . . . : Disabled
Connection-specific DNS Suffix Search List :
tail[Redacted].ts.net
Ethernet adapter Ethernet 2:
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : VirtualBox Host-Only Ethernet Adapter
Physical Address. . . . . . . . . : [Redacted]
DHCP Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes
Link-local IPv6 Address . . . . . : [Redacted]
Autoconfiguration IPv4 Address. . : 169.254.73.40(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.0.0
Default Gateway . . . . . . . . . :
DHCPv6 IAID . . . . . . . . . . . : [Redacted]
DHCPv6 Client DUID. . . . . . . . : [Redacted]
NetBIOS over Tcpip. . . . . . . . : Enabled
Unknown adapter Local Area Connection:
Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : TAP-Windows Adapter V9
Physical Address. . . . . . . . . : [Redacted]
DHCP Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes
Wireless LAN adapter Local Area Connection* 3:
Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : Microsoft Wi-Fi Direct Virtual Adapter #3
Physical Address. . . . . . . . . : [Redacted]
DHCP Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes
Wireless LAN adapter Local Area Connection* 4:
Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : Microsoft Wi-Fi Direct Virtual Adapter #4
Physical Address. . . . . . . . . : [Redacted]
DHCP Enabled. . . . . . . . . . . : No
Autoconfiguration Enabled . . . . : Yes
Wireless LAN adapter Wi-Fi:
Connection-specific DNS Suffix . : lan
Description . . . . . . . . . . . : Intel(R) Wi-Fi 6E AX210 160MHz
Physical Address. . . . . . . . . : [Redacted]
DHCP Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes
Link-local IPv6 Address . . . . . : [Redacted]
IPv4 Address. . . . . . . . . . . : 192.168.8.161(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Lease Obtained. . . . . . . . . . : Monday, March 18, 2024 7:22:30 AM
Lease Expires . . . . . . . . . . : Wednesday, March 20, 2024 7:47:03 PM
Default Gateway . . . . . . . . . : 192.168.8.1
DHCP Server . . . . . . . . . . . : 192.168.8.1
DHCPv6 IAID . . . . . . . . . . . : [Redacted]
DHCPv6 Client DUID. . . . . . . . : [Redacted]
DNS Servers . . . . . . . . . . . : 192.168.8.1
NetBIOS over Tcpip. . . . . . . . : Enabled
Ethernet adapter Bluetooth Network Connection:
Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : Bluetooth Device (Personal Area Network)
Physical Address. . . . . . . . . : [Redacted]
DHCP Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes
Ethernet adapter vEthernet (Default Switch):
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : Hyper-V Virtual Ethernet Adapter
Physical Address. . . . . . . . . : [Redacted]
DHCP Enabled. . . . . . . . . . . : No
Autoconfiguration Enabled . . . . : Yes
Link-local IPv6 Address . . . . . : [Redacted]
IPv4 Address. . . . . . . . . . . : 172.27.192.1(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.240.0
Default Gateway . . . . . . . . . :
DHCPv6 IAID . . . . . . . . . . . : [Redacted]
DHCPv6 Client DUID. . . . . . . . : [Redacted]
NetBIOS over Tcpip. . . . . . . . : Enabled
Ethernet adapter vEthernet (WSL (Hyper-V firewall)):
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : Hyper-V Virtual Ethernet Adapter #2
Physical Address. . . . . . . . . : [Redacted]
DHCP Enabled. . . . . . . . . . . : No
Autoconfiguration Enabled . . . . : Yes
Link-local IPv6 Address . . . . . : [Redacted]
IPv4 Address. . . . . . . . . . . : 172.22.192.1(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.240.0
Default Gateway . . . . . . . . . :
DHCPv6 IAID . . . . . . . . . . . : [Redacted]
DHCPv6 Client DUID. . . . . . . . : [Redacted]
NetBIOS over Tcpip. . . . . . . . : Enabled
Ethernet adapter vEthernet (WSLCore):
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : Hyper-V Virtual Ethernet Adapter #3
Physical Address. . . . . . . . . : [Redacted]
DHCP Enabled. . . . . . . . . . . : No
Autoconfiguration Enabled . . . . : Yes
Link-local IPv6 Address . . . . . : [Redacted]
IPv4 Address. . . . . . . . . . . : 172.30.240.1(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.240.0
Default Gateway . . . . . . . . . :
DHCPv6 IAID . . . . . . . . . . . : [Redacted]
DHCPv6 Client DUID. . . . . . . . : [Redacted]
NetBIOS over Tcpip. . . . . . . . : Enabled
Here's what the output looks like when your Docker host is running Linux:
Linux basic healthcheck details
Checking your OliveTin installation...
----------------------------------------
Checking that your selected Channels DVR server (media-server6: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://media-server6:8089/
----------------------------------------
Checking that your selected Channels DVR server's data files (/mnt/media-server6-8089) are accessible:
Folders with the names Database, Images, Imports, Logs, Movies, Streaming and TV should be visible...
total 12
drwxr-xr-x 2 1000 1000 8192 Dec 31 01:52 .
drwxr-xr-x 1 root root 4096 Mar 20 11:36 ..
drwxr-xr-x 2 1000 1000 0 Dec 24 11:45 .config
drwxr-xr-x 2 1000 1000 0 Dec 24 03:07 .pki
drwxr-xr-x 2 1000 1000 0 Mar 20 10:18 Database
drwxr-xr-x 2 1000 1000 0 Mar 20 09:42 Images
drwxr-xr-x 2 1000 1000 0 Apr 8 2023 Imports
drwxr-xr-x 2 1000 1000 0 Apr 9 2023 Logs
drwxr-xr-x 2 1000 1000 0 Feb 10 18:55 Movies
drwxr-xr-x 2 1000 1000 0 Dec 15 02:54 PlayOn
drwxr-xr-x 2 1000 1000 0 Mar 19 18:43 Streaming
drwxr-xr-x 2 1000 1000 0 Mar 19 16:35 TV
----------------------------------------
Here's a list of your current OliveTin-related settings:
CHANNELS_DVR=media-server6:8089
CHANNELS_DVR_ALTERNATES=utheater-pc:8089
CHANNELS_CLIENTS=appletv4k firestick-master
UPDATE_YAMLS=false
UPDATE_SCRIPTS=false
----------------------------------------
Here's the contents of /etc/resolv.conf from inside the container:
search tail[Redacted].ts.net
nameserver 127.0.0.11
options ndots:0
----------------------------------------
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
192.168.16.3 356c775c52a1
And, the extended output when the helper script is running on the host:
Linux extended healthcheck details
Checking your OliveTin installation...
----------------------------------------
Checking that your selected Channels DVR server (media-server6: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://media-server6:8089/
----------------------------------------
Checking that your selected Channels DVR server's data files (/mnt/media-server6-8089) are accessible:
Folders with the names Database, Images, Imports, Logs, Movies, Streaming and TV should be visible...
total 12
drwxr-xr-x 2 1000 1000 8192 Dec 31 01:52 .
drwxr-xr-x 1 root root 4096 Mar 20 11:36 ..
drwxr-xr-x 2 1000 1000 0 Dec 24 11:45 .config
drwxr-xr-x 2 1000 1000 0 Dec 24 03:07 .pki
drwxr-xr-x 2 1000 1000 0 Mar 20 10:18 Database
drwxr-xr-x 2 1000 1000 0 Mar 20 09:42 Images
drwxr-xr-x 2 1000 1000 0 Apr 8 2023 Imports
drwxr-xr-x 2 1000 1000 0 Apr 9 2023 Logs
drwxr-xr-x 2 1000 1000 0 Feb 10 18:55 Movies
drwxr-xr-x 2 1000 1000 0 Dec 15 02:54 PlayOn
drwxr-xr-x 2 1000 1000 0 Mar 19 18:43 Streaming
drwxr-xr-x 2 1000 1000 0 Mar 19 16:35 TV
----------------------------------------
Here's a list of your current OliveTin-related settings:
CHANNELS_DVR=media-server6:8089
CHANNELS_DVR_ALTERNATES=utheater-pc:8089
CHANNELS_CLIENTS=appletv4k firestick-master
UPDATE_YAMLS=false
UPDATE_SCRIPTS=false
----------------------------------------
Here's the contents of /etc/resolv.conf from inside the container:
search tail[Redacted].ts.net
nameserver 127.0.0.11
options ndots:0
----------------------------------------
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
192.168.16.3 356c775c52a1
----------------------------------------
Your Docker-host is running:
"Debian GNU/Linux 11 (bullseye)"
----------------------------------------
Your Docker-host's /etc/resolv.conf file contains:
# resolv.conf(5) file generated by tailscale
# For more info, see https://tailscale.com/s/resolvconf-overwrite
# DO NOT EDIT THIS FILE BY HAND -- CHANGES WILL BE OVERWRITTEN
nameserver 100.100.100.100
search tail[Redacted].ts.net
----------------------------------------
Your Docker-host's /etc/hosts file contains:
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
# --- BEGIN PVE ---
192.168.110.111 htpc6.tail[Redacted].ts.net htpc6
# --- END PVE ---
@bnhf I think there is a bug in the m3u generation for a channels collection. If I have two sources for a channel, say VH1, and I add VH1 to a collection I want to generate a remote m3u for, it dupes the channel in the file.
Might be an issue if the channel-id used in the source is not unique between sources.
A Channel Collection just contains the channel-id's. No source devices or channel numbers.
But if it is just a list of channel ids in the collection, should be able to get a unique list right? Would there ever be a situation where you would want two different channels tied up to the same channel number?
@bnhf I think I see the spot in Olivetin that could be updated. Potentially a checkbox to remove duplicate channel ids before generating the m3u file?
New bnhf/olivetin:latest (aka bnhf/olivetin:2024.04.06) pushed this morning with the above M3U duplicates filter added. Plus, some additional error-handling has been added for Project One-Click installs.
If you're jumping on the Project One-Click bandwagon, be sure you're using the latest and greatest docker-compose for OliveTin which is available in the first post of this thread! Or here:
New OliveTin-for-Channels pushed with support for log alerts via e-mail. Also, I've reorganized the Action buttons in an attempt to group them by type. For those with multiple DVRs, your primary DVR will be pre-selected in all "dvr" dropdowns now.
The new "E-Mail Log Alerts" Action is described in more detail in the link. ATM, that's the only place to get the updated docker-compose and sample env vars -- until I get a chance to update other places where the OliveTin compose can be found:
I thought I would put a tentative hand into the Olive Tin as it seems to have some very useful contents.
I set up a spare Raspi3B and installed Docker and Portainer. I then followed the instructions on here for setting up Olive Tin, but when I try to create the stack I get a message "no matching manifest for linux/arm/v7 in the manifest list entries" Am I totally screwed trying to run it on a Raspi3B or is there some sort of workaround? Googling the issue didn't seem to give any definitive answer.