Skip to content

NZBGet in Docker on a Synology NAS

Added Docker Compose details
Added new folder mappings to ensure atomic moves and Hard-linking

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 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.

Searching for the container

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

Downloading the container

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.


Volumes / Mounts

We are now going to set up the folders or shares we want to mount to NZBget

Under the ‘Docker’ share create a folder called ‘NZBGet’ this is important as your configuration files will be stored here.

You will notice there is a consistent mount path for each of the folders across all my guides this is important as Docker will see all of your individual folders as one consistent filesystem rather than separate volumes. This will mean you should see much faster file moves (aka Atomic Moves) and also if you are using torrents it means you can enable hard-links.

It should look like the screenshot below.

Port Settings

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. I recommend keeping the same port numbers as the original container.

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

PGID, PUID and TimeZone

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, you will notice the only path you will need to change is the MainDir to ‘media/downloads’

Docker Compose

You can use the below code saved as nzbget.yml to do the entire process above in one quick command via SSH. Ensuring you change the variables to your own media paths.

version: "3.2"
    image: linuxserver/nzbget:latest
    container_name: nzbget
      - TZ=Europe/London
      - /volume1/docker/nzbget:/config
      - /volume1/downloads:/media/downloads
      - 6789:6789/tcp
    restart: unless-stopped
sudo docker-compose -f /volume1/docker/nzbget.yml up -d --remove-orphans
Published inDockerSynology


  1. great writeup! any hints to get sonarr to talk with nzbget when they’re both in docker on a synology nas?

    • Dr_Frankenstein Dr_Frankenstein

      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’

        • Dr_Frankenstein Dr_Frankenstein

          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!

  2. can you make your PATHS pic a little bigger? it won’t open for me and it’s pretty tiny text 🙂 nice writeup!!!

    • Dr_Frankenstein Dr_Frankenstein

      Yeah I will get it replaced does it ope. When you click on it

      • no – doesn’t open when I click on it – thanks!

        • Dr_Frankenstein Dr_Frankenstein

          Fixed must have happened in one of the WordPress updates

  3. Shane Shane

    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….?

  4. Fred Fred

    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!

  5. Videopac Videopac

    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?

    • Dr_Frankenstein Dr_Frankenstein

      Can you put up a screenshot of your volume configuration. Or is that error from within Nzbget?

      • Fred Fred

        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!

        • Dr_Frankenstein Dr_Frankenstein

          I have updated the end of the guide with a screenshot of my main path settings I hope that helps

  6. TK Ham TK Ham

    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

    • Dr_Frankenstein Dr_Frankenstein

      You should be able to just create an NZB folder inside your /downloads directory and map it in the NZBGet interface

  7. Brilliant tutorial. Thanks for the thorough and concise info.

  8. Scott Scott

    Thank you for the guide. Is there a way to set this up with OpenVPN?

    • Dr_Frankenstein Dr_Frankenstein

      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

  9. justin justin

    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!!!

    • justin justin


      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

      • Dr_Frankenstein Dr_Frankenstein

        Glad you fixed it, sometimes these things just need a bit of test and learn

  10. 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 🙂

  11. Boom Boom

    Do you have a solution for incredibly slow post-processing (Videosort). This usually takes a second or two outside of Docker.

    • Dr_Frankenstein Dr_Frankenstein

      Is this just when NZBget just drops the videos into the preset folder based on its category or something else?

      • Boom Boom

        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.

  12. Yes I checked that: uid=1024(admin) gid=100(users) groups=100(users),25(smmsp),101(administrators)

    So PUID = 1024 and PGID = 100 correct?

    • Dr_Frankenstein Dr_Frankenstein

      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.

  13. 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

    • Dr_Frankenstein Dr_Frankenstein

      Best bet is check your group ID and personal ID.

  14. Spacekiek Spacekiek


    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?)

    • Dr_Frankenstein Dr_Frankenstein

      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.

  15. guerrilla guerrilla

    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.
    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?

  16. hopefullyhelpful hopefullyhelpful

    In case this helps anyone I had to use 8080:8080 and 8081:8081 as the port mapping rather than using the 32xxx ports.

  17. Mark Mark

    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.

  18. Niels Niels

    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?

    • Dr_Frankenstein Dr_Frankenstein

      Hey I just spotted your post over on Reddit, I will post my output over there

  19. g0pher g0pher

    Thanks for that tutorial!

  20. Stef Stef

    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.

    TZ = Europe/London

    • Dr_Frankenstein Dr_Frankenstein

      Yes looks like I missed a step as I added that to my main install

  21. d1910 d1910


    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.


    • Dr_Frankenstein Dr_Frankenstein

      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.

      • d1910 d1910

        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!

          • Jan-Niklas Jan-Niklas

            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?

  22. Mardy Mardy

    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.

  23. Sean Sean

    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.

    • Dr_Frankenstein Dr_Frankenstein

      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.

      • Sean Sean

        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 )

        • Dr_Frankenstein Dr_Frankenstein

          It does sound like a reasonable explanation for the behavior you have seen, the contain has everything required to get up and running.

  24. Gabriel Gabriel

    What’s the difference between PGID and GUID? You put PGID in the other guides, but GUID here.

    • Dr_Frankenstein Dr_Frankenstein

      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

    • Dr_Frankenstein Dr_Frankenstein

      OK I have double checked and they are PGID and GUID for NZBGet

      • Sean Sean

        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?


        • Dr_Frankenstein Dr_Frankenstein

          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.

        • Gabriel Lundmark Gabriel Lundmark

          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.

  25. chet lemon chet lemon

    yes, but what are the PATH settings in the nzbget program supposed to look like?

    • Dr_Frankenstein Dr_Frankenstein

      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.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.