My ARRs installation walkthru for my own documentation and your review (updated live) as installed

5hepherd

Dabbler
Joined
Feb 24, 2023
Messages
23
Your criticisms, tips, recommendations, clarifications are MORE than welcome! :)

After four days of trial and error, and frustration, I am going to chronicle my quest to make peace with the "Arrs"and get my media server humming. I don't know what I'm doing. I started teaching myself linux, and networking, and the like just a little while ago, and am now ballz-deep in hypervisors, nodes, and containers.

I successfully integrated five of the Arrs with sabnzbd and had media content spitting out of jellyfin on three TVs and four phones. Then I messed with it... and worse, I didn't document my install.

FOUR unsuccessful attempts later, days of all-nighters, and I still can't get things to cooperate.

I should've left it alone on the testbed, and never tried to migrate it. At the price of time, it would've been cheaper to just buy another testing rig, and let the Arrs play happily with my jellyfin. Live and learn.

So, now, the goal here is to document (over-document?) each step of my install process, not only for myself, but so it makes it easier for those who come later. Additionally, this documentation makes it easier to answer "what'd you do?" when I go ask others for help.

I want to build a "box-of-stovetop" recipe to follow, with lotsa pics and whatnot, and then, eventually, make a screencast recording of the whole shebang, so hopefully anyone as dumb as I can follow along.

Here's what I tried that didn't work: 1) Installing all the ARRs in one jail with sabnzbd, on TrueNAS. 2) Installing all in seperate jails, with their own IP addresses, on TrueNAS 3) Running everything in docker, via Portainer, and 4) running it all on docker on their own isolated network.

I am running ProxMox, and TrueNAS on a VM in ProxMox. I am running a separate Jellyfin VM, also on proxmox.

Because I was simultaneously testing different set-ups, I can't remember which actually worked. I think it was portainer, but I can't remember. But because I'm a glutton for frustration, let's do it like this...

The following is the course I took for attempt number five (*%$!*!!!) - installing all on TrueNAS, each in their own jail, and with NAT.

*** Installing TrueNAS is outside the scope of this write-up, and we will proceed with the assumption that you have already set up some sort of disk array, and have TrueNAS fired up.

My aim is to make things simple, with few moving parts. Ideally, if I can figure it out, I want to use SABnzbd to download usenet content to my TrueNAS disk pool, have one folder for incomplete, and another for Complete, and in that folder have categories for that media.

In a perfect world, they would just stay there, and the rest of the ARRs and JellyFin would just know where to look, point at, and do their thing without trafficking a bunch of data around. [Note to self: Keep wading through insufficient explanations on how to hard-link, and find out WTF an "atomic link is". Actually, I don't even know if a hard link is what I think it is. If it means the stuff stays where it is, and just acts like it is accessible locally to each program, then that's what I want.]

Pools and DataSets


PART 1 - Creating datasets, users, groups, and setting up Windows and Linux Shares

I want to keep this super simplistic, so we're going with a very basic dataset structure.

If you click on the left-hand side menu, the first option under "STORAGE", is "POOLS"

This is how mine looks:

pools.png


Then I set up the windows and linux share permissions

On the left-hand menu bar, click "SHARING" and then select "Windows Shares SMB" and that will open the SMB/Add configuration menu.

add_smb_share.png


At the very top, where there is a folder with a "plus" sign, it says "Path". This is the location you wish to specify in your Pool/Dataset that you wish to be shared.

Mine looks like this:

I have specified sharing the dataset "arr" under my pool "naspool1"

By clicking the folder, it populates the bath, or alternatively, you can just type it in.

add_share_path.png


Again, I barely know what I'm doing, so above you can see I went with "Default share parameters" and added, the "Browsable To Network Clients" checkbox. I don't know if you need to, but it seemed like a good idea.

I repeated this process and also shared "naspool1" in the same manner

I did the same thing for the Unix /NFS shares

Click on the left-hand menu and select "SHARING", then select "UNIX Shares (NFS)"

unix_share_path.png


Same as with the SMB share, I specified the path to the datasets I wished to share. I did this once for "arr", and again for "naspool1".

The options are a bit different, but I checked "All Dirs" because I want the different programs to be able to reach different folders in the directory. Again, not sure if this is necessary, because I'm sharing at the higher level, but I wasn't sure.

What I definitely don't know about is "Maproot User" or "Maproot Group" or "Mapall User/Group". I have no idea what that's for, so I didn't play with it. If I had to guess, it would be to allow others access to the map's root directory file? I just clicked "ADD" and crossed my fingers.

unix_share_maproot.png


What I end up with is this:

unix_share.png


With both my Windows SMB (CIFS / SaMBa) and my Unix shares specified, it now looks like this:

shares.png


Now, open up Windows Explorer, or the file browser of your choice. Under "This PC" or "My Computer" or in the "Network" tabs, because we are going to look for the newly shared file.

In my case, a network location popped up and gave me an error.
I get a picture of the network shares. For some reason, when I click on one, I get an error message.

windows_explorer_login_error.png


In my case, I think this is because I had a previously mapped network drive to the share we just messed with.
So anyway, type the location of your shared dataset. For me, in Windows Explorer, I click on the address bar where it says "This PC" and type two backslashes \\ and then the IP address of the computer where my TrueNAS is running, where I set up the dataset shares.

In my case, it looks like this:

\\192.168.1.223

windows_explorer_type_ip.png


When I hit "ENTER" it takes me to my newly minted network shares from TrueNAS. ... but first, I have to log in. Double-Click one of the folders, and a login form should pop up.

windows_shared_files.png


I use the credentials of a User I made in TrueNAS. For those who have not yet set up users, it's coming up, so for now log in as "root" with your TrueNAS password.

windows_explorer_login.png


While we're testing the share we set up, Windows makes it pretty easy to install the directory structure we wish to set up for the ARRs and our media server.

I am only going to use UseNet, no torrents or anything, so I'm gonna keep it pretty simple. Ignore "longjohn". He's a pirate character User I made that is a member of all the groups of the ARRs and SabNzbd as a precaution in case I have trouble accessing things. Do it, don't, your mileage may vary.

Essentially, I have a "downloads" folder that branches to "complete" and "incomplete". This is where I intend to have sabnzbd dump my downloads. While downloading, they are in "incomplete". When they finish, they move to "downloads" and, hopefully, via the magic of the cooperating ARRs, they get tagged and sorted to their respective locations. So within the "complete" folder, I have a folder for "books" "movies" "music" "other" and "tv"

windows_explorer_directory_structure.png


Then, outside of the downloads folder, just under the "arr" directory, I set up some more folders "MISC" "MOVIES" "MUSIC" "TV"

Again, I don't know if this is necessary, but I figured I may need it for some of the functionality of the ARRs or my media server, Jellyfin

As I'm unfamiliar with the workings of their inner-mechanisms, I just did it for a "just in case" scenario, as it may make library organization or access easier. I also went with ALL CAPS so I can distinguish them from the others, just to make it less confusing when in a Command Line Interface (CLI) or something.

windows_explorer_added_folders.png


Okay, we have our shares set up, let's go back to TrueNAS and make some users and groups. On the left-hand menu bar, just under "Dashboard", click on "Accounts" and then click on "Groups"

I created a group for each of the ARRs applications I am installing, plus one for SABnzbd.

When the ARRs get installed, they create user IDs. When one of the ARRs asks TrueNAS to access data, they present that ID number (this is my primitive understanding of it anyway) and unless you set them up each as a user or a group, TrueNAS doesn't know what to do with that ID number.

Below are the ID numbers associated with each application, and I made a group for each one. The below photo can act as reference for the ID numbers.
my groups:

groups.png


To add a group, click in the upper right corner where the button says "ADD"

Here's the one I made for SABnzbd. I named it "SabaNews-Group" because my dyslexia makes saying / typing s-a-b-n-z-b-d miserable. Name it whatever you like, as long as you can remember to what it pertains, and give it the appropriate GID number, per the pic above.

sabanews_group_config.png


Repeat this process for each of the ARRs you wish to install.

Is this necessary? I have no idea. Correct me, please.

When that's done, let's head back over to "ACCOUNTS" and click on "USERS"

If you're just setting this up, you should only have one user, "root". If you see a bunch, and you didn't make them, click on the GEAR icon in the upper right corner and select "HIDE Built-In Users"

Click the blue tab in the upper right-hand corner "ADD"

Fill it out and add your first user. Again, not being a computer surgeon, I winged it. Here's what mine looks like for "longjohn". I also added a user "Shepherd" that I use for my day-to-day access and such, so I'm not using "root".

Here's the configuration for "longjohn": (I assigned the arbitrary UID (user id) of 555)

user_longjohn_settings.png


Under "Directories and Permissions", I gave "longjohn" a home directory at /mnt/naspool/arr/longjohn I don't know that he'll ever need it, but it's there, and that's why we saw it earlier in the Windows Explorer directory display. Like user "Shepherd", I clicked the boxes as you see aboveabove. Full Read Write Execute access at the user and group level, and Read and Execute under "other".

I checked "Samba Authentication" for both users. I don't know if I needed to, but I did. I figured removing any sharing obstacles, as I've had issues with those in the past installations, would be a good call - perhaps not from a security standpoint.

Here's what it looks like for user "Shepherd":

user_Shepherd.png


and for user "root":

user_root.png


when we're done, a quick check of user "longjohn" shows us the following:

user_longjohn.png


while we're here at this point, let's go back and check the share security and permissions settings as seen by Windows. Go back to Windows Explorer and locate your shared locations, like we did before. Right-click on the folder you shared and select "Properties"

windows_explorer_check_security_props.png



In the pop-up dialogue that appears, we can select the "Security" tab and check the permissions I installed on "arr", the shared location we set up in the TrueNas dataset

windows_explorer_security.png


By selecting "Edit..." we can add permissions for user "Shepherd" and check the permissions of the various groups we created earlier. I gave "Shepherd" full control

windows_explorer_securityedit.png


Back to TrueNAS

Then, I went back to our groups tab and added the users to the various groups created earlier. It'[s a matter of choosing the "who" on the left, and moving them to the right. I will add "Shepherd" and "longjohn" to each of the groups: Radarr-group, Lidarr-group, etc...

lidarr_group_members.png


The theory here is that I use the login for "Shepherd", so I want access to all the jails and apps with that one login.

Next, I modified the permissions for the shares by editing the ACL - Access Control List (that's in PART 2)
 

Attachments

  • windows_explorer_type_ip.png
    windows_explorer_type_ip.png
    49.7 KB · Views: 99

5hepherd

Dabbler
Joined
Feb 24, 2023
Messages
23
PART 2 - Setting up and Modifying Access Control Lists (ACLs) for our dataset(s)

Next, I modified the permissions for the shares by editing the ACL - Access Control List

Back on the left-hand menu, select "Storage" and then "Pools"
Click the hamburger (three vertical dots) for the dataset you shared earlier. In my case, it is called "arr" and in the drop-down menu, select "Edit Permissions"


edit_acl2.png


In the next page, I added "Shepherd" as the owner which is the first option in the upper left of the page. Click the down arrow next to the user input line and select whichever user you set up. In my case, it's "Shepherd". Check the box that says "Apply User"

apply_user_acl.png


Then I did the same thing on the next line to assign the group that owns the shared dataset. Check the box that says "Apply Group"

apply_group_acl.png


Then, I clicked the blue box that says "SELECT AN ACL PRESET" and I selected "RESTRICTED" by clicking the down arrow and selecting the option.

edit_acl.png


preset_acl_again.png


Here's what it looks like at this point:

acl_midway.png


I then clicked the blue box in the bottom right-hand corner "ADD ACL ITEM" This adds an additional permission configuration box just above it. Here is where I added all the groups I created earlier. I went through and assigned a permission of "FULL CONTROL" for each group. They probably don't need "FULL CONTROL", so if you want, just above that option, under the menu "Permission Type", one can select "Advanced" and get down on the granular level. I'm lazy, and this is day 4 of no sleep trying to get this to work, so I'm going for expediency over security. Hack me.

Under "Who" I selected each group created earlier. Here's what it looks like adding the group "Radarr-Group"

acl_group_fullcontrol.png


acl_permissions.png


I then selected the checkboxes "Apply permissions recursively" because I want these permissions to trickle down and apply to the folders we set up earlier, and any data that might be there if we're adding these permissions after some installs. I also checked "Apply permissions to child datasets" which doesn't do anything right now, but if there were sub-datasets nested in this one, and you wanted access to them, then check this box. If you wanted those child datasets to have their own permissions, more or less restrictive, then don't.

acl_child_datasets.png


Hit "SAVE" and your ACL permissions for your shared dataset should be done.

Again, you can go back into windows and check like we did earlier. We can see the groups that we added to the ACL in the Properties/Security/Edit tab

windows_explorer_securityedit.png
 

Attachments

  • edit_acl.png
    edit_acl.png
    91.5 KB · Views: 64

5hepherd

Dabbler
Joined
Feb 24, 2023
Messages
23
PART 3 - Installing our jails and plugins and modifying ACLs

Now we will begin installing our applications / plug-ins to run in the TrueNAS jails

On the left-hand menu bar, select "Plugins"

plugins_button.png


In the upper left corner of the plugins page, click the dropdown arrow next to the blue button that says "REFRESH INDEX" and select "Community"

plugins_templates.png


It should change to this:

community_plugins.png


Scroll to the right to find whichever application you wish to install. In my case, I was going to install Sonarr, but Radarr presented itself first (alphabetically), and I already told you I'm lazy. So we'll start with Radarr.

community_radar.png


Click on the Radarr icon and then click the blue "INSTALL" button. You will get a warning dialogue box popup. Just hit "CONTINUE"

community_warning.png


On the next pages, we will configure the options for our Radarr jail. At the bottom, click the blue "ADVANCED PLUGIN INSTALLATION" button.

radarr.png


On the next page, under "Basic Properties" we will add a name for our new jail. I'm super original, so I went with "Radarr"

advanced_jail.png


I left the network set to "NAT", but you can for DHCP if you want an IP assigned.

Under the jail properties page, I clicked "allow_mlock" because Radarr and Sonarr sometimes get cranky about not having it. If you want to know about mLock, here you go --> https://man.freebsd.org/cgi/man.cgi?query=mlock

I'm not sure if we need to specify "allow_mount", but I figured "Why not?" and selected "allow_mount_zfs"

jail_properties and mount mlock.png


under "Custom Properties" I left everything alone, as I'm not sure what adding "jail_zfs" would get us
jail_custom)properties.png


Hit the blue "SAVE" in the bottom left and wait

jail_install.png


If all goes well, you should see this:

plugin_install_success.png


I don't know why the chmod can't and don't know if those need to be created manually. (anyone know?)

But if you'd like to check the operation of Radarr, go ahead and copy and paste the Admin Portal ip address into your browser. In my case it is that is the IP Address of my TrueNAS machine, and we are connecting to the Radarr web server on port 7878 This is the default port setup, so if you changed yours when you set up the jail (like if the default port was already in use) then make sure you go to the one specified in the successful install box.

If you have trouble loading the webpage, make sure you are trying to connect via http, not https If you want a secure / encrypted connection between applications, then you'll need to set up security certificates and whatnot... stuff I don't know how to do, so good luck


radarr_test_7878.png


Chris_Griffin.png



Now we will add mount point to our newly created jail Radarr

First, we need to stop the jail so we can modify its configuration. Click either the JAILS or Plugins tab, and select your jail and stop it. If you navigated via "Jails" then select the checkbox and then stop the jail. If you went there with the "Plugins" tab, click the little, blue arrow all the way to the right of your jail, and then select "STOP"

Once it stops, click on "MOUNT POINTS"

stop_jail.png


Nect, click on the dropdown button in the upper right called "ACTIONS" and select "Add"

mout points.png


This page is asking us to specify which location we want our application plugin / jail to reach, the "Source", and then tell TrueNAS where we want to virtually "mount" that location within the file structure of the jail, the "Destination".

mout-points-add.png


Our dataset we created earlier is called "arr", so we will select that as our "source" location. Under the folder with the "PLUS" symbol. we can see our TrueNAS data pool file tree. Navigate to the dataset you wish to add, and click on it. In my case it is /naspool1/arr As you click down through the directory structure, find the dataset you want, "arr" in my case, and then click it so it populates in the input box. Alternatively, like when we created our shares, you can just type it in.

mount-points_source.png


Next is our "destination" setting. In my case I'm going right to the /mnt/ directory, but I've also seen people go to /usr/local/share/[created directory]

I don't know which is better, let me know if you do.

Anywho, I clicked on the /mnt/ folder and then typed "NASdataArr" afterwards, which should create that directory as a mount point.

mount_points_destination.png


At this point it is my understanding, and correct me if I'm wrong, that this is similar to mapping a network drive in Windows. The actual folder and data don't exist there, locally, on the jail's file structure, but by navigating to /mnt/NASdataArr you are letting the jail know to include that dataset as if it did.

That's done, and now it should look like this:
mount_points_radarr.png

Now let's click the hamburger (three dots) button and select "Edit ACL" and we get to have fun with ACLs again

tastes like buring.png


I basically add the user I am using and all the other ARR groups we created earlier
add_groups_to_jail.png


when done, we can start the Radarr jail back up and check it with our browser again

radarr_test_7878.png


Urethra!
1677375609183.jpeg


Now, it's rinse and repeat. I will now install Sonarr and Prowlarr and SABnzbd in similar fashion. Most most, this is all you need, but if you want Music too, then throw Lidarr into the mix.
 

5hepherd

Dabbler
Joined
Feb 24, 2023
Messages
23
PART 4 -Installing the rest of the ARRs and SABnzbd and putting it all together

doing it right now...
 

5hepherd

Dabbler
Joined
Feb 24, 2023
Messages
23
PART 4 -Installing the rest of the ARRs and SABnzbd and putting it all together

We previoulsy installed Radarr for our movies and configured its moutpoints and ACL permissions, and added the ARRs goups to that jail.

Next up is Sonarr for our TV This goes just like the Radarr installation ( <-- haha, I manage a Radarr installation in my bedroom)

So go back to the "Plugins" tab and switch the options back over to "Community"

plugins_templates.png



Choose "Sonarr" and click "INSTALL"


plugins_sonarr.png


Click on ADVANCED Sand sme as with Radarr, I didn't mess with much. I made sure mlock was selected, I allowed mounts, and chose zfs and I used the default network settings. I forgot to mention in the Radarr install, but check the box enabling Autostart

sonarr_set_up_advanced.png


I forgot to mention in the Radarr install, but check the box enabling Autostart

sonarr_autostart_jail_prop.png


When you're done, hit SAVE and wait

sonarr_installing.png


Mine likes to hang for a bit at 75% , but then it eventually goes through

sonarr_install_hang.png


still waiting... and then finally:

sonarr_install_success.png


yesss.png

Now, as before, we can navigate to the Admin Portal IP Address. In my case, it is that is the IP addy of my TrueNAS machine and port 8989 for the Sonarr application

sonarr_test.png


Hell yeah.png

Just like before, we need to now stop the running jail to set up the mountpoints, ACL permissions, and add groups or users. So stop the jail, however you prefer, and then click on "MOUNT POINTS"

sonarr_stop.png


Go the right and click "ACTIONS" and then select "Add"
sonarr_mountpoints_add.png


Again, for "Source" we are choosing the location on our NAS device, in my case, TrueNAS where my shared dataset is located.

/mnt/naspool1/arr

You may notice the blue ACL box is now there, indicating that there are already ACL permissions set up from our previous install of Radarr

sonarr_mountpoints_options.png


Likewise, as before, we select our "Destination" location as the point where we want to mount our NAS dataset to act as a local location within our jail. For me, this is /mnt/naspool1/iocage/jails/root/mnt/NAS so I will navigate down to /mnt/ then type NAS in the input line (or I could type NASdataArr if I want to keep it consistent with Radarr's install)

sonarr_mountpoints_options.png


When you're done, it should look like this:
sonarr_mountpoints_added.png


Add whatever relevant groups to your ACL if you didn't previously.

Let's have a perusal of Prowlarr now

It's the same as the other two

community_prowlar_install.png


Click on advanced, then name your jail. I named mine ... ... ... Prowlarr

prowlarr_install_options.png


prowlarr_jail_properties.png



prowlarr_mlock_mount.png



prowlarr_installing.png


prowlarr_install_success.png


a6422c613ffa05ef38d8030525b7c535.jpg

Let's test it out:

prowlarr_test.png


images

(Hey, I don't win often, so like to celebrate all the little victories)​


Same as with the Radarr and Sonarr implementation, we shut down the jail and install mount points.

prowlarr_mountpoints_before.png


Source = NAS Destination = where on the jail you want the NAS to pretend to be
prowlarr_mountpoints_directory.png


add peeps to your groups if you need to, and add the groups with the USER ID of the jails to your ACL permissions, just as before (you shouldn't need to as we already did this)

prowlarr_group_members.png



At this point, we have our TV and MOVIE manager, and our Index manager (Prowlarr (or jacket or whatever), and we are nearly officially dangerous.

But, we need a downloader to put any of those into action. I went with SABnzbd. I got it working ONCE. That gets installed next in the exciting conclusion of PART 4. "PART4: PART 2"
 

Attachments

  • sonarr_mountpoints_add.png
    sonarr_mountpoints_add.png
    40 KB · Views: 67
  • sonarr_set_up_advanced.png
    sonarr_set_up_advanced.png
    116.5 KB · Views: 82
Top