Register for the iXsystems Community to get an ad-free experience and exclusive discounts in our eBay Store.

[HOW TO] Install and configure sonarr, radarr, transmission and sabnzbd (11.3-U3.2)

Western Digital Drives - The Preferred Drives of FreeNAS and TrueNAS CORE
Joined
Jul 10, 2018
Messages
25
This is an updated version of this guide for 11.1-U5

In the previous guide there ended up being a lot of questions about permissions, so I'll include creating the dataset and share from the beginning in this guide.

In order to use these plugins properly, you will need to have a usenet provider account, and indexers.

DISCLAIMER: This guide follows the steps for permissions as recommended by FreeNAS in this video. However I have had multiple issues with permissions in windows. Sometimes it will work as expected, and then other times I cannot connect no matter what credentials I am using. After doing research, it seems that many users are having issues with SMB permissions after the 11.3 update. Right now I currently recommend either allowing guest access, or adding the same username and password that you use in windows to provide passthrough authentication. If you are able to find a solution that fixes this issue feel free to post a reply.

  • First we will create a dataset for our media by navigating to storage > pools > Add Dataset

  • Name the dataset and since we are using windows in this guide, set the share type to SMB. Leave all other options as default.

  • Next we will add a windows share by navigating to Sharing > Windows Shares (SMB) > ADD

  • Select the path of the dataset that we created, and leave the other options as default.
NOTE: If you do not want to bother with permissions, you may select allow guest access. This will allow any user on your network to make changes to the files. Use at your own risk.


  • Next we want to create the login credentials that we want will be using in windows and add that to the dataset. I prefer to create a group named users and add all new user accounts to that group just to keep things clean.
Navigate to Accounts > Groups > ADD.


  • Choose whatever group number you would like and name it.

  • Next navigate to Accounts > Users > Add.


  • Enter the name of the user, then the username that you would like to use in windows, and your password. Uncheck the new primary group box, and select users as the primary group. Leave all other options as default and click save.


  • Next we need to add that user to the dataset by navigating to Storage > Pools > Edit ACL.


  • Here we will select ADD ACL ITEM, and then a new entry will appear at the bottom. Now we want to add the user we just created by selecting Who = User, and User = computerlogin. Leave all other options as default.
NOTE: You can change the permissions to read only if you are adding a user that you want to have access, but do not want to have the ability to change anything. Also if this is an existing dataset, you can select Apply permissions recursively in order to make sure this user has access to all existing files and folders.


  • Next navigate to the share by opening windows explorer and entering "\\ipaddress" in the address bar.
Here you will see the shares you have configured


  • Right click the share we configured earlier and select map network drive. Select connect using different credentials.


  • Here you will select More choices > Use a different account. Then you will enter the username and password that we created earlier in freenas.
NOTE: If you do not wish to repeat this at any point, select Remember my credentials before continuing.

Now your new windows share is mapped as a drive, and you should be able to access it.

Now that we have our media share setup, we are going to create a new group and user that our plugins are going to use.

  • Go to Accounts > Groups > Add and take note of the group ID and name. In this case we will do 900 and testnewmedia.
Note: You can choose whatever group ID and name you like, however you will need to make sure you continue to use the same ID and name in all places from here forward.


  • Next we will make a user to match the group by navigating to Accounts > Users > Add. We need to make sure the username and ID matches the group name and ID. The password can be set to anything you like. Ensure that you do not have the New Primary Group box checked. All other options can be left as default.
1594000484407.png


  • Next we need to add this user to our media share. Navigate to Storage > Pools > Edit ACL. You will select Add ACL Item and then choose user and testnewmedia. Leave the other options for this entry as default. Make sure you select Apply permissions recursively if you have any existing items in the share.
1594000806153.png


Next we will go ahead and create the jails for each of our plugins. Navigate to Jails > Add and then it will bring a wizard. On the first step select the default jail type, and then the release that corresponds with your version of freenas.

1594000996737.png


  • On the second step we need to select the proper network configuration. Select the VNET Option, and then on IPv4 Interface select vnet0. Enter an IPv4 Address to create an address that is not already in use on your network. Under IPv4 select the Netmask the corresponds with your network (usually 24). Under IPv4 Default Router enter the IP address of your router. Leave all other options as default. Repeat this for each plugin that you want to install.


  • Once this is complete you should have 4 jails in the down state.

  • Before starting them, I recommend going to edit each jail and enabling the Auto-start option. This will ensure that your plugins start automatically in the event of a reboot.
1594001954185.png


  • Next we need to add our media share to give the jail access. Select the dropdown for the jail and select mount points. Once here select Actions > Add and then select the path for the share we created. Your destination should be /mnt/testmedia. Leave Read-Only unchecked. Repeat this for each jail we created.
1594002413643.png


  • Once you have the mount point added it should look like this.

  • Now that the jails are all configured, we can turn them all on by selecting the check box for each one and selecting the start button.
1594002171815.png


  • Now we will need to work through the command line to install the plugin and configure it. This can be done through putty, or you can simply access it directly by going to the jail dropdown and selecting shell. I will be using putty in this guide.
  • Once you have logged into freenas, you can elevate your user to root priveleges by typing
    Code:
    sudo su -
  • Once you are in the root of FreeNAS you can type
    Code:
    iocage list
    to see all of the jail information.


  • To access the jail type
    Code:
    iocage console testsonarr
    .
  • Now that we are in the jail we are going to create our directories by running the following commands.
Code:
cd /mnt/testmedia
mkdir downloads
cd downloads
mkdir sabnzbd transmission
cd sabnzbd
mkdir complete incomplete
cd complete
mkdir movies tvshows
cd\



  • Next we need to make sure the package system is up to date by running the following commands.
Code:
pkg update
pkg upgrade

  • Next we are going to install the plugin and a text editor by running the following commands.
Code:
pkg install nano
pkg install sonarr

  • Next we need to enable the plugin to run when the jail starts up, and start the service manually for the first time with these command.
Code:
sysrc sonarr_enable=YES
service sonarr start

  • Now we will create the user that we added to the media share within the jail and give the plugin this user with these commands.
Code:
pw useradd -n testnewmedia -u 900 -d /nonexistent -s /usr/sbin/nologin

service sonarr onestop
chown -R testnewmedia:testnewmedia /usr/local/sonarr
sysrc 'sonarr_user=testnewmedia'
chown -R testnewmedia:testnewmedia /usr/local/share/sonarr
service sonarr start

This completes what we need to configure from the CLI for sonarr, and now we will move on to radarr.

  • Once we are in the CLI for the radarr jail, we will continue by updating the package system with the following commands.
Code:
pkg update
pkg upgrade


  • Next we will install the text editor and radarr with the following commands.
Code:
pkg install nano
pkg install radarr

  • Next we need to enable the plugin to run when the jail starts up, and start the service manually for the first time with these commands.
Code:
sysrc radarr_enable=YES
service radarr start

  • Next we need to create the new user and give the plugin that user with these commands.
Code:
pw useradd -n testnewmedia -u 900 -d /nonexistent -s /usr/sbin/nologin

service radarr onestop
chown -R testnewmedia:testnewmedia /usr/local/radarr
sysrc 'radarr_user=testnewmedia'
chown -R testnewmedia:testnewmedia /usr/local/share/radarr
service radarr start

This completes what we need to configure from the CLI for radarr, and now we will move on to sabnzbd.

  • Once we are in the CLI for the sabnzbd jail, we will continute by updating the package system with the following commands.
Code:
pkg update
pkg upgrade

  • Next we will install the text editor and sabnzbd with the following commands.
Code:
pkg install nano
pkg install sabnzbdplus

  • Next we need to enable the plugin to run when the jail starts up, and start the service manually for the first time with these commands.
Code:
sysrc sabnzbd_enable=YES
service sabnzbd start

  • Next we need to create the new user and give the plugin that user with these commands.
Code:
pw useradd -n testnewmedia -u 900 -d /nonexistent -s /usr/sbin/nologin

service sabnzbd onestop
chown -R testnewmedia:testnewmedia /usr/local/sabnzbd
sysrc 'sabnzbd_user=testnewmedia'
chown -R testnewmedia:testnewmedia /usr/local/share/sabnzbdplus
chown -R testnewmedia:testnewmedia /var/run/sabnzbd
service sabnzbd start

  • Now we need to change the following line of code in the sabnzbd config by running the following command.
Code:
nano /usr/local/sabnzbd/sabnzbd.ini

  • Change the host line to host = 0.0.0.0 This will enable you to access sabnzbd on your jail ip address. Save changes by typing ctrl+shift+x. Confirm with Y then enter.


  • Next start and stop sabnzbd with the following commands.
Code:
service sabnzbd onestop
service sabnzbd start

This completes what we need to configure from the CLI for sabnzbd, and now we will move on to transmission.

  • Once we are in the CLI for the transmission jail, we will continue by updating the package system with the following commands.
Code:
pkg update
pkg upgrade

  • Next we will install the text editor and transmission with the following commands.
Code:
pkg install nano
pkg install transmission

  • Next we need to enable the plugin to run when the jail starts up, and start the service manually for the first time with these commands.
Code:
sysrc transmission_enable=YES
service transmission start

  • Next we need to create the new user and give the plugin that user with these commands.
Code:
pw useradd -n testnewmedia -u 900 -d /nonexistent -s /usr/sbin/nologin

service transmission onestop
chown -R testnewmedia:testnewmedia /usr/local/etc/transmission
sysrc 'transmission_user=testnewmedia'
chown -R testnewmedia:testnewmedia /usr/local/share/transmission
service transmission start

  • Now we need to stop the transmission service and change the following line of code in the sabnzbd config by running the following command.
Code:
service transmission onestop
nano /usr/local/etc/transmission/home/settings.json

  • Change the "'rpc-whitelist-enabled': true" line to false.

  • Next start transmission with the following commands.
Code:
service transmission start



Now we are done configuring the plugins in the CLI and we can move onto configuring them from the web GUI. Save changes by typing ctrl+shift+x. Confirm with Y then enter.

the plugins can be found by typing in the jail ip address with the appropriate port ex: 192.168.1.56:8080
The default ports for the plugins are as follows
Sabnzbd: 8080
Sonarr: 8989
Radarr: 7878
Transmission: 9091

First we will begin by configuring sabnzbd.

in the setup wizard it will prompt you to enter your usenet server information. If this is not done here, it can be done under config>servers. (be sure to test the connection also)

Next under config>folders set the following.
  • Temporary Download Folder = /mnt/media/downloads/sabnzbd/incomplete
  • Completed Download Folder = /mnt/media/downloads/sabnzbd/complete
Next under config>categories set the following.
  • Category = tv , Folder/Path = tv
  • Category = movies , Folder/Path = movies
And lastly under config>switches set the following.
  • Abort jobs that cannot be completed = [√]
  • Action when encrypted RAR is downloaded = Abort
  • Extra PAR2 Parameters = -t+
Now that we have sabnzbd setup, we will move on to transmission

Note: I do not personally use transmission to work with sonarr and radarr. As such I have not tested how the post processing and renaming is handled.

The only setting that needs to be set in transmission is to set the download path. Do this by navigating to edit preferences and then setting the path we created earlier /mnt/testmedia/downloads/transmission.

Now that transmission is setup, we can move on to sonarr, and radarr.

Note: Sonarr and Radarr are essentially the same, so I will only demonstrate how to setup Sonarr and these steps can be repeated for Radarr.

Note: With these steps select the test connection button each time you add an api to ensure that everything is working properly.

Under settings>indexers this is where you will want to add the indexers that you are subscribed to as mentioned in the beginning of the guide. It is recommended that you have 2 or 3 in the event that one crashes your service won't be interrupted.

Next under settings>download client this is where we will add sabnzbd and transmission.
Select add>sabnzbd
  • name = sabnzbd
  • host = IP address of sabnzbd
  • api key = (found in sabnzbd config>general)
Selec add>Transmission
  • name = transmission
  • host = IP address of transmission
Next if you are using a media front end such as Kodi or Plex, you will want to select client and add what pertains to you. This will enable Sonarr and Radarr to update your library when a download is completed.

Repeat for radarr.

That's it, apart from some fine tuning according to your preferences, everything should be up and running.

I hope that this guide was helpful, and that you get good use out of it. I am planning on making a video to go along with it, and I will post that as soon as it's available.

I'm also happy to receive feedback on how this guide can be improved, or on any mistakes that you may have noticed.
 

Attachments

Last edited:

diedrichg

Neophyte Sage
Joined
Dec 4, 2012
Messages
1,288
Shouldn't it be pkg update then pkg upgrade?
 

Dravinian

Junior Member
Joined
Jun 30, 2020
Messages
17
This is a stunning guide, truly awesome work, thank you for taking the time to put it all down like this in a really easy to follow fashion.

Now, I hestitate to say this, because I really do not want you to take it as a criticism, but anyone who is this meticulous would likely be annoyed to find out later, so better to rip that plaster off:

Once we are in the CLI for the radarr jail, we will continue by updating the package system with the following commands.
Code:
pkg update
pkg ugrade

You missing a p there.

This one follows the image for Transmission:

Next start transmission with the following commands.
Code:
service trasmission start

You missing an n there.

As I said, not a criticism, and I hope you do not take it that way, because this guide is just amazing.
 
Joined
Jul 10, 2018
Messages
25
Thank you for your input and your kind words. I'm glad the guide is helpful. No need to worry about offending for pointing out the errors. I'm happy to hear them so I can try to make the guide as helpful as possible. I've made the changes accordingly. Hopefully over the weekend I can get around to making the video for it.
 

xames

Member
Joined
Jun 1, 2020
Messages
131
Really difficult, is not out there a DANB35 fast script implementation on Sonarr? Thanks.
 
Joined
Jul 19, 2020
Messages
3
Hello @salsacalientemuy

Firstly thanks for your hard work !
I really found this tutorial useful as a beginner with freenas.

The first step, from creating dataset, users, groups until the creation of jails, is clear, nothing to say !

So here is my experience as a newbie and some step that should be clarified for being extra clear :D
  1. You may encounter problems like "couldnt update, fetch repo, ...." with the step "pkg update/upgrade" -> check your default ip router, for example inside the jail shell try to ping google (8.8.8.8).

  2. I noticed that the mount point destination already contained "/mnt/tant/iocage/jails/foobar/root/mnt/testmedia" is that normal ? because i had to create it from the shell at the same time as when you create "downloads/" so we do have the same file structure. Other than that it's ok.
That's it !
 

vanman69ny

Newbie
Joined
Jul 22, 2020
Messages
1
Thanks for the tutorial.
Would you consider adding Jackett to the tutorial in the future?
 

neto_hugo

Member
Joined
Mar 6, 2012
Messages
87
Hi, simple question.

The tutorial was very easy and intuitive to do. Thank you @salsacalientemuy !

It turns out that I'm having an error with SabNZB that doesn't allow changing the permissions on the folder.

How can I go ahead to fix this?

Thank you
 

Attachments

oopovertyoo

Newbie
Joined
Sep 8, 2020
Messages
2
@salsacalientemuy You'll want to install ca_root_nss to get rid of the SSL encryption issues with SABnzbd
Error will be similar to:
Secure (SSL) connections from SABnzbd to newsservers and HTTPS websites will be encrypted, however, validating a server's identity using its certificates is not possible. OpenSSL 1.0.2 or above and up-to-date local CA certificates are required.

# pkg install ca_root_nss

then a restart of SABnzbd
 

oopovertyoo

Newbie
Joined
Sep 8, 2020
Messages
2
Hi, simple question.

The tutorial was very easy and intuitive to do. Thank you @salsacalientemuy !

It turns out that I'm having an error with SabNZB that doesn't allow changing the permissions on the folder.

How can I go ahead to fix this?

Thank you
If you followed the instructions to a T you'll need to make sure the "testnewmedia" user has write privilege this can be completed by setting the specific folder owner to "testnewmedia" via chown
# chown -R testnewmedia:testnewmedia <your folder>
Then chmoding so the owner has read/write/execute on the folder 755 is pretty typical but feel free to adjust as needed.:
1599607489346.png

To achieve this:
#chmod -R 755 <your folder>
 

cam_midnight

Newbie
Joined
Sep 27, 2020
Messages
1
At this step:
pw useradd -n testnewmedia -u 900 -d /nonexistent -s /usr/sbin/nologin
I get:
pw: no default shell available or defined
 

Hedgemuffin

Newbie
Joined
Oct 25, 2020
Messages
2
I'm having an issue with getting sonarr to conect to sabnzbd I can get radarr working fine but when I set up sonarr with the same details I get:
"Test was aborted due to an error: Unable to connect to SABnzbd, please check your settings"
could anone help me with this please?

error log is as follows

NzbDrone.Core.Download.Clients.DownloadClientUnavailableException: Unable to connect to SABnzbd, please check your settings ---> System.Net.WebException: Error: ConnectFailure (Connection refused): 'http://192.168.1.9:8090/api?mode=get_config&apikey=be91fef849824039bdb94637f0b2ea77&output=json' ---> System.Net.WebException: Error: ConnectFailure (Connection refused) ---> System.Net.Sockets.SocketException: Connection refused
at System.Net.Sockets.Socket.Connect (System.Net.EndPoint remoteEP) [0x000b0] in /wrkdirs/usr/ports/lang/mono/work/mono-5.10.1.57/mcs/class/System/System.Net.Sockets/Socket.cs:879
at System.Net.WebConnection.Connect (System.Net.HttpWebRequest request) [0x0016d] in /wrkdirs/usr/ports/lang/mono/work/mono-5.10.1.57/mcs/class/System/System.Net/WebConnection.cs:187
--- End of inner exception stack trace ---
at System.Net.HttpWebRequest.EndGetResponse (System.IAsyncResult asyncResult) [0x00059] in /wrkdirs/usr/ports/lang/mono/work/mono-5.10.1.57/mcs/class/System/System.Net/HttpWebRequest.cs:1033
at System.Net.HttpWebRequest.GetResponse () [0x0000e] in /wrkdirs/usr/ports/lang/mono/work/mono-5.10.1.57/mcs/class/System/System.Net/HttpWebRequest.cs:1045
at NzbDrone.Common.Http.Dispatchers.ManagedHttpDispatcher.GetResponse (NzbDrone.Common.Http.HttpRequest request, System.Net.CookieContainer cookies) [0x0011b] in C:\BuildAgent\work\5d7581516c0ee5b3\src\NzbDrone.Common\Http\Dispatchers\ManagedHttpDispatcher.cs:82
--- End of inner exception stack trace ---
at NzbDrone.Common.Http.Dispatchers.ManagedHttpDispatcher.GetResponse (NzbDrone.Common.Http.HttpRequest request, System.Net.CookieContainer cookies) [0x001ca] in C:\BuildAgent\work\5d7581516c0ee5b3\src\NzbDrone.Common\Http\Dispatchers\ManagedHttpDispatcher.cs:113
at NzbDrone.Common.Http.Dispatchers.FallbackHttpDispatcher.GetResponse (NzbDrone.Common.Http.HttpRequest request, System.Net.CookieContainer cookies) [0x000b5] in C:\BuildAgent\work\5d7581516c0ee5b3\src\NzbDrone.Common\Http\Dispatchers\FallbackHttpDispatcher.cs:53
at NzbDrone.Common.Http.HttpClient.ExecuteRequest (NzbDrone.Common.Http.HttpRequest request, System.Net.CookieContainer cookieContainer) [0x0007e] in C:\BuildAgent\work\5d7581516c0ee5b3\src\NzbDrone.Common\Http\HttpClient.cs:121
at NzbDrone.Common.Http.HttpClient.Execute (NzbDrone.Common.Http.HttpRequest request) [0x00008] in C:\BuildAgent\work\5d7581516c0ee5b3\src\NzbDrone.Common\Http\HttpClient.cs:57
at NzbDrone.Core.Download.Clients.Sabnzbd.SabnzbdProxy.ProcessRequest (NzbDrone.Common.Http.HttpRequestBuilder requestBuilder, NzbDrone.Core.Download.Clients.Sabnzbd.SabnzbdSettings settings) [0x0001d] in C:\BuildAgent\work\5d7581516c0ee5b3\src\NzbDrone.Core\Download\Clients\Sabnzbd\SabnzbdProxy.cs:184
--- End of inner exception stack trace ---
at NzbDrone.Core.Download.Clients.Sabnzbd.SabnzbdProxy.ProcessRequest (NzbDrone.Common.Http.HttpRequestBuilder requestBuilder, NzbDrone.Core.Download.Clients.Sabnzbd.SabnzbdSettings settings) [0x0003a] in C:\BuildAgent\work\5d7581516c0ee5b3\src\NzbDrone.Core\Download\Clients\Sabnzbd\SabnzbdProxy.cs:192
at NzbDrone.Core.Download.Clients.Sabnzbd.SabnzbdProxy.GetConfig (NzbDrone.Core.Download.Clients.Sabnzbd.SabnzbdSettings settings) [0x0000d] in C:\BuildAgent\work\5d7581516c0ee5b3\src\NzbDrone.Core\Download\Clients\Sabnzbd\SabnzbdProxy.cs:92
at NzbDrone.Core.Download.Clients.Sabnzbd.Sabnzbd.TestAuthentication () [0x0005d] in C:\BuildAgent\work\5d7581516c0ee5b3\src\NzbDrone.Core\Download\Clients\Sabnzbd\Sabnzbd.cs:409
at NzbDrone.Core.Download.Clients.Sabnzbd.Sabnzbd.Test (System.Collections.Generic.List`1[T] failures) [0x0000c] in C:\BuildAgent\work\5d7581516c0ee5b3\src\NzbDrone.Core\Download\Clients\Sabnzbd\Sabnzbd.cs:273
at NzbDrone.Core.Download.DownloadClientBase`1[TSettings].Test () [0x00006] in C:\BuildAgent\work\5d7581516c0ee5b3\src\NzbDrone.Core\Download\DownloadClientBase.cs:116
 

Spud

Member
Joined
Oct 23, 2011
Messages
106
I'm having an issue with getting sonarr to conect to sabnzbd I can get radarr working fine but when I set up sonarr with the same details I get:
"Test was aborted due to an error: Unable to connect to SABnzbd, please check your settings"
could anone help me with this please?

error log is as follows
(Connection refused): 'http://192.168.1.9:8090/api?mode=get_config&apikey=be91fef849824039bdb94637f0b2ea77&output=json' --->

I see you have changed the port to 8090 your sure you have that correct and the right API?

BTW probably not a good idea to post your API in here so make sure you generate a new one once you get this sorted.
 

Hedgemuffin

Newbie
Joined
Oct 25, 2020
Messages
2
thank you @Spud , yes the API is correct (& I have changed it), I just coppied the details from my radarr setup that is working. SAB is set to listen to 8080 but radarr is only happy if it is set to 8090.
I've tried both 8080 & 8090 on sonarr but neither work I get the same connection refused error
 
Top