After having done this I wrote this script, which you can wget with: wget <link copied after right-clicking on the "Raw" button on the gist page>. (now: wget https://gist.githubusercontent.com/Vulwsztyn/b600cb0a4ced7090cb1408e718b990b0/raw/fc1396164f6395100cf2a08e14aa5cf3efdb0a52/arr.py)
Requirements:
python
pystache (pip install pystache)
How to run
python arr.py (it will ask you a buch of questions before doing anything. You can ofc analyse the code yourself.
What it does?
In short this will ask you for directory names including the root ARR_DIR. In the ARR_DIR it will create the media and configs directories and 3 files:
docker-compose.yml
.env
openvpn.Dockerfile (optional)
You can run it in "dry run" with or without creating the files in the directory you are running it from by answering the 1st question ("Dry run?") with y.
Services in the docker compose:
jellyfin - client to watch the media
jellyseer - admin page to request the media from arr service
jackett - indexer to tell arr services where to download from
qflood - dockerised qbittorrent client
sonarr (optional) - tv shows
radarr (optional) - movies
lidarr (optional) - music
readarr (optional) - ebooks
readarr-audio-books (optional) - audiobooks
bazarr (optional) - subtitles
homarr (optional) - admin page - I haven't really set it up yet
vpn (optional)
heimdall (optional) - admin page to aggregate links to all the services
For ProtonVPN this script is needed, so I do it in Dockerfile, since it is impossible in docker-compose.yml
Other services
The script will tell you the same info.
Heimdall
Setup the dashbaord with links to every service.
Go to Go to http://{server_ip}:8090. For each of apps click 'Application list' -> 'Add' and:
Add jellyfin with url http://{server_ip}:8096
Add jellyseerr with url http://{server_ip}:5055
Add sonarr with url http://{server_ip}:8989
Add radarr with url http://{server_ip}:7878
Add lidarr with url http://{server_ip}:8686
Add readarr with url http://{server_ip}:8787
Add readarr-audio-books with url http://{server_ip}:8786
Add bazarr with url http://{server_ip}:6767
Add qbittorrent with url http://{server_ip}:8080
Jackett
Add a few indexers to jackett using the "add indexer" button. You can see the indexers Ithe author of the reddit guide uses use in the image.
Qbittorrent
Go to qbittorrent http://{server_ip}:8080. Default username is admin and password is adminadmin. Change those under Tools -> Options -> WebUI if you wish.
Under Tools -> Options:
set 'Default Save Path' to /data/torrents
set 'Keep incomplete torrents in:' to /data/torrents/incomplete
Sonarr/Radarr/Lidarr/Readarr/Readarr-audio-books
Go to the service (e.g. from heimdall).
set username and password
Settings -> Download Client -> Add -> qBittorrent
Host: {server_ip}, Port: 8080, Username: admin, Password: adminadmin (the last 2 will be different if you changed them)
Settings -> Media management -> Root folder -> Add:
/data/media/shows for sonarr
/data/media/movies for radarr
/data/media/music for lidarr
/data/media/ebooks for readarr
/data/media/audiobooks for readarr-audio-books
Add every relevant indexer
Settings -> Indexers -> Add indexer -> Torznab
In Jackett copy the Torznab link for the indexer you want to add and paste it in URL
Set the API key to the one from Jackett (top right)
Bazarr
Go to bazarr at http://{server_ip}:6767
For sonarr and radarr:
Go to Settings -> General -> Sonarr/Radarr
Set the API key to the one from sonarr/radarr (Settings -> General)
Set address and port
Jellyfin
Go to http://{server_ip}:8096/web/#/dashboard/libraries and add all libraries in /data/media
Go to http://{server_ip}:8096/web/#/dashboard/keys, Add new key wiht name Jellyseer and copy it.
Go to http://{server_ip}:5055/settings/jellyfin, paste the key, set address and port.
Sonarr/Radarr integration
Go to http://{server_ip}:5055/settings/services and add radarr and sonarr with API keys from their settings -> General.
What next?
After setting everything up to check if it works go to Jellyseer and request some show or movie, which will then be downloaded and available in jellyfin.
Excited to check this out. I was literally just searching around for something similar as I want to transition from a Plex media server on Windows to a Jellyfin one on Fedora
Thanks so much, will let you know once I'm able to get through it (hopefully this week).
The only thing I don't see here that I was thinking of trying is to integrate in Real debrid via the rdt client. Which seems like it should work basically the same way as it does for Plex on Windows. Any thoughts?
Totally can do it, you’d eliminate the qbittorrent item and use RDT to download. I know it dumps it into an rclone mount for my RD bucket, and I never have it download to host. Instead I have a virtual network drive mounted for plex/Jellyfin to pull from. Radarr and Sonarr use the qbittorrent protocol as the download client but you point it to RDT instead.
In this setup since you should use RD, VPN is not required.
I've been running into issues currently with nvidia drivers causing an error, which in turn causes the script to fail when trying to create the containers.