Lightweight node app to use in place of plex to self host your video and movie collections. Running on just under 50MB of ram this is ideal for people looking to host videos on minimal hardware.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

56 lines
2.1 KiB

5 years ago
  1. # What Is This?
  2. This is a custom media server written in node JS to stream videos from a remote server.
  3. This web system enables users to log into the system and view videos using the basic HTML 5 video player.
  4. # Why?
  5. - Universal and will run on any device with a web browser
  6. - Supports buffering which is useful when connecting to a remote server
  7. - Gained security because you don't need to grant everyone user accounts to view content from media server
  8. # Why just not use Plex?
  9. - Light weight
  10. - Easy to install
  11. - Easily expandable and hackable to fit your needs
  12. # Installation
  13. ## NPM Dependencies
  14. ```bash
  15. npm install
  16. ```
  17. ## System Dependencies
  18. ```bash
  19. $apt-get install ffmpeg
  20. ```
  21. This also relies on [gifski](https://gif.ski/) which can be installed following the links on their website.
  22. Both ffmpeg and gifski are used for generating the video preview gifs.
  23. ## Running
  24. To deploy this you will want to run this behind a reverse NGINX proxy to
  25. allow you to encrypt all of the network traffic.
  26. There are plenty of tutorials on how to do this online with let's encrypt.
  27. To run this program either run `run.sh` or execute `node server.js`. This
  28. by default will run on port 5000 -- you are able to change this in `conf.json`.
  29. To make this easier for you in the long run, I usually run my node applications
  30. as [systemd](https://freedesktop.org/wiki/Software/systemd/) services.
  31. The default config provided in this project has the default username of admin and password
  32. of admin.
  33. You will want create a new admin user and remove the default one once you
  34. get this running.
  35. # Contributing
  36. This was largely just a weekend hack for me.
  37. This currently fits most of my needs and is *functional*.
  38. If you find any bugs, feel free to open a issue and I will get around to looking at it.
  39. I am always looking for people to contribute to my projects.
  40. If you have an idea for an enhancement for this project feel free to hack away and issue a PR.
  41. Contact me using the form on my [blog](jrtechs.net) or by opening a github issue if you have any questions regarding the code or how to use this project.