
In the guide I will be taking you through the steps to download and setup NZBGet in Docker on a Synology NAS, this makes some assumptions that you know your way around the DSM interface.
On to the Guide
The first step is to download the NZBGet container, we will be using the one provided by Linuxserver.io and can be found within the Docker interface on the registry tab.
You will just need to enter NZBGet as the search term and the top result should be the Linuxserver image.

Right click on the image and click Download, you can track the progress in the image tab

Setting up a Docker User for NZBGet and Obtaining the PGID and PUID
In previous versions of this guide we used your default admin account for each container, this is not very secure so please now follow the separate setup guide and then head back here.
Setting up the NZBget container
Back in the image menu highlight the NZBGet container and click on Launch. This will open up the setup wizard.

Tick the ‘Enable Auto Restart’ this will ensure the container starts up automatically if you reboot.

Then click on volumes, we are now going to set up the shares we want to mount. NZBget only needs access to two folders.
Under the ‘Docker’ share create a folder called ‘NZBGet’ this is important as your configuration files will be stored here. We do the same thing for all the other guides.
And then also add your downloads folder, this can be wherever you want to download your files. It should look like the screenshot below.

Next click on Port Settings, we can now setup which port we want to use for NZBGet, by default the local port will say ‘Auto’ we need to change this to our own value otherwise the port will change every time you restart. In this case I am using 32333 but you can choose anything you want. This effectively port forwards to the container port of 6789.

You do not need to change any settings in Network or Links
Environment Variables (PGID, PUID and Timezone)
Next we are going to setup a couple of ‘Environment variables this is the user details we took note of earlier in the guide, this allows the Docker image to have the right access to the shares we just added.
In the environment tab enter the details as shown in the screenshot, but change them to whatever yours were noted as.
You can find a list of timezones here https://en.wikipedia.org/wiki/List_of_tz_database_time_zones

Click OK and this will take you back to the summary screen we saw earlier.

You can now launch the Docker image as it is ready to roll. Open up a new tab and go to the IP of your NAS and the port number you chose.
The default login details are:
Username = nzbget
Password = tegbzn6789

Also as a few comments have requested this is the PATHS setup within NZBGet itself.

great writeup! any hints to get sonarr to talk with nzbget when they’re both in docker on a synology nas?
Super easy. in Sonarr Download Client settings, just use the IP and Port you setup for NZBGet… also the username and password assuming you set them up. Should fire right up… In NZBGet make sure you have a Category setup called ‘tv’ in line with the setting in Sonarr.
hmm that’s what I though, but getting this error
Test was aborted due to an error: Unable to connect to NzbGet. Error: ConnectFailure (Connection refused): ‘http://localhost:6789/jsonrpc’
Did you definitely type the ip address into the host field as it defaults to Local host. Causing that error
ah yeah, I had my nzbget container on the wrong network… all better now!
can you make your PATHS pic a little bigger? it won’t open for me and it’s pretty tiny text ๐ nice writeup!!!
Yeah I will get it replaced does it ope. When you click on it
no – doesn’t open when I click on it – thanks!
Fixed must have happened in one of the WordPress updates
Hey, great tutorial, I followed it to the letter and I have NZBGet working through Docker on my DS220+. However, a few issues/annoyances….any insight?
1) I have to access via : (in my case, 33323) not via :6789 which every resource says I should be able to use. Not sure why, and it’s not an issue I suppose but it does seem odd to me.
2) On my Synology I now have a shared folder of “docker”, which I added sub-folder for NZBGet and then downloads, so my config file goes in \docker\NZBGet and all the stuff that gets downloaded goes into \docker\NZBGet\downloads. NZBGet added folders for completed, nzb, tmp, etc. So – it works, but ideally I would like all of this to happen inside my \video share, or at least, it places completed downloads in my \video share. I am not sure how to do this – I tried a couple ways but it kept giving me errors.
3) Bonus question, as this is semi-fringe but I downloaded a Python extension script to unpack RAR files that contain NZB files so I don’t have to unpack them manually. I have Python installed on the Synology, but not sure how to get the script to work. I’m assuming I drop it into the script folder but past that….?
Might be easier to ping me an email drfranky@drfrankenstein.co.uk
Thanks for posting that last photo. Wasnt getting that the root directory had to be /downloads for it to create and use those subdirectories. Thank you!
Thank you for your guide. However: I get error messages:
nzbget.conf(46): Invalid value for option “NzbDir” (/volume1/download/nzbget/nzb): could not create directory : No such file or directory
nzbget.conf(52): Invalid value for option “QueueDir” (/volume1/download/nzbget/queue): could not create directory : No such file or directory
nzbget.conf(55): Invalid value for option “TempDir” (/volume1/download/nzbget/tmp): could not create directory : No such file or directory
I tried making the folder myself, reinstalling the container, but that didn’t solve the problem. Anyone has a clue how to solve this issue?
Can you put up a screenshot of your volume configuration. Or is that error from within Nzbget?
Getting similar error, this is coming from within nxbget. I’ve tried creating the folders myself. I think Im missing the connection with the mounting of folders in the container and how to set the root directory in the nzbget settings. Any help for this noob would be appreciated. Thanks for your guide!
I have updated the end of the guide with a screenshot of my main path settings I hope that helps
Not sure if you are still monitoring this but awesome guide, thanks. If you are, I am still wondering how to setup a folder to just place nzb files into so NZBGet can download; I cannot locate the /config/downloads folder. Thanks again.
TK Ham
You should be able to just create an NZB folder inside your /downloads directory and map it in the NZBGet interface
Brilliant tutorial. Thanks for the thorough and concise info.
Thank you for the guide. Is there a way to set this up with OpenVPN?
I don’t run my newsgroup downloads over a VPN service, if you don’t need remote access to your NAS you can just set it up within the DSM interface
hello! first and foremost, I’d like to thank you for the informative guide!
I’ve set up sonarr, radarr and nzbget onto my synology. however I’ve encountered a problem. Not sure is it permissions problem. I’ve set the PUID and PGID correctly.
this is the problem i’ve encountered. I’ve yet to successfully download a file.
Unpack for XXXX failed.
ERROR Sun Mar 03 2019 03:28:41 Could not delete temporary directory /tv/XXXX/_unpack: No such file or directory
ERROR Sun Mar 03 2019 03:28:41 Unrar error code: 9
ERROR Sun Mar 03 2019 03:28:41 Could not create directory /tv/XXXX2/_unpack: could not create directory : No such file or directory
ERROR Sun Mar 03 2019 03:23:25 Unpack for XXXX2 failed.
ERROR Sun Mar 03 2019 03:22:22 Could not delete temporary directory /tv/XXXX2/_unpack: No such file or directory
all the nzbs have this error.
hope you’re able to help. thanks!!!
update:
I did some tweaking. I found out the problem is solved after I add the tv folder onto the volume of nzbget docker. not sure why but it worked. lol
Glad you fixed it, sometimes these things just need a bit of test and learn
Hi everybody! Everything is working fine for me! Except since last Friday : my Nzbtomedia script was set to auto-update. It did, and then stopped to work. I realized that last version of Nzbtomedia is using python 3, so I revert back to the last version using python 2 and disabled auto-update for the script. My question is: do you know a docker image which includes python 3? Or will linuxserver image will be updated with it? Thanks ๐
Do you have a solution for incredibly slow post-processing (Videosort). This usually takes a second or two outside of Docker.
Is this just when NZBget just drops the videos into the preset folder based on its category or something else?
Strange. It’s because it’s writing an entirely new file instead of just moving it. It also happens in Sonarr. Don’t know if it’s a Docker thing, or perhaps because of Btrfs. I used to be on an older system using ext4 and the SynoCommunity packages. Then it moved the files instantly.
Yes I checked that: uid=1024(admin) gid=100(users) groups=100(users),25(smmsp),101(administrators)
So PUID = 1024 and PGID = 100 correct?
It might be worth classing yourself as an administrator so 101 for PGID just see if that make a difference as I am always an administrator user.
Hey there great guide thankyou very much! I was wondering if you have come across a problem before re the download Queue folder? I have set everything up as in your guide but Sonaarr sends and episode to nzbGet I get a permission error on the queue folder as follows: ‘Error reading diskstate: could not open file /downloads/queue/1: Permission denied’ this keep repeating for other files in the que exponentially. thx
Best bet is check your group ID and personal ID.
Hello,
Great guide ! As I have a recent Broadwell based NAS which is currently unsupported by The “Synocommunity” repository apps (a lot of them btw since DSM 6.0 !) I’ve hesitated to go for the Docker solution. Followed the guide and is working like a charm.
One question though, what’s the best way to update to new versions? (or see if there is a new version available?)
Hey glad to here these guides are useful. I have found that while it’s supposedly not recommended Sonarr, Radarr and NZBGET all seem to update via there built in updates. Failing that all you do is delete the container and download the new version making sure you point it at the same config directory.
Hi. First thanks for the great guide, but I am having some permission issues.
I set my PUID an PGID appropriately and it displays so in the overview tab in the details section of the container however in the log tab it shows that they have both been set to 0.
GID/UID
————————————-
User uid: 0
User gid: 0
I am able to download and files successfully but the permissions on the file prevents access. Through SSH the file information is:
d——— 2 root
The download location was initially created in DSM, and before setup of the container I set the owner to the correct_user and correct group for all the files and folders. I also set folder permissions to 775 and file permissions to 664.
I was using the synocommunity install previous and it was working .
Any ideas on what could be causing this?
In case this helps anyone I had to use 8080:8080 and 8081:8081 as the port mapping rather than using the 32xxx ports.
These guides for Docker are great. Thank you.
All worked for me by following the steps. Can you do one for haproxy?
I canโt seem to get that to work as the confit file directory structure is different.
Thanks
Im having issues with Docker containers on my Synology. It seems the bridge interface does not have a gateway, and therefore the containers cannot reach the internet.
Can you check your bridge interface(s) by doing a ‘docker network inspect bridge’ on your nas via ssh?
Hey I just spotted your post over on Reddit, I will post my output over there
Thanks for that tutorial!
Btw you might want to include the environment variable for the timezone.
It’s important for example NZBGet where if you schedule something you want to run it at the correct time such as pausing/unpausing downloads, otherwise you might be downloading during “peak” traffic or whatever your ISP is doing.
Example:
TZ = Europe/London
Yes looks like I missed a step as I added that to my main install
Hi,
Does anyone know where the extension scripts are? I followed this guide and I can now connect to nzbget and that’s awesome ๐ but it’s missing all the scripts in the settings under categories, choose “postscript”
The list is empty when I click on it.
Thanks!
Sorry for the late reply, you wil need to create a ‘scripts’ folder inside the folder you designated as the ‘maindir’ in the paths screen, then just copy your scripts into that folder.
Hi again,
Thanks for the help. That part works great now. I also installed couchpotato and I can add a movie and nzbget starts downloading it but during the postprocess it says:
CouchPotato: Failed to post-process – No change in status!
for 6 times and then fail. The movie remains in the /downloads/movies folder and never gets moved to the correct destination.
Same issue. Whether I provide the path to my scripts or move them, the scripts are not executing properly in docker.
Disregard. It looks like mapping the script directory is not the solution, the scripts need to be moved inside the nzbget folder in Docker and then they’ll work.
Thanks for the excellent guide!
Facing the same problem. Despite I can see the script under settings it is not executing. In which folder do I have to put the script?
Thanks for the guide frankenstein. Does anyone know how to move files to a seperate folder (not withing the /downloads folder). The log says the files are moved to the correct location, but they are not visible in that folder. The completed download is moved according to the path setting under categories.
I noticed that after mounting my Downloads folder, the permissions where changed.
The folder dissapeared from File station and I got a auth prompt in windows.
When checking controlpanel “shared folder”, the description was gone (“system default shared folder”). All my normal user permissions were gone, and advanced permissions were set to true.
Luckily I could just re-enable read/write for my user to regain access, but now I’m worried if this happens all the time with docker. I dont like mounting my video folder without knowing what really happened.
I hope you can shed some light on this… Thanks
I run the lastest DSM 6 btw.
Was the downloads folder originally created by download station? On my setup I have my downloads share already in place before setting anything up, so it may be changing the permissions due to it being owned by the system? This is purely a guess.
Yes, I’m pretty sure download station created that folder originally…
Do you think it might have something to do with when I did the install the env. variable hade the wrong key, and didn’t have right permissions to the download folder, and somehow overwrote it?
The only reason I discovered it was when I tried to setup CP docker, and the download folder was missing from the mount browser.
Since no harm was done, I will try tomorrow to map video folder and see if same things happen again when installing CP.
Off /on topic, since I haven’t setup indexers I haven’t tried downloading any thing yet,
Does 7 zip/unrar come bundled with the docker, or do I need to install/change any settings for this?
Thanks for replies and help! (Incl. Gabriel )
It does sound like a reasonable explanation for the behavior you have seen, the contain has everything required to get up and running.
What’s the difference between PGID and GUID? You put PGID in the other guides, but GUID here.
They are described differently in the Linux Server setup material so I went with their descriptions, each of the containers must use a slightly different method for the permissions
OK I have double checked and they are PGID and GUID for NZBGet
So is it PGID or PUID in env variables? Is it possible to change after container is installed?
Thank you so much by the way, I just gave up on trying to get CP/SNRR/NzbGet stable with normal synology packages and found these guides excellent.
My docker seems a bit different now, probably because of new version, but basically you setup everything in “step 1” using advanced settings (incl) port.
There is a checkbox called run docker in elevated mode, what does this do?
Thanks
Hi Sean, I am going to be making some edits across the guides shortly to bring them in line with the slightly updated UI as it looks like Synology moved things around a little. I have edited the guide as it looks like I left in the incorrect ID naming, again these are also due to be updated in line with the easier method used in the NZB Hydra guide.
I am not sure what the elevated mode does but I have not had to turn it on to get everything to work correctly.
Yes you can change environment variables later. You don’t want to use the elevated mode. It might be more insecure and isn’t needed.
yes, but what are the PATH settings in the nzbget program supposed to look like?
I just wanted to add that you do not need to change anything in the NZBGet PATHS settings as the appropriate folders are automatically created when you launch it for the first time.