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:

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).

  1. set username and password
  2. Settings -> Download Client -> Add -> qBittorrent
    • Host: {server_ip}, Port: 8080, Username: admin, Password: adminadmin (the last 2 will be different if you changed them)
  3. 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
  4. 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:

  1. Go to Settings -> General -> Sonarr/Radarr
  2. Set the API key to the one from sonarr/radarr (Settings -> General)
  3. 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.

  • upstroke4448@lemmy.dbzer0.com
    link
    fedilink
    English
    arrow-up
    1
    ·
    edit-2
    20 hours ago

    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?

    https://github.com/rogerfar/rdt-client

    • djvinniev77@lemmy.ca
      link
      fedilink
      English
      arrow-up
      2
      ·
      18 hours ago

      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.

        • djvinniev77@lemmy.ca
          link
          fedilink
          English
          arrow-up
          1
          ·
          5 hours ago

          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.

          • upstroke4448@lemmy.dbzer0.com
            link
            fedilink
            English
            arrow-up
            1
            ·
            edit-2
            1 hour ago

            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.