Public | Automated Build

Last pushed: 5 days ago
Short Description
An Nzbget container, brought to you by
Full Description

The team brings you another container release featuring easy user mapping and community support. Find us for support at:

  • IRC on freenode at
  • Podcast covers everything to do with getting the most from your Linux Server plus a focus on all things Docker and containerisation!


NZBGet is a usenet downloader, written in C++ and designed with performance in mind to achieve maximum download speed by using very little system resources.


docker create \
    --name nzbget \
    -p 6789:6789 \
    -e PUID=<UID> -e PGID=<GID> \
    -e TZ=<timezone> \
    -v </path/to/appdata>:/config \
    -v <path/to/downloads>:/downloads \

This container is based on alpine linux with s6 overlay. For shell access whilst the container is running do docker exec -it nzbget /bin/bash.

You can choose between ,using tags, various branch versions of nzbget, no tag is required to remain on the main branch.

Add one of the tags, if required, to the linuxserver/nzbget line of the run/create command in the following format, linuxserver/nzbget:testing


  • testing


The parameters are split into two halves, separated by a colon, the left hand side representing the host and the right the container side. For example with a port -p external:internal - what this shows is the port mapping from internal to external of the container. So -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 http://192.168.x.x:8080 would show you what's running INSIDE the container on port 80.

  • -p 6789 - NZBGet WebUI Port
  • -v /config - NZBGet App data
  • -v /downloads - location of downloads on disk
  • -e PGID for for GroupID - see below for explanation
  • -e PUID for for UserID - see below for explanation
  • -e TZ for timezone EG. Europe/London

User / Group Identifiers

Sometimes when using data volumes (-v flags) permissions issues can arise between the host OS and the container. We avoid this issue by allowing you to specify the user PUID and group PGID. Ensure the data volume directory on the host is owned by the same user you specify and it will "just work" ™.

In this instance PUID=1001 and PGID=1001. To find yours use id user as below:

  $ id <dockeruser>
    uid=1001(dockeruser) gid=1001(dockergroup) groups=1001(dockergroup)

Setting up the application

Webui can be found at <your-ip>:6789 and the default login details (change ASAP) are

login:nzbget, password:tegbzn6789

To allow scheduling, from the webui set the time correction value in settings/logging.

To change umask settings.

scroll to bottom, set umask like this (example shown for unraid)


  • Shell access whilst the container is running: docker exec -it nzbget /bin/bash
  • To monitor the logs of the container in realtime: docker logs -f nzbget


  • 28.05.17: Rebase to alpine 3.6.
  • 20.04.17: Add testing branch.
  • 06.02.17: Rebase to alpine 3.5.
  • 30.09.16: Fix umask.
  • 09.09.16: Add layer badges to README.
  • 27.08.16: Add badges to README, perms fix on /app to allow updates.
  • 19.08.16: Rebase to alpine linux.
  • 18.08.15: Now useing latest version of unrar beta and implements the universal installer method.
Docker Pull Command
Source Repository

Comments (8)
7 months ago

Consider using arm version on raspberry

8 months ago

Any reason why this wouldn't work on a Raspberry Pi?

When starting the container immediately stops, and if I look at logs I see this:

panic: standard_init_linux.go:175: exec user process caused "exec format error" [recovered]
panic: standard_init_linux.go:175: exec user process caused "exec format error"

goroutine 1 [running, locked to thread]:
panic(0x3360b0, 0x56e7dc40)
/usr/local/go/src/runtime/panic.go:481 +0x330
/go/src/ +0x328
panic(0x3360b0, 0x56e7dc40)
/usr/local/go/src/runtime/panic.go:443 +0x448, 0x56dea270, 0x56eb1668)
/go/src/ +0x13c
LinuxFactory).StartInitialization(0x56e64240, 0x46450490, 0x56e7dc40)
/go/src/ +0x498
main.glob.func8(0x56e741e0, 0x0, 0x0)
/go/src/ +0x58, 0x3f2948, 0x13, 0x3648b8, 0x4, 0x56eb1918, 0x1, 0x1, 0x0, 0x0, ...)
/usr/local/go/src/reflect/value.go:435 +0xeb4
reflect.Value.Call(0x2eb600, 0x3f2948, 0x13, 0x56eb1918, 0x1, 0x1, 0x0, 0x0, 0x0)
/usr/local/go/src/reflect/value.go:303 +0x84, 0x3f2948, 0x56e741e0, 0x0, 0x0)
/go/src/ +0x230, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3d0d50, 0x51, 0x0, ...)
/go/src/ +0xcd0*App).Run(0x56e50240, 0x56e32050, 0x2, 0x2, 0x0, 0x0)
/go/src/ +0x84c
/go/src/ +0xbb4

10 months ago

Is it possible to connect to any VPN nzb around there?

a year ago

He msavides do you allready have NZBGet running on the Mycloud PR4100! because im totaly dont get docker running on my PR4100 so when you have it running can you create a bin file from it for me?

a year ago

i am having an issue with nzbget not moving media after unpacking. it says it moved it it say where it moved it to but it is not there. No errors and it says successful

this is on a WD PR4100 NAS

a year ago

I dont want my logs and lock files in downloads folder. How to change and keep permanent?

a year ago

Might be worth including the default credentials for NZBGet (nzbget as user and tegbzn6789 as password) in the instructions too.

2 years ago

Thanks for a great build guys, this seems to work almost flawlessly. I would love if there could be 2 main adjustments:
1 - allow specification for the lock file used for the PID to be a different location, having it right in the middle of my downloads directory isn't my expected location to work with, but it seems to be what you are monitoring (${MainDir}.
2 - Allow movement of the logs file, I'm finding a wacky behavior that I can change the log location if the docker is up, but if I restart the docker, I have to move the log location again as somehow it is being reset in the Config file (assuming by something in the scripted startup).