Showing posts with label mariadb. Show all posts
Showing posts with label mariadb. Show all posts

Friday, May 29, 2026

Caravan (Part 1) - A New Plan For A New Place

My partner and I are looking for a new place to be.  Being the computing-dependent nerd that I am, I want to be able to have all the services I depend on in our current place available in the new place as soon as there's power and Internet.  To that end, I decided what I ought to do is build a road-ready rack with a firewall and a few computers in it.  Once we close on the new place and get utilities turned on, I can pop the rack in there, and be up and running in an hour or 2.

Some background -  About a year ago, I had switched from all my "vital services" being on VMs on a Proxmox cluster to hosting them on a couple RasPi 5s.  I consolidated a lot.  Where before I had separate VMs for my RMVOD, Icecast2, Desktop, food inventory web app, file services, and so on, I decided I could do a lot more with a lot less CPU and memory overhead if I just had it all running on one 16GB RasPi 5.  I have a second RP5 that is the Jenkins host and hosts backup media.  Actually there's a third RP5 that acts as a bastion server and rack console.  This resulted in using a lot less power and generating a lot less heat.  The file services are facilitated by 4 x 8TB disks configured in a RAID5 arrangement in a USB3 enclosure, viz:

 


Can be got here: https://www.amazon.com/dp/B0DD3GZSGJ 

 That USB3 4-bay HDD enclosure hangs off the one main 16GB RasPi 5, and holds my audio and video stashes, my personal file share, and various sundry other bits and bobs.  Other than that, and USB connections to printers and backup media, basically my whole "infrastructure" is handled by 3 Raspberry Pi 5s and a tiny Netgate box doing the routing. 

  This transition has worked out well.  My plan is to more or less replicate this success but in a portable package.

 Enter Caravan

 The name "caravan" was just meant as a nod to portability and the kind of "home away from home" self-contained nature of a camping trailer or RV.  I settled on a 6-space rack enclosure, such that it could handle a switch, a shelf for a Netgate 1100, 2U for a RasPi enclosure, and a PDU.

I ended up getting this enclosure:

 


Can be got here:  https://www.amazon.com/dp/B0CZ41ZHD6

 It comes with screws for the rails (it takes 10-32 screws, but prefers them short), so that's handy, but there's a few shortcuts taken by the manufacturer that might cause frustration.  The plastic stinks -- it off-gasses... It claims to be HDPE... and maybe it is, but I've never come across HDPE stinking like this.  Screws holding the rack rails to the enclosure are poorly placed.  Things like that.  On the bright side it's cheap, and I'm not going on tour with Aerosmith (or whoever the kids like today), so extreme toughness and/or ATA-certification is not important for me in this application.  Surviving an 8-hour car ride is the thing. 

 The switch I settled on is a simple TP-link 24-port unmanaged gigabit switch (TL-SG1024S). It fits in 1U, comes with the rack ears and is under a hundred bucks. 

 Can be got here: https://www.amazon.com/dp/B0779R9LJ3 

 The PDU is kind of an odd choice.  I went with one from Pyle.  Yeah, Pyle.  Normally, Tripp-Lite has been my go-to for rack PDUs in my personal/home stuff.  They're pretty bulletproof, and I've found them reliable.  In this instance, tho, I was anticipating having a bunch of wall-wart power supplies (because no one has figured out how to do a rack-mount muli-Pi power supply yet, apparently) and 1U PDUs with traditional outlets are just not happy with that.  This Pyle unit has all pigtails in the back.  It really is a thing of beauty.  Viz:

 


Can be got here: https://www.amazon.com/dp/B072RC5NZQ 

 The big deal, tho, is the enclosure/mount for the Raspberry Pis.  I wanted something that would accommodate the PCIe SSD capability offered by the Pi 5.  I also wanted to be able to stuff it with RasPis, because... who knows what kind of goofy shenanigans I might get up to?  I went with a GeekPi unit which stands the RasPis on their side, and has a daughter board for each of the 10 "caddies" which uses pogo pins for power delivery and some GPIO connections, and connects to the PCIe connector on the Pi for M.2 SSD support via flat-flex.  This enclosure holds up to 10 RasPi 5s.  My only big gripe with this thing is that the screws for the caddies aren't captive.  The daughter boards seem to work great, and packing up to 40 cores of Raspberry Pi goodness into 2U is pretty sweet.  The daughter boards move the power connection to the front panel, so easy power on/off is right there.

 


 Can be got here: https://www.amazon.com/dp/B0DQL2N6V9

I have the rack assembled and 7 of the RasPi slots occupied.  Now I'm building out services. I've currently got 1 16GB, 2 8GB and 4 4GB RasPis mounted.  One of the 8GB units has a 1TB SSD setup as a MariaDB server, with the OS on a MicroSD, and the data on the SSD.  The other 8GB unit also has a 1TB SSD, but the OS is installed on it.  This one is serving as a Desktop machine with xrdp installed.  I have one of the 4GB RasPis serving as a bastion server and rack console, and the other 3 4GB units have not been assigned, although I expect one of them will be a file & print server (and maybe identity) and one will likely be media streaming.  I have designs for setting up local email, chat, groupware, an Asterisk PBX, and a few other services.  The 16GB unit will host most of the dynamic web stuff (minus database and file needs).  I haven't worked it all out yet, and I have some room to grown in the GeekPi enclosure.

More to come

There's plenty more to do and a lot more decisions to take.  I'll update as this progresses, but I thought it might be nice to offer some of the stuff I've done so far in case anybody's considering a similar project.

I think that's all for now. 

 

 

Wednesday, October 16, 2024

RMVOD r0.9.3 is here!

 Hi folks!  

A view of RMVOD's List/Search tab with new updates and TV Series Playlists expanded



Well, TV Series Playlists are here, as well as some fixes to Recommendations.  Here are the release notes:


RIBBBITmedia Video On Demand - Tag 0.9.3 (Get it here)

Introduces TV Series Playlists, consolidates Playlists and Recent Episodes to List/Search tab, some bug fixes.

TV Series Playlists

This is a new feature which provides the ability to create (and edit) playlists of TV Series, such that the user's watch history is scanned to find the most-recently watched episode of each series, and plays the next (one) episode for each series listed in the Playlist, in the order listed.  Playlists can be set to repeat a series when the end is reached, and continue playing the Playlist over and over until the user stops it.  If a Series is set to not repeat once the end is reached, it will be skipped and no longer appear in the sequence of played episodes, unless the user manually initiates playback of an earlier episode in the series.  In that case the next time the Playlist is invoked, it will resume playing the previously-ended Series from the episode following the one manually played. Also, a playlist can be associated with a single user or set to be "sitewide", meaning all users on the Server have access to it.  Users can create and edit playlists, and the editing takes place in the Edit tab.  Any information in the Edit tab at the time the user opts to create or edit a Playlist will be wiped out.  Note that the behavior of the Playist edit function is different in that the "Update" button must be pushed for the changes to be posted to the server.


Rework of left-side of List/Search tab

The left side of the List/Search tab used to have the "Search Factors" and "Recommendations Quick Lists", which spilled off the bottom of the tab, requiring a scroll bar.  The "TV Series Playlist" and "Recent Episodes" lists have been integrated into the left side of the List/Search tab, using a collapsible tree view widget.  By default, the "Search Factors" section is exposed, but the caret-in-square-braces at the left of the section label can be clicked to expand or collapse each section, and if it does spill off the bottom of the tab, a scroll bar will automatically appear just for the left side of the tab, meaning that the list area on the  right of the tab no longer "double-scrolls".  The  "Recent Episodes" section has been refactored to make more efficient use of screen space, and displays the relevant information in three columns, rather than 5.  The name of the Series, the Episode last played (which is a button to replay that Episode), and the word "Next" (which is a link to play the next Episode in the Series.


Significant bug fixes

For internal Javascript links/buttons, added  "cursor: pointer" to style for the functional spans.
"Artifact Play Progress" functionality begun, but not finished.  No sharp edges exposed to user.
Fixed some session cookie persistence issues

Tuesday, August 29, 2023

RMVOD v0.9.1 is HERE! It's a DOOZIE!

 Hi folks!

So, I've created a new tag on the RIBBBITmedia VideoOnDemand code repo, and this one undoes the whole "feature complete for release 1.0" thing.  Many new features.  Oops!

In this tag you'll find several new features.  Notably:

0) Config file.  I'd planned for some time to implement this, and this seemed a really good time to do it.

1) Recommendations (Recs).  This is a new tab in the RMVOD screen, which provides a "carousel-like" interface for browsing artifacts based on connections to viewing trends on the server.  The Recs interface shows artifact details in a floating box when the artifact's image is clicked.  For TV Series artifacts, options are presented to start playing the series from the beginning or to select a season, and browse episodes to select one to play.  Recommendations are cached on the server and expire after a period of days set in the API's config file.  There is a "Refresh Recs" link on the Settings tab to force a refresh of the recommendations.  Recommendations functionality requires a new table in the database.  See README.txt in the root of the code tree for details on upgrading an existing system to support this feature.  For systems where the DB is hosted on the same box as the API, and the box is really-low resource... like a RasPi 2 something even less capable... Recommendations should be disabled in the API's config file.

Recommendations display


2) Quick Search Links.  This is a new set of links on the "List/Search" tab which present the lists of artifacts from the Recs tab in the familiar list format.  This also depends on Recs being enabled on the server.

Quick Search links


3) "Last Search" display.  Now, when you execute a search, the "search factors" will be displayed below the artifact list to remind you of what you searched for, whether the search is single factor or multi-factor.

Last Search factors


4) "Play fullscreen" option.  This is a checkbox on the Settings tab which asks the player to initiate playback in full-screen mode.  This currently only works for playback initiated by the user clicking the artifact to initiate playback.  When playing a series, the second and later episodes played will not be in full-screen.  This is a known issue related to a security feature in popular browsers.  I'm looking for a work around, but for now, it eludes me.

Play Fullscreen


5) "Populate Episode Details" link. In the Artifact Details box for a TV Series, at the bottom, to the right of the "Edit" and "Associate Episodes" links, there is now a "Populate Episode Details" link which initiates an operation on the server to query IMDbAPI for the details relating to the "series" artifact and each of the episode artifacts.  This requires that the series artifact already has episodes associated with it, and has its "imdbid" value set appropriately.  The use of this feature requires a "key" for the API which can be obtained by visiting here https://www.omdbapi.com/ and setting the key value in the API's config file.

Populate Episode Details


Download the latest "stable" code here:

https://github.com/taobear68/rmvod/releases/tag/v0.9.1


Caravan (Part 1) - A New Plan For A New Place

My partner and I are looking for a new place to be.  Being the computing-dependent nerd that I am, I want to be able to have all the service...