A complete solution for your home media needs.
This project utilizes a few packages and services in order to create the best home media experience. Even for everyday users it allows to use a very simple slash command based system on Discord to download movies and shows, categorized them using a special media management system called Jellyfin.
The Media Server is made using Jellyfin with Docker and for easy container management Portainer. There is also a Discord client for easy communcation with the torrent provider.
- Server machine for deploying Jellyfin and hosting the Discord application (Linux is advised)
Portainer is a great service for running multiple docker containers and organizing them into stacks. A short guide of installation can be found here.
Jellyfin is the core of this project and it serves as a Media Management System for the users. The docker-compose.yml file for my Jellyfin setup is located in the docs/docker-compose.yml.
Create a Discord Application on the Discord Developer Portal then add Bot features and copy the authentication token. It will be needed later so save it! Also don't forget to store the application's app id! ;)
git clone https://github.com/SGeri/homemedia.git
cd homemedia
npm install
In the root directory copy the .env.example file:
cp .env.example .env
Fill out the new newly created environmental file with your nCore credentials (here is a guide for generating nCore "unsafe mode" password, just scroll down to the "Get hashed nCore password" section), Discord application token, ID and a channel ID which is used for displaying global errors. Also you can specify the path of the downloaded media using the MEDIA_LOCATION variable. There is an opitonal variable SCRAPER_DEBUG if you want to enable advanced logging for scraping nCore torrents.
I advise you to use PM2 for deploying NodeJS applications because of how reliable and easy-to-use it is. Here is a short guide for installing it, and a StackOverFlow answer for quickly setting up a the project.
If you have any questions or ideas let me know! You can reach me out on Discord (SGeri#0731) or by creating an issue here on Github. I'm not planning on actively continuing any of my side projects but I'll answer as soon as I can!