Setting up Sonarr, Radarr, etc. on my Raspberry Pi

I am not going the packaged way (as in use the Debian/ Ubuntu package) so I will set things up manually.

Note: These steps are not to encourage or promote illegal downloading of movies or TV shows. I was curious and wanted to try these software and the steps below are only meant as a reference for anyone else similarly curious. Please watch your favourite movies or TV shows via Netflix, Amazon Prime Video, HBO, etc.

Download

  1. Install Mono. Official steps are here. I am going to go with the official steps for Debian as I am running the 64-bit Raspberry Pi OS and I think that track Debian. One needs mono-complete as the more basic mono-runtime isn’t enough.
  2. Install MediaInfo (official steps here).

  3. Create a user under whom all these will run. I’ll refer to it as $DLDUSER henceforth. Its home directory will be /opt/downloaders which is where I’ll later extract Sonarr, Radarr, etc. to.

  4. Download Sonarr and extract it:

  5. Download Radarr and extract it (I am going with the arm64 version below; select your poison from the official downloads page):

  6. Ditto for Jackett (if you want to do torrents too)(replace ARM64 with ARM32 in the URL below if you are not on the 64-bit OS).

  7. Install transmission (my choice for torrents; feel free to skip if you don’t want torrents).

  8. Install NZBGet (a newsgroup download client).

Create Services

At this point I’ve downloaded everything. I’d like to make some services so all these launch automatically. I also have a disk where I’d like to download stuff to – I want that too to be mounted via systemd and all other services depend upon it so they don’t start if this disk is not mounted.

Disk

Make a file called /etc/systemd/system/mnt-disk.mount with the following:

I found the UUID by browsing to /dev/disk/by-uuid and identifying my disk. Since I want to mount this to /mnt/disk the file must be mnt-disk.mount. Rename your file and path if needed.

Enable it: sudo systemctl enable mnt-disk.mount

NZBGet

Make a file /etc/systemd/system/nzbget.service with the following (note that the service name matches the dependency in the mnt-disk.mountfile above):

Couple of things to note here:

  • Replace $DLDUSER with the username you are using
  • Replace /opt/downloaders/nzbget /opt/downloaders.conf/nzbget /mnt/disk with whatever paths you want NZBGet to have write access to. I am limiting it to its program folder, config folder, and the disk where it will download stuff to.
  • Notice I am specifying a separate folder for the config. This is my way of separating the config from the actual program. Keep it easy to move things around later.

Enable it: sudo systemctl enable nzbget.service

Transmission

Transmission in Debian installs a service but I don’t want to use that. So disable it: sudo systemctl disable transmission-daemon.service

Then make /etc/systemd/system/transmission.service:

It is pretty similar to the default one with very minor changes.

Enable it: sudo systemctl enable transmission.service

Sonarr, Radarr, Jackett

Create /etc/systemd/system/sonarr.service:

Create /etc/systemd/system/radarr.service:

Create /etc/systemd/system/jackett.service: