Sabnzbd / Sickbeard Docker Install


Recommended Posts

I've had to upgrade my unRAID server of 5 years because of instability issues.  It now appears to be up and running well.  I've learned what I can around Dockers, but struggle with some of the paths and ports they request.  I do have PLEX up and running as it should be so I've gotten that far, but Sab and Sickbeard are confusing me for some reason.

 

My system is relatively simple with only NAS and the PLEX Docker on it right now.  I have an array of 5 drives and my cache is strictly used for apps and any work sickbeard and sab might do.  The resulting file of course would be moved to the array.  I have the mover disabled.

 

I have one docker image on the root of the cache and only one folder called "Apps."  The Plex config files are installed in a "Plex" folder under the "Apps" folder.  Should be pretty simple, right?  Well, I did get Sab to somewhat install, but when it attempted to download a file it said I was running out of space?

 

Here was my thought:

 

Network Type = Bridge

/config = /mnt/cache/apps/sabnzbd

/downloads = anywhere on the cache, right?  I was thinking /mnt/cache/apps/sabnzbd_downloads

 

What is the difference between container port and host port?  Previously, to access Sab I used port 8082.  I would just enter the IP of unraid followed by 8082 and it would come up.  Should it be 8082 for both container and host?

Link to comment

that will work, just make sure "apps" share is set for cache only - otherwise the mover script will mess it up.

 

I also have /media = /mnt/user

 

then in sab I have categories pointing to my share types = ex:  bd = /media/BD Movies, tv = /media/TV, dvd = /media/DVD Movies etc

 

this way sab can move the files into the correct shares

 

container port needs to stay as is, host port is what port you have avail to access the web  ui on - i have sab on 8080, sb on 8081 etc

 

Myk

 

Link to comment

I also have /media = /mnt/user

 

then in sab I have categories pointing to my share types = ex:  bd = /media/BD Movies, tv = /media/TV, dvd = /media/DVD Movies etc

 

Thanks.  I like what you've done here and it seems like a good option.  I guess by pointing to /mnt/user it gives you the ability to go to any share on the server...correct?  So rather than taking the time to create individual paths for the container you can just do this and point to really just about anywhere...right?

Link to comment

I also have /media = /mnt/user

 

then in sab I have categories pointing to my share types = ex:  bd = /media/BD Movies, tv = /media/TV, dvd = /media/DVD Movies etc

 

Thanks.  I like what you've done here and it seems like a good option.  I guess by pointing to /mnt/user it gives you the ability to go to any share on the server...correct?  So rather than taking the time to create individual paths for the container you can just do this and point to really just about anywhere...right?

Doing it this way gives the container access to all of your files. If you take the time to create individual paths, you control which files the container can access. Since you only have to do it once, it really doesn't take much time to create the individual paths. Just takes a little more thought when you are trying to configure multiple dockers so they have access to the same files.
Link to comment

I also have /media = /mnt/user

 

then in sab I have categories pointing to my share types = ex:  bd = /media/BD Movies, tv = /media/TV, dvd = /media/DVD Movies etc

 

Thanks.  I like what you've done here and it seems like a good option.  I guess by pointing to /mnt/user it gives you the ability to go to any share on the server...correct?  So rather than taking the time to create individual paths for the container you can just do this and point to really just about anywhere...right?

Doing it this way gives the container access to all of your files. If you take the time to create individual paths, you control which files the container can access. Since you only have to do it once, it really doesn't take much time to create the individual paths. Just takes a little more thought when you are trying to configure multiple dockers so they have access to the same files.

 

True, but I dont have to change container config when I am changing my shares all the time  - just update my category....

 

Myk

 

Link to comment

I've never understood this and since I'm struggling to have this work properly I thought I might ask.  Why in the world does the Sabnzbd Docker ask you to create a "downloads" container volume and host path when it already has one inside of the Sabnzbd folder structure that is created outside of the image file (@ Sabnzbd/Downloads/Complete)?  When I used Sickbeard in unRAID v5 I simply pointed Sickbeard to the Sabnzbd/Downloads/Complete folder.

Link to comment

I've never understood this and since I'm struggling to have this work properly I thought I might ask.  Why in the world does the Sabnzbd Docker ask you to create a "downloads" container volume and host path when it already has one inside of the Sabnzbd folder structure that is created outside of the image file (@ Sabnzbd/Downloads/Complete)?  When I used Sickbeard in unRAID v5 I simply pointed Sickbeard to the Sabnzbd/Downloads/Complete folder.

Because docker containers are totally separate from each other.  You could use Sab's download folder in the appdata folder (appdata/Sabnzbd/downloads/complete), but then for sickbeard to find the file you'd have to map /appdata/sabnzbd/downloads/complete to sickbeard.  The cleaner way is to map /downloads to a separate folder on your system.

 

To use the docker system and paths more akin to how plugins worked, you would map /mnt (to /mnt) to each container.  See the docker FAQ for a confusing explanation of path mappings.  In particular these two posts:  http://lime-technology.com/forum/index.php?topic=40937.msg387520#msg387520  and  http://lime-technology.com/forum/index.php?topic=40937.msg387919#msg387919  (the second is the easier to understand method, and more akin to what you are used to)

Link to comment

Because docker containers are totally separate from each other.  You could use Sab's download folder in the appdata folder (appdata/Sabnzbd/downloads/complete), but then for sickbeard to find the file you'd have to map /appdata/sabnzbd/downloads/complete to sickbeard.  The cleaner way is to map /downloads to a separate folder on your system.

 

Thanks, but that still strikes me as really odd especially since "cleaner" seems to be the explanation.  You have to create a container volume and host path in Sickbeard anyway to point to where the completed downloads will be...right?  Then wouldn't it make more sense to leave the paths in Sab at default and simply create those mappings for Sickbeard?  I guess it just seems odd to me that we have a Downloads/Completed folder in Sab already, but we than create another entirely new folder to do the same thing.  Thanks again because I do appreciate the explanation.  I'm just trying to get the logic.

 

Of course what do I know.  I still can't get sickbeard and sab containers to talk to each other accurately. :)

Link to comment

Im in the mood now to try another explanation.

 

Let's say that your mappings are something like:

 

SAB: /config to /mnt/user/appdata/Sabnzbd

 

Sickbeard /config to /mnt/user/appdata/Sickbeard

 

 

So, if you use SAB's download folder located within ITS /config folder, what happens is this:

 

Sickbeard tells SAB to download a file.  This works fine. 

 

SAB downloads, and then tells SickBeard that the completed file is in /config/downloads/complete/TV  (where it was downloading everything to).  That particular folder on your array is actually /mnt/user/appdata/sabnzbd/downloads/complete/TV

 

Sickbeard looks for the file that sab just downloaded.  It looks in /config/downloads/complete/TV (where SAB told it is was).  BUT, sickbeard's config folder is actually stored on the system at /mnt/user/appdata/sickbeard.  (Since that is what its mapping is set to)

 

Net result is that Sick can't find the download that Sab finished to handle the post-processing.

 

If you add another container path of /downloads to EACH of the containers, and point sab to download into it, the next result will be that both sick and sab will be looking at the same place on your system for the downloaded file.

 

 

Confusing I know.  mapping /mnt to /mnt to every container and then referencing all the folders within sab, sick, CP, plex, whatever you use to /mnt/user/whatevershareyouwant makes things easier to understand.  The key to understand is to think that EVERY container is running on its own separate system.  None of the have any concept that there are any other containers running at all.  As far as they are concerned they are running by themselves on a dedicated computer. 

 

Its a messed up concept to wrap your head around at first, but it solves a million problems that plugins with v5 created.

Link to comment

Don't kill me.  I'm slow.  The light bulb went off about 90%. 

 

Are you saying the DOWNLOADS container volume and the host path for both sickbeard and sab have to be identical or they can't talk to each other accurately?

 

Regardless of the answer I think I'll still do this since it can't hurt and appears to match the logic you explained.  I should probably think less and just do it.  Thanks for your help. 

Link to comment

Don't kill me.  I'm slow.  The light bulb went off about 90%. 

 

Are you saying the DOWNLOADS container volume and the host path for both sickbeard and sab have to be identical or they can't talk to each other accurately?

 

Regardless of the answer I think I'll still do this since it can't hurt and appears to match the logic you explained.  I should probably think less and just do it.  Thanks for your help.

Bingo!  And don't worry ->  you're doing just fine.  The other thing to keep in my when setting up SickBeard is to use the IP address of the server when telling it how to talk to sab (along with the API key).  Using localhost isn't going to work.

 

 

Link to comment

Thanks.  I think this put me much closer.  Downloading, moving, and cleanup works now with one issue.  The resulting file is being put in the SHOW NAME folder and not the respective Seasons folder.  I suspect this might have to do with Categories in Sab because I didn't define any.  I seem to remember you need to add a category for TV...right?  If so, what should the Processing and Folder Path be?

 

Just so you know, I do NOT have flatten folders marked in Sickbeard.  I would want the resulting file to be put in the correct Seasons folder.

Link to comment

Got it working.  They've embedded some of where the file will be saved into the renaming the file.  That wasn't obvious to me.  Once I added the "Seasons" syntax in to the renaming of the file it got saved under the Seasons folder as I hoped.  I think I need some Tylenol. :)

Link to comment
  • 3 weeks later...

I also have /media = /mnt/user

 

then in sab I have categories pointing to my share types = ex:  bd = /media/BD Movies, tv = /media/TV, dvd = /media/DVD Movies etc

 

Thanks.  I like what you've done here and it seems like a good option.  I guess by pointing to /mnt/user it gives you the ability to go to any share on the server...correct?  So rather than taking the time to create individual paths for the container you can just do this and point to really just about anywhere...right?

 

Hi, Sorry to seem slow but could you explain exactly how you have things setup?

 

My unraid server is called 'Tower', I then have a number of user shares; Video, TV Shows, Music, etc...

 

In the docker I have the container volume /mnt set to /mnt/user. That should then expose all the user shares to the docker?

 

Assuming this is the case what do I then need to put in the Category 'folder/path' field to get SAB to place the decompressed file in the correct folder?

 

I've tried '/tv shows' but that just ends up in the config folder.

 

Link to comment

I also have /media = /mnt/user

 

then in sab I have categories pointing to my share types = ex:  bd = /media/BD Movies, tv = /media/TV, dvd = /media/DVD Movies etc

 

Thanks.  I like what you've done here and it seems like a good option.  I guess by pointing to /mnt/user it gives you the ability to go to any share on the server...correct?  So rather than taking the time to create individual paths for the container you can just do this and point to really just about anywhere...right?

 

Hi, Sorry to seem slow but could you explain exactly how you have things setup?

 

My unraid server is called 'Tower', I then have a number of user shares; Video, TV Shows, Music, etc...

 

In the docker I have the container volume /mnt set to /mnt/user. That should then expose all the user shares to the docker?

 

Assuming this is the case what do I then need to put in the Category 'folder/path' field to get SAB to place the decompressed file in the correct folder?

 

I've tried '/tv shows' but that just ends up in the config folder.

Don't use this, and haven't really read the rest of your posts.

 

If you have a user share named "TV Shows", then unRAID sees that at "/mnt/user/TV Shows".

 

If you have /mnt/user mapped to /mnt in the container, then your "TV Shows" files are going to be at "mnt/TV Shows" since the container sees /mnt/user at /mnt.

 

HTH

Link to comment

Hi, Sorry to seem slow but could you explain exactly how you have things setup?

 

My unraid server is called 'Tower', I then have a number of user shares; Video, TV Shows, Music, etc...

 

In the docker I have the container volume /mnt set to /mnt/user. That should then expose all the user shares to the docker?

 

Assuming this is the case what do I then need to put in the Category 'folder/path' field to get SAB to place the decompressed file in the correct folder?

 

I've tried '/tv shows' but that just ends up in the config folder.

 

I am far from a Sab expert, but I think I know where your trouble might lie.  You are trying to get things setup with the way Sab and Sickbeard used to work.  This forced you to use things like Categories and editing an autoprocess file, etc..  The irony is this new way is much easier.  You basically don't do anything with Categories.  What you do have is one folder where Sab will send your downloads.  Sickbeard will then monitor it about every 10 minutes.  If it finds something in there it will process it accordingly.  You can also force this process from Sickbeard.  I think it is called "Manual Process Update" or something like that.

Link to comment

I tried mnt/TV shows and ended up with files in:

 

/config/Downloads/complete/mnt/TV Shows/

 

I am far from a Sab expert, but I think I know where your trouble might lie.  You are trying to get things setup with the way Sab and Sickbeard used to work.  This forced you to use things like Categories and editing an autoprocess file, etc..  The irony is this new way is much easier.  You basically don't do anything with Categories.  What you do have is one folder where Sab will send your downloads.  Sickbeard will then monitor it about every 10 minutes.  If it finds something in there it will process it accordingly.  You can also force this process from Sickbeard.  I think it is called "Manual Process Update" or something like that.

 

I'm not using Sickbeard at the moment, just trying to get it to work directly from SABnzb...

Link to comment

I tried mnt/TV shows and ended up with files in:

 

/config/Downloads/complete/mnt/TV Shows/

 

It looks like you need to define a path in the Docker to be named something like /Downloads and the path to be something like /mnt/TV Shows/.  Then in SAB you look for a path called "Downloads".  That will map directly to /mnt/TV Shows. 

 

This all takes a little getting used to when using Dockers, but once you start to understand how things work inside and outside of the Docker the principle can be applied to almost any of the other Dockers.  I suspect you are close.

Link to comment

here is what i have mine set at

 

sab downloads to my cache drive, all my config stuff is on a ssd mounted outside the array

 

/config = /mnt/disk/appdisk/sabnzbd

/media = /mnt/user

/downloads = /mnt/cache/appdata/sabnzbd/downloads/

 

if your gonna put all on the cache drive just sub the /config to = /mnt/cache/appdata/sabnzbd

 

also dont forget "appdata" needs to be a cache only share

 

Myk

 

Link to comment

here is what i have mine set at

 

sab downloads to my cache drive, all my config stuff is on a ssd mounted outside the array

 

/config = /mnt/disk/appdisk/sabnzbd

/media = /mnt/user

/downloads = /mnt/cache/appdata/sabnzbd/downloads/

 

if your gonna put all on the cache drive just sub the /config to = /mnt/cache/appdata/sabnzbd

 

also dont forget "appdata" needs to be a cache only share

 

Myk

 

Thanks - Do you then use categories in SAB to place completed downloads in specific folders on user? If so what path do you use?

Link to comment
  • 2 months later...

So, I am trying to get SAB and sickbeard setup but I am having trouble.  Can I still use the sickbeard autoprocess script in SAB?

Most (all?) of the docker implementations for SAB and Sickbeard don't support the autoprocess script, which is unfortunate because I don't get any failed download processing without that.  As an alternative setup Sickbeard to poll for completed downloads on a timed basis.

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.