The NAS drive is the main server of everything that runs. As stated elsewhere, I only set out to buy a network file share so I could shut off my dedicated Plex Server. As it was a Windows box, it was always rebooting and updating something which meant I always had to mess with getting Plex to run again. There’s so much you can do with a NAS server up and beyond setting up a file share.

The NAS Drive obviously covers the file storage but additionally it also:
- Hosts the database which is currently using Maria DB. The database does all the legwork for the system. This includes (but not limited to):
- Video File organization/cataloging – A complete inventory of what’s available in the system.
- Genera organization – Videos are grouped into different types of selections (movies, music, TV shows etc.).
- Configuration – Almost all settings are housed in the database.
- Logging – Each component checks in with it’s daily activities for tracking purposes.
- Requests – These can be made on a specific station and even after a specific time.
- Scheduling – Each station carries a distinct genera schedule for the entire week.
- Docker is a game changer as it allows just about any type of technology to run reliably. A few of the components worth mentioning are:
- Rabbit MQ – This is used to deliver instructions to each of the stations independently. It can also be used to send messages to the screen which will be displayed during a video.
- Azure Proxy API – This is used to allow each station (who sit behind a firewall) to send their current status to a rest API on Azure. This can be configured on or off as needed (cloud cost money you know).
- Lights – This interface allows control of the lights. In the current state it is simply a spring batch job that turns out the lights after they’ve been on an hour. This will, hopefully sooner than later, be expanded to coordinate the lights with the start of a feature movie.
- Maintenance Job – This Spring Batch job does tidy work in the database (such as deleting old activity logs or invalid video references).
- Plex – This now runs inside the NAS drive (as opposed to on its own dedicated server). As Plex has migrated towards a TiVo solution, I can now record OTA shows and automatically add them to the system.
- Video Generator – This Spring Batch job searches for recently recorded TV shows from Plex (Plex drops TS files which are un-necessarily large) and inserts a reference to them into a Rabbit Queue. Plex has a way to do this inside the app but I haven’t utilized it just yet.
There’s so much more going on here but this is the gist of it and it is a good overview. Keep in mind this project allows me to learn new technologies so I plan to use a wide variety of different solutions.