PiPlex Server is a local network media based server that utilizes a Raspberry Pi 3 B+ and an external hard drive. PiPlex is a simple way to manage and showcase videos, pictures and other data in a friendly interface. All while accessing the data through a Network attached storage (NAS) and ability to access analytical data in an interactive visualization.
Phases, Requirements, and Tools
This project can be broken down into 3 separate phases, each involving key implementations and technologies for full functionality. This Pi is a Network Attached Storage (NAS) on my local network allowing users on personal computers to connect to this storage to manipulate, add, and delete information with correct authority and user information to sign in. Further Plex Media Player would become the media verse utilized on the PiPlex to then showcase all the data coming from the NAS in a seamless way. Understanding that a lot of data can be sent and received on Raspberry Pi I wanted to create a visualization platform that shows analytical information of the Plex server as well as real time measurable’s of the Pi’s performance; The tool used for this phase would be Grafana a multi platform analytical web application.
Phase 1: NAS was created with external drive, mounted drive to Raspberry Pi.
- This portion was extremely important as it was foundation of project. Ensuring drive was mounted properly, and only certain folders were accessible when accessing from other device. Also created network credentials to ensure username and password would need to be known in order to add NAS to any local device capable.
- I will showcase this during my capstone video.
Phase 2: Installed Plex Media Server, configured Pi and ensured connections were aligned with NAS mounted drive.
- Image above showcasing PLEX environment that can be accessed across multiple devices on the local network. Library shown is test folder for purposes of capstone with a few family photos. Was able to access on library simultaneously on multiple computers, iPhone, and gaming console.
Phase 3: Installed Grafana as base visualizer of data. Data would be captured using InfluxDB (Time series Database) and Collectd (Performance Data Collector). With appropriate configurations and queries, visualizations of key analytical data became available such as: CPU Usage, Memory Distribution, Network Traffic, and NAS Storage. with extra research I was able to establish another data collection from the Plex Server. This would showcase types of files on Plex Server and in real time show active Plex streamers viewing photos or watching videos.
- of course after install, configuration and starting InfluxDB confirming the status was something necessary especially after making changes and edits to config files.
- As collectd works hand in hand with InfluxDB this was essentially to ensure it was running and active, after configuration of data and manipulation of what would be captured. This would be necessary during troubleshooting I would run into during the process.
- Image above is showcasing Phase 3 and 4 with Grafana visualizer. This data is in real time showing the data in increments of 15 minutes and updating every 5 seconds. The Plex portion of this visualization actually shows the streamer along with the title and location.
- Image above is showcasing Phase 3 and 4 with Grafana visualizer. This data is not real time, it is in fact just showing measurements and data from the past 7 days.
These 4 tools are the foundations of my project that provided the ability to create the Pi Plex Server.
- I would like to say thank you to Dr. Soltys my IT 499 Advisor this semester, his guidance and support during this time has been much appreciated.
- I would also like to thank Professor Scrivnor for introducing me to Grafana in IT 421. This project would not have been possible without that exposure.