OliveTin for Channels: An Interface for Misc Channels DVR Scripts & Tricks

That'd be my preference. Probably just a sort -u on the id collection before generating the m3u?

In the outputCollectionM3U() function, try replacing this line:

[[ -n $collectionChannelM3U ]] && echo -e "$collectionChannelM3U\n" >> $m3uFile

With this line -- and see if it does the job for you:

[[ -n $collectionChannelM3U ]] && echo -e "$collectionChannelM3U\n" | awk '!seen[$0]++' | tr -s '\n' | sed 's/#EXTINF/\n#EXTINF/g' >> $m3uFile

If that works, I'll add it to the next build.

Thank I will test that tonight and let you know!

Note the change of line above I'm having you modify -- fixes slight late-night miscalculation on where to put it...

1 Like

Yep that will work just fine. Cleared my m3u nicely. Thanks!

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:

Thank you!!!!

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:

1 Like

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.

The original creator of basic OliveTin stopped building for arm/v7, so it didn't make sense for me to continue with it either.

My suggestion would be to install the 64bit version of the Raspberry Pi OS on your 3B -- then you should be good to go.

1 Like

Thanks for the quick response. I'm creating a new 64bit OS SD card for the Raspi now.

OK. I've sorted out the Raspi OS issue but I'm struggling now with how exactly to set up my dvr-server volume. I'm running docker/portainer on a separate machine to the Channels DVR server but I can't work out exactly what I need in terms of the portainer volume.

I have read this and the linked thread about file volumes but I'm still unsure. I presume I need to set up a samba share volume for it? If so how exactly as the CIFS option seems to need username and password. IIRC from when I set up access to it from my Linux PC, the samba share to my DVR uses user root but no password.

My DVR server is at 192.168.1.8 and it's samba share is \DVR-SERVER\MEDIA\DVR\

You need to be a valid user to access a Samba share. For example, if your Samba share is on a Windows PC and that PC only has one user setup, then that user's name and password would be what you'd use.

It your Samba share is on a Linux box, then valid Samba users are setup on that box. I'm not sure if root with no password is even possible, without even considering whether it's a good idea (it's not). Here again, if it's a one user box, then that user's credentials are the likely answer.

Generally, looking at the share using Windows or anything with a desktop GUI should give you a good idea of the machine name and share name. For example:

Here are all my shares on //media-server6. Folders /dvr and /ChannelsDVR are where my CDVR recordings and log data are found.

So, I would have Portainer-Volumes created for each using either the hostname or IP and share names of dvr and ChannelsDVR. Whatever you choose to call those Volumes is the name you'd use in the OliveTin stack.

You'd need to uncomment the very bottom section of the compose relating to volumes, and then define each similar to this example:

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 ${DVR_SHARE} to channels-dvr (DVR_SHARE=channels-dvr) in that example.
  channels-dvr:
    external: true
  channels-dvr-logs:
    external: true

Assuming you chose channels-dvr and channels-dvr-logs as your volume names.

1 Like

I'm using the OEM Raspi 4 image for my DVR Server.

In investigating all this I have just discovered that the Channels image comes with Docker built in. So it seems the best way would be to run Olive Tin directly on there as the file access would be direct.

But, I really, really don't want to screw up my Channels server when I don't really know what I'm doing other than blindly following instructions!

Is anyone running Olive Tin on the OEM Channels Raspi 4 image version?

Would the instructions above all still work fine?

If Docker is included, one would assume you can install containers, and both Portainer (required) and OliveTin are just that after all.

The only other requirement I can think of, that would be worth investigating, is what part of the filesystem is available to bind read/write directories to. I'd test it for you myself, but I'm away from my home lab, for about another month.

If you're not opposed to spending a few dollars, one might consider buying another RPi4 as a test platform -- for just this kind of testing/validation.

1 Like

I've built a new bnhf/olivetin:latest (aka bnhf/olivetin:2024.04.11), with some notable interface changes:

There's now a side menu, instead of the "Actions" and "Logs" buttons:

When you initiate an Action, there's a pop-up rather than the previous larger overlay, which is much nicer when more Action buttons are present:

After clicking "Start", another pop-up is displayed with the results of stdout (now called Standard Output), immediately visible. No need to go to the logs to view it:

There is still a Logs option on the side menu:

And in Logs, there's now a search option:

Overall, some nice changes I think, and there are numerous additional options (based on upstream OliveTin) that can be taken advantage of in the future.

It's possible some may need to "clear images and files" in their browser after updating. Also, in situations where you're expecting an icon to change color, a manual browser refresh is currently required (working on that one). Enjoy!

1 Like

Great idea. I don't even need to spend anything as I have a spare Raspi4 that I got to try out as an Android TV client but it wasn't any good. I'll fire it up as a second Channels DVR and try out Olive Tin on that.

What browser are you using ?
I get gibberish ...

Chrome -- but your screenshot looks OK to me. Where's the gibberish?

EDIT: The icons on the left are from Organizr -- if that's what you're talking about...

Look at the Actions side menu. nothing there.