This project is a docker-compose stack that includes Jellyfin, Radarr, Sonarr, and Sabnzbd. The stack is used to automate the process of downloading, organizing, and streaming media content.
Why you made this?
It is a fun project to work on and can be useful for people who want to have their own media server. Most of the information is available online but it is scattered and can be confusing for beginners. This project aims to simplify the process of setting up a media server using Docker. I am not responsible for any illegal activities that may be done using this project :)
Why not using torrent?
Usenet is a more secure and faster way to download media content. It is also less likely to be monitored by ISPs. Torrent are also known to be less reliable and slower than Usenet but are still a viable option for some users.
Is this even legal?
Downloading copyrighted material is illegal. However, downloading content that is not copyrighted or is in the public domain is legal. It is the user's responsibility to ensure that they are not downloading copyrighted material. Make sure to check the laws in your country before downloading any content.
- Docker
- Docker Compose
- Set a static IP address for the machine running the services. In my case I am using IP address
192.168.0.100
. - Usenet Provider and Indexer. The following are the services I have used:
Note
You can use any Usenet provider and indexer of your choice. It usually depends on your budget and the content you want to download.
-
If you want to expose the services to the internet under CGNAT, you can use TailScale. It is a free service that allows you to create a private network between your devices. You can also use your custom domain by pointing it to the IP address of the machine running the services.
-
If you want to monitor your arr stack services using mobile app, you can use LunaSea. It is a free app that allows you to monitor and manage your services from your mobile device.
- Copy
.env.example
to.env
. ChangeJELLYFIN_PUBLISHED_URL
if you are using a different IP address. - Create a new docker network using the following command:
docker network create proxy_network
- Run the following command to start the services:
docker-compose up -d
- Check if all the services are running using the following command:
docker-compose ps
- If all the services are running, you can access them using the following URLs:
- Jellyfin:
http://localhost:8096
- Jellyseerr:
http://localhost:5055
- Radarr:
http://localhost:7878
- Sonarr:
http://localhost:8989
- Prowlarr:
http://localhost:9696
- Sabnzbd (Usenet downloader):
http://localhost:8080
- Deluge (Torrent downloader):
http://localhost:8112
- Homepage:
http://localhost:3000
- Jellyfin:
- Open web browser and navigate to
http://localhost:8096
- Fill in the required details in each step and press
Next
- Add libraries for movies and TV shows. In my case, I have added the following libraries:
- Movies:
- Folders:
/data/movies
- Display name: Movies
- Folders:
- Shows:
- Folders:
/data/tvshows
- Display name: Shows
- Folders:
- Movies:
- Press
Next
until you reach the final step and pressFinish
-
Open web browser and navigate to
http://localhost:8080
-
Fill in the required credentials using your preferred Provider. In my case, I have used Eweka and NewsDemon.
-
Navigate to
Config -> Folders
- Set
Temporary Download Folder
to/incomplete-downloads
- Set
Complete Download Folder
to/downloads
- Set
-
Navigate to
Config -> Categories
- Create a new category
radarr
and pressSave
- Create a new category
sonarr
and pressSave
Note: Delete other categories if present (Not mandatory)
- Create a new category
-
Navigate to
Config -> General
- Copy the API key from
API Key
field and save it for later use
- Copy the API key from
- Open web browser and navigate to
http://localhost:8112
- Login using the default password:
deluge
. - A pop-up will appear asking you to connect to the daemon. Press
Connect
.
- Open web browser and navigate to
http://localhost:7878
- Navigate to
Settings -> Media Management
and add root folders for movies:/movies
- Navigate to
Settings -> Download Client
.- Add Sabnzbd with the following configurations:
- Add API key from Sabnzbd configuration
- Categories:
radarr
- Tags: Leave blank
- Add Deluge with the following configurations:
- Host: deluge
- Port: 8112
- Password: deluge
- Category: leave blank
- Add Sabnzbd with the following configurations:
- Navigate to
Settings -> General
to get the API key for Radarr and save it for setting up Prowlarr
- Open web browser and navigate to
http://localhost:8989
- Navigate to
Settings -> Media Management
and add root folders for TV shows:/tv
- Navigate to
Settings -> Download Client
.- Sabnzbd with the following configurations:
- Add API key from Sabnzbd configuration
- Category:
sonarr
- Tags: Leave blank
- Add Deluge with the following configurations:
- Host: deluge
- Port: 8112
- Password: deluge
- Category: leave blank
- Sabnzbd with the following configurations:
- Navigate to
Settings -> General
to get the API key for Sonarr and save it for setting up Prowlarr
-
Open web browser and navigate to
http://localhost:9696
-
Navigate to
Settings -> Apps
and add the following applications with the following configurations:- Radarr
- Name: Radarr
- Sync Level: Full Sync
- Tags: Leave blank
- Prowlar Server:
http://prowlarr:9696
- Radarr Server:
http://radarr:7878
- API Key: API key from Radarr
- Press
Test
to check if the connection is successful and pressSave
- Sonarr
- Name: Sonarr
- Sync Level: Full Sync
- Tags: Leave blank
- Prowlar Server:
http://prowlarr:9696
- Sonarr Server:
http://sonarr:8989
- API Key: API key from Sonarr
- Press
Test
to check if the connection is successful and pressSave
- Radarr
-
Navigate to
Indexers
and add your preferred indexers. In my case, I have added NZBGeek for Usenet and ThePirateBay and Nyaa for torrents. See the screenshots below for reference: -
To verify that the indexers are synced with Radarr and Sonarr, go to
Settings -> Indexers
in both services. You should see the indexers you added in Prowlarr listed there. See the screenshots below for reference:
-
Open web browser and navigate to
http://localhost:5055
-
Choose
Use your Jellyfin account
and fill in the required details. -
Press
Sync Libraries
to sync the libraries from Jellyfin. You should see theMovies
andShows
libraries listed. Tick all the libraries you want to monitor and pressNext
-
Add
Radarr
andSonarr
services with the following configurations:-
Radarr
- Default Server: Checked
- Server Name: Radarr
- Hostname or IP Address:
http://radarr
- Port: 7878
- API Key: API key from Radarr
- Quality Profile: HD-1080p
- Root Folder:
/movies
- Minimum Availability: Released
- Enable Scan: Checked
-
Sonarr
- Default Server: Checked
- Server Name: Sonarr
- Hostname or IP Address:
http://sonarr
- Port: 8989
- API Key: API key from Sonarr
- Series Type: Standard
- Quality Profile: HD-1080p
- Root Folder:
/tv
- Language Profile: Deprecated
- Anime Series Type: Standard
- Anime Quality Profile: HD-1080p
- Anime Root Folder:
/tv
- Anime Language Profile: Leave unchanged
- Season Folders: Checked
- Enable Scan: Checked
-
Important
Press Test
to check if the connection. Once successful, it will enable the remaining fields to be filled.
- Press
Next
andFinish
to complete the setup
-
Open web browser and navigate to
http://localhost:3000
to see if homepage is running. See the screenshot below for reference: -
To enable widgets, modify the
_data\homepage\services.yaml
file and set the correct IP addresses and API keys for the services. You can also add or remove services as needed. See the screenshot below for reference: