This repository contains (most of) the source code for plex.danrahn.com. It it first and foremost a coding playground that purposefully does not utilize any JS libraries or frameworks, other than NPM libraries for minification, outlined below.
Some things to note:
-
Within the root, the following extra structure is expected (and created via build.py):
includes\ cache\ background\ // Blurred backgrounds for active streams art\ // Actual artwork thumb\ // Fallback if no artwork found poster\ // Cache of external (non-plex) posters used for requests 342\ // Larger posters thumb\ // Thumbnails for active streams - grabbed from Plex min\ // Minified sources icon\ script\ style\
-
There are some additional requirements that are not included in this repository:
- Install prerequisites
- Install MySQL, Apache, and PHP (potentially via WampsSrver).
- Install Node.js and
npm install -g
the requisite modules outlined above (at a minimum, terser, CSSO, and SVGO). - Copy the contents of PHPMailer's
src
folder toincludes\phpMail\
- In MySQL, create the tables outlined in includes\tables.sql
- Run
includes\build.py
from the directory root. On Windows, runpy -3 includes\build.py -?
for more instructions. - Copy includes\config_dummy.php to includes\config.php, and fill in the correct values
- httpd.conf - users need access to the files in the root directory,
min
, andres
.includes
should only be accessible locally. - SSL - this source expects SSL to be enabled (e.g. via httpd-ssl.conf and LetsEncrypt). If you don't use SSL, you will have to comment out the implementation of
requireSSL
inincludes\common.php
and replace any https links that reference the site with http.
Some random ideas:
- Bake MySQL table creation/updating into build.py
- Better administration page to allow more server management capabilities
- Improve stats dropdown - LI contents aren't very polished