I recently managed to run the stuff mentioned int he title with the help of:
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
You can see the flowchart for similar setup here
VPN
If you don’t tell the script not to use vpn it will
I managed to use th openvpn
service with ProtonVPN (which is free for one device). You can use any other if you know how.
How to use?
The script will tell you but in short:
- create protonvpn account
- download the
.ovpn
files from https://account.protonvpn.com/downloads - get username/pwd from https://account.protonvpn.com/account-password
Why Dockerfile
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
Hardware acceleration
Go to http://{server_ip}:8096/web/#/dashboard/playback/transcoding. Set proper hardware acceleration. If using nvidia then Nvidia NVENC Check which formats work at https://developer.nvidia.com/video-encode-and-decode-gpu-support-matrix-new
Jellyseer
Jellyfin integration
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.
Wow I wish I had this a year ago. One thing though: a proton free account should not be used for torrenting as they don’t allow p2p connections. If you’re going to torrent, pay for your vpn
shit, thank you, I’ll need to rectify it
what vpn do you recommend
For torrenting purposes only, vpn doesn’t really matter as long it properly hides your ip (even the overpriced ones that don’t actually respect privacy)
Proton is still a good recommendation as long as you pay for premium, but I’ve started using airvpn since the proton ceo started getting weird. Mullvad is also good, but doesn’t allow port forwarding, which isn’t the end of the world but could have some negative effects (at least one person needs a forwarded port for you to connect to each other, and if you’re not forwarding yours, you’re relying on other people to forward theirs)
Tldr: proton is good, just pay for it. Airvpn and mullvad are also good
Awesome work… I’m sure @RandomLegend@lemmy.dbzer0.com will be pleased you’ve automated his guide :)
I am very pleased but question the choice of OpenVPN over wireguard regarding performance and jackett over prowlarr
I “chose” Jackett because this is what the guy on reddit used. I’ll try to make it configurable. Same with wire guard
Got it, nice Automation 👍
This is very interesting. Never thought about proton vpn after hearing about the CEO promoting Trump but didn’t realize the free account.
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
should totally work for you. Please tell me if anything ia not clear oe if you have any problems so that I may make the script better
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.Sounds pretty similar to windows. Now I just have to learn how to use fedora and get everything installed correctly 😂
I’m interested in helping if you get stuck. I’m not a fedora guy but an Ubuntu one. If it’s mostly docker based you should be similar to what I have.
Thanks!
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.
I’m not sure what it’s supposed to be doing, but will check more thoroughly tomorrow