Configuring SABnzbd and Transmission

17. October, 2021 5 min read Homelab

Manage your downloads

I'm a data hoarder; that's nothing new to people who know me. This year around, I drove my passion a little bit further and streamlined my setup. The following articles will be a multi-part series introducing various areas such as:

What we need

Continuing from Media streaming, we’ll focus on setting up SABnzbd and Transmission for our download management.

This step is needed before we install and configure Sonarr, Radarr, Lidarr and the likes.

Installing SABnzbd

Create a Ubuntu VM with about 30 GB of disk space. Our primary download directory will be on the NAS, so the VM doesn’t need much space.

A section is available that demonstrates how to set up the mounts on Ubuntu to access the NAS volumes.

Let’s get started! Inside your VM run the following command:

sudo apt install sabnzbdplus

Next, check the status running sudo systemctl status sabnzbdplus. If everything appears fine shut the service down by running sudo systemctl stop sabnzbdplus.

Then, edit the configuration file by executing sudo vim /etc/default/sabnzbdplus and change the content to:

  • USER={user} (replace {user} with the Ubuntu user)
  • HOST= (important to allow external access)
  • PORT=8089 (or to any port you like)

Save the file and restart the service by running sudo systemctl start sabnzbdplus.

Finally, open SABnzbd using http://x.x.x.x:PORT. Replace x.x.x.x with your IP and PORT with the configured port.

Configuring SABnzbd

Once you open the above URL you’ll be welcomed by the SABnzbd configuration wizard.

Choose a language for your system and then add the server details for your Usenet provider. I user Supernews, which is pretty good and cheap. Enable SSL if your provider supports it.

Server configuration can also be done later in the Servers section by choosing to Add Server. Make sure to test the connection.

Continue with the completed and temporary folders for now. These will be created in ~/downloads. We will clean this up later when configuring the remaining settings.

Head over to general and adapt the following settings:

  • Activate Advanced Settings
  • SABnzbd Username: Choose a username
  • SABnzbd Password: Choose a password
  • External internet access: Full Web interface - Only external access requires login

Hit Save Changes. Next, head over to User Folders. Create a downloads/ folder on your NAS and then set:

  • Temporary Download Folder: /path-to-nas/downloads/incomplete
  • Completed Download Folder: /path-to-nas/downloads/complete
  • Watched Folder: /path-to-nas/downloads/watching
  • Permissions for completed downloads: set to 777

Of course, you can also choose a different name instead of downloads; adapt the paths accordingly. However, make sure that the corresponding folder has full access set:

chmod 777 /path-to-nas/downloads/

It may also help create the three folders (incomplete, complete, watching) in the downloads/ directory and to provide the same access rights. Leave the rest and hit Save Changes.

Next, browse to Categories. In categories, you want to add or modify the following rows:

sabnzbd categories

Finally, head to the switches section and change the following settings:

  • Direct Unpack: enable
  • Replace dots in folder name: enable
  • Enable Indexer Integration: enable and add API key

That’s it, SABnzbd is configured 😊

Installing Transmission

Besides Usenet, you can also set up a torrent downloader of your choice. This section focuses on transmission.

I recommend following the installation from the community. In summary:

sudo add-apt-repository ppa:transmissionbt/ppa
sudo apt-get update
sudo apt-get install transmission-cli transmission-common transmission-daemon
sudo service transmission-daemon stop

Next, follow the configuration steps for:

  • /var/lib/transmission-daemon/info/settings.json and
  • /home/{USER}/.config/transmission-daemon/

Similar to SABnzbd, you can create a torrents folder under downloads and set some access rights:

sudo usermod -a -G debian-transmission {YOUR_USER}
sudo chgrp -R debian-transmission /media/nas/downloads/torrents/
sudo chmod -R 777 /media/nas/downloads/torrents/

Additional permissions may need to be adapted:

sudo usermod -a -G debian-transmission {USER}

sudo systemctl stop transmission-daemon
sudo chown -R {USER}:{GROUP} /etc/transmission-daemon/
sudo chown -R {USER}:{GROUP} /var/lib/transmission-daemon/
sudo systemctl start transmission-daemon

netstat -an | grep LISTEN

That’s it, transmission should be up and running on:

Extra: Setting up mounts

QNAP supports several protocols though I chose to use NFS as it worked best for my use case.

First, folders need to be created to mount the individual folders too. In my case, I used /media/ and added the subsequent sub-folders inside it.

Next, install the requirements into Ubuntu:

sudo apt install network-manager
sudo apt install nfs-common

Now, we can check if a connection can be established like:

sudo mount -t nfs x.x.x.x:/server/folder /media/photos

and replace x.x.x.x with the IP address of the storage server. If all works prepare the /etc/fstab file as follows:

x.x.x.x:/server/folder1 /media/folder1 nfs _netdev,auto,x-systemd.automount 0 0
x.x.x.x:/server/folder2 /media/folder2 nfs _netdev,auto,x-systemd.automount 0 0
x.x.x.x:/server/folder3 /media/folder3 nfs _netdev,auto,x-systemd.automount 0 0

Replace x.x.x.x again with the IP address of the storage server and map the respective folders to their counterpart on Ubuntu. The additional options ensure that the folders get automatically mounted after a restart and wait for the server to be available.

What’s next

We have our download managers set up. Next, we will configure the DVR recorders 🥳

‘Till next time!