GithubHelp home page GithubHelp logo

docker-nzbget's Introduction

linuxserver.io

Blog Discord Discourse Fleet GitHub Open Collective

The LinuxServer.io team brings you another container release featuring:

  • regular and timely application updates
  • easy user mappings (PGID, PUID)
  • custom base image with s6 overlay
  • weekly base OS updates with common layers across the entire LinuxServer.io ecosystem to minimise space usage, down time and bandwidth
  • regular security updates

Find us at:

  • Blog - all the things you can do with our containers including How-To guides, opinions and much more!
  • Discord - realtime support / chat with the community and the team.
  • Discourse - post on our community forum.
  • Fleet - an online web interface which displays all of our maintained images.
  • GitHub - view the source for all of our repositories.
  • Open Collective - please consider helping us by either donating or contributing to our budget

Scarf.io pulls GitHub Stars GitHub Release GitHub Package Repository GitLab Container Registry Quay.io Docker Pulls Docker Stars Jenkins Build LSIO CI

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.

nzbget

Supported Architectures

We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here.

Simply pulling lscr.io/linuxserver/nzbget:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags.

The architectures supported by this image are:

Architecture Available Tag
x86-64 amd64-<version tag>
arm64 arm64v8-<version tag>
armhf

Version Tags

This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags.

Tag Available Description
latest Stable nzbget releases
testing nzbget pre-releases

Application Setup

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.

You can add an additional mount point for intermediate unpacking folder with:-

-v /path/to/nzbget/intermediate:/intermediate

for example, and changing the setting for InterDir in the PATHS tab of settings to /intermediate

Media folders

We have set /downloads as a optional path, this is because it is the easiest way to get started. While easy to use, it has some drawbacks. Mainly losing the ability to atomic move (TL;DR instant file moves, rather than copy+delete) files while processing content.

Use the optional paths if you don't understand, or don't want hardlinks/atomic moves.

The folks over at servarr.com wrote a good write-up on how to get started with this.

Usage

To help you get started creating a container from this image you can either use docker-compose or the docker cli.

docker-compose (recommended, click here for more info)

---
services:
  nzbget:
    image: lscr.io/linuxserver/nzbget:latest
    container_name: nzbget
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
      - NZBGET_USER=nzbget #optional
      - NZBGET_PASS=tegbzn6789 #optional
    volumes:
      - /path/to/nzbget/data:/config
      - /path/to/downloads:/downloads #optional
    ports:
      - 6789:6789
    restart: unless-stopped
docker run -d \
  --name=nzbget \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=Etc/UTC \
  -e NZBGET_USER=nzbget `#optional` \
  -e NZBGET_PASS=tegbzn6789 `#optional` \
  -p 6789:6789 \
  -v /path/to/nzbget/data:/config \
  -v /path/to/downloads:/downloads `#optional` \
  --restart unless-stopped \
  lscr.io/linuxserver/nzbget:latest

Parameters

Containers are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate <external>:<internal> respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.

Parameter Function
-p 6789 WebUI
-e PUID=1000 for UserID - see below for explanation
-e PGID=1000 for GroupID - see below for explanation
-e TZ=Etc/UTC specify a timezone to use, see this list.
-e NZBGET_USER=nzbget Specify the user for web authentication.
-e NZBGET_PASS=tegbzn6789 Specify the password for web authentication.
-v /config Persistent config
-v /downloads Location of downloads on disk.

Environment variables from files (Docker secrets)

You can set any environment variable from a file by using a special prepend FILE__.

As an example:

-e FILE__MYVAR=/run/secrets/mysecretvariable

Will set the environment variable MYVAR based on the contents of the /run/secrets/mysecretvariable file.

Umask for running applications

For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.

User / Group Identifiers

When using 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 any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic.

In this instance PUID=1000 and PGID=1000, to find yours use id your_user as below:

id your_user

Example output:

uid=1000(your_user) gid=1000(your_user) groups=1000(your_user)

Docker Mods

Docker Mods Docker Universal Mods

We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.

Support Info

  • 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
  • Container version number:

    docker inspect -f '{{ index .Config.Labels "build_version" }}' nzbget
  • Image version number:

    docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/nzbget:latest

Updating Info

Most of our images are static, versioned, and require an image update and container recreation to update the app inside. With some exceptions (noted in the relevant readme.md), we do not recommend or support updating apps inside the container. Please consult the Application Setup section above to see if it is recommended for the image.

Below are the instructions for updating containers:

Via Docker Compose

  • Update images:

    • All images:

      docker-compose pull
    • Single image:

      docker-compose pull nzbget
  • Update containers:

    • All containers:

      docker-compose up -d
    • Single container:

      docker-compose up -d nzbget
  • You can also remove the old dangling images:

    docker image prune

Via Docker Run

  • Update the image:

    docker pull lscr.io/linuxserver/nzbget:latest
  • Stop the running container:

    docker stop nzbget
  • Delete the container:

    docker rm nzbget
  • Recreate a new container with the same docker run parameters as instructed above (if mapped correctly to a host folder, your /config folder and settings will be preserved)

  • You can also remove the old dangling images:

    docker image prune

Image Update Notifications - Diun (Docker Image Update Notifier)

tip: We recommend Diun for update notifications. Other tools that automatically update containers unattended are not recommended or supported.

Building locally

If you want to make local modifications to these images for development purposes or just to customize the logic:

git clone https://github.com/linuxserver/docker-nzbget.git
cd docker-nzbget
docker build \
  --no-cache \
  --pull \
  -t lscr.io/linuxserver/nzbget:latest .

The ARM variants can be built on x86_64 hardware using multiarch/qemu-user-static

docker run --rm --privileged multiarch/qemu-user-static:register --reset

Once registered you can define the dockerfile to use with -f Dockerfile.aarch64.

Versions

docker-nzbget's People

Contributors

aptalca avatar capntrips avatar chasebolt avatar chbmb avatar j0nnymoe avatar jorismolnar avatar jtarasovic avatar linuxserver-ci avatar lonix avatar nemchik avatar roxedus avatar smdion avatar sparklyballs avatar thelamer avatar theotherp avatar thespad avatar tocks53 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

docker-nzbget's Issues

PGID and PUID doesn't work

linuxserver.io

Thanks, team linuxserver.io

Hi,

When I use the PGID and PUID env variables in my docker it doesn't seem to work. It keeps running in GID 100 UID 1. Please help.

Kind regards,
Abel

Removal of Python2 breaks popular plugin(s)

linuxserver.io

If you are new to Docker or this application our issue tracker is ONLY used for reporting bugs or requesting features. Please use our discord server for general support.


Expected Behavior

Update the docker image should have nzbget and core plugins continue to work

Current Behavior

After the removal of Python2 VideoSort, a core plugin in NZBGet stops working, most likely because it is somewhat old and not Python3 compatible-

Steps to Reproduce

  1. Install latest linuxserver.io nzbget docker container
  2. Install VideoSort from https://github.com/nzbget/VideoSort and configure

I rolled back to linuxserver/nzbget:amd64-v21.0-ls53 to get the plugin to work again.

Docker logs

No relevant docker log, but this is the log from nzbget itself (probably pointless here)

VideoSort: SyntaxError: invalid syntax
VideoSort: ^
VideoSort: ep_prefix = episode_separator if episode_num_all <> '' else ''
VideoSort: File "/workdir/scripts/videosort/VideoSort.py", line 814

Include libstdc++ and libc6-compat in the container

linuxserver.io

Feature Request:

I propose that libstdc++ and libc6-compat be added to the container. These dependencies would allow for the running of (many) binaries on linux systems. The reason this is beneficial with nzbget is that it opens the door for much more powerful post-processing scripts.

In my use case, I wanted to create a post-processing script to run mkclean on downloaded mkv files, and while I could get a script setup, and I could reference a compiled binary with a directory mapping to the host OS, the binary would not run (due to missing libraries).

root@4bb49dcb91f6:/utils$ ldd mkclean
    /lib64/ld-linux-x86-64.so.2 (0x14d447b80000)
    libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x14d44782e000)
    libm.so.6 => /lib64/ld-linux-x86-64.so.2 (0x14d447b80000)
    libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x14d44761c000)
    libc.so.6 => /lib64/ld-linux-x86-64.so.2 (0x14d447b80000)
root@4bb49dcb91f6:/utils$ ls /lib64
ls: cannot access '/lib64': No such file or directory
root@4bb49dcb91f6:/utils$ ls /usr/lib64/
ls: cannot access '/usr/lib64/': No such file or directory
root@4bb49dcb91f6:/utils$ ls /lib64
ls: cannot access '/lib64': No such file or directory
root@4bb49dcb91f6:/utils$

Installing libstdc++ and libc6-compat provides all the necessary libraries for mkclean, mkvalidate and spectool to run, but it can further allow for far better use of custom post-processing scripts.

Thanks, team linuxserver.io

unrar doesnt exist

nzbget is failing to unpack downloads that are rar files because unrar does not exist

Apprise update?

On this issue, #69, the various pip modules were added into nzbget and they've been working fantastic.

However, Apprise has recently updated to the 0.8.0 version from the 0.7.9 version.

You can see more info about that here - caronc/apprise#149

It's possible for me to to go into the Docker console of nzbget and issue a pip install --upgrade apprise manually of course, but when the container is rebuilt it's not pulling the 0.8.0 version down.

I purged my nzbget container out and downloaded the latest as well, but apprise is still on version 0.7.9 in that latest.

Any ideas how I can get that updated to the 0.8.0 version permanently? I had assumed since it's in the dockerfile https://github.com/linuxserver/docker-nzbget/blob/master/Dockerfile it would just pull the latest version, but it doesn't appear to be doing that.

Unable to download from usenetserver

linuxserver.io

ubuntu 16.04 Create:docker create --name nzbget -p 6789:6789 -e PUID=1002 -e PGID=1002 -e TZ=Americas/NewYork -v /home/manderso/nzbget/config:/config -v /mnt/downloads_nas/usenet/:/downloads linuxserver/nzbget

Run:docker run -d linuxserver/nzbget

[s6-init] making user provided files available at /var/run/s6/etc...exited 0.
[s6-init] ensuring user provided files have correct perms...exited 0.
[fix-attrs.d] applying ownership & permissions fixes...
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts...
[cont-init.d] 10-adduser: executing...


      _     _ _
     | |___| (_) ___
     | / __| | |/ _ \ 
     | \__ \ | | (_) |
     |_|___/ |_|\___/
           |_|

Brought to you by linuxserver.io
We gratefully accept donations at:

https://www.linuxserver.io/index.php/donations/

GID/UID

User uid: 1002

User gid: 1002

[cont-init.d] 10-adduser: exited 0.
[cont-init.d] 30-config: executing...
[cont-init.d] 30-config: exited 0.
[cont-init.d] done.
[services.d] starting services
[services.d] done.
[INFO] nzbget 17.1 server-mode
[cont-finish.d] executing container finish scripts...
[cont-finish.d] done.
[s6-finish] syncing disks.
[s6-finish] sending all processes the TERM signal.
[s6-finish] sending all processes the KILL signal and exiting.
[s6-init] making user provided files available at /var/run/s6/etc...exited 0.
[s6-init] ensuring user provided files have correct perms...exited 0.
[fix-attrs.d] applying ownership & permissions fixes...
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts...
[cont-init.d] 10-adduser: executing...


      _     _ _
     | |___| (_) ___
     | / __| | |/ _ \ 
     | \__ \ | | (_) |
     |_|___/ |_|\___/
           |_|

Brought to you by linuxserver.io
We gratefully accept donations at:

https://www.linuxserver.io/index.php/donations/

GID/UID

User uid: 1002

User gid: 1002

[cont-init.d] 10-adduser: exited 0.
[cont-init.d] 30-config: executing...
[cont-init.d] 30-config: exited 0.
[cont-init.d] done.
[services.d] starting services
[services.d] done.
[INFO] nzbget 17.1 server-mode
[cont-finish.d] executing container finish scripts...
[cont-finish.d] done.
[s6-finish] syncing disks.
[INFO] Stopping, please wait...
[s6-finish] sending all processes the TERM signal.
[s6-finish] sending all processes the KILL signal and exiting.
[s6-init] making user provided files available at /var/run/s6/etc...exited 0.
[s6-init] ensuring user provided files have correct perms...exited 0.
[fix-attrs.d] applying ownership & permissions fixes...
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts...
[cont-init.d] 10-adduser: executing...


      _     _ _
     | |___| (_) ___
     | / __| | |/ _ \ 
     | \__ \ | | (_) |
     |_|___/ |_|\___/
           |_|

Brought to you by linuxserver.io
We gratefully accept donations at:

https://www.linuxserver.io/index.php/donations/

GID/UID

User uid: 1002

User gid: 1002

[cont-init.d] 10-adduser: exited 0.
[cont-init.d] 30-config: executing...
[cont-init.d] 30-config: exited 0.
[cont-init.d] done.
[services.d] starting services
[services.d] done.
[INFO] nzbget 17.1 server-mode
[INFO] Reloading...
[INFO] nzbget 17.1 server-mode
[INFO] CouchPotato connected to test connection
[INFO] CouchPotato connected to drop off OBFUSCATEDFORMYOWNPROTECTION.nzb.nzb.
[INFO] Adding collection OBFUSCATEDFORMYOWNPROTECTION.nzbto queue
[INFO] Collection OBFUSCATEDFORMYOWNPROTECTION.nzb added to queue
[ERROR] Could not receive data on socket: ErrNo 11, Resource temporarily unavailable
[ERROR] Connection to usenetserver (news.usenetserver.com) failed: Connection closed by remote host
[WARNING] Blocking usenetserver (news.usenetserver.com) for 10 sec
[ERROR] Could not receive data on socket: ErrNo 11, Resource temporarily unavailable
[ERROR] Connection to usenetserver (news.usenetserver.com) failed: Connection closed by remote host
[ERROR] Could not receive data on socket: ErrNo 11, Resource temporarily unavailable
[ERROR] Connection to usenetserver (news.usenetserver.com) failed: Connection closed by remote host
[ERROR] Could not receive data on socket: ErrNo 11, Resource temporarily unavailable
[ERROR] Connection to usenetserver (news.usenetserver.com) failed: Connection closed by remote host

Negative.

Thanks for the help!

Thanks, team linuxserver.io

Scheduler Not Working

I have configured my scheduler as per my old environment to stop downloads at 7 in the morning and initiate the downloads at midnight however it does not seem to be initiating any of the scheduled tasks. From my log files it seems the time is correct. I'm running this as an unRaid Docker.

Had to manually create /nzbget

I assume /nzbget is used as a temporary directory of some sort?
Anyway, I had this container running on a machine, but due to instability I moved all my containers to another one, and simply moved the config directories.

For some reason, nzbget stopped at launch with this error:

Jun 16 17:03:37 nzbget nzbget:  /nzbget/nzbget.log: No such file or directory 
Jun 16 17:03:37 nzbget nzbget:  /nzbget/nzbget.log: No such file or directory 
Jun 16 17:03:37 nzbget nzbget:  /nzbget/nzbget.log: No such file or directory 
Jun 16 17:03:37 nzbget nzbget:  /nzbget/nzbget.log: No such file or directory 
Jun 16 17:03:37 nzbget nzbget:  /nzbget/nzbget.log: No such file or directory 
Jun 16 17:03:37 nzbget nzbget:  nzbget.conf(70): Invalid value for option "TempDir" (/nzbget/tmp/): could not create directory : No such file or directory 
Jun 16 17:03:37 nzbget nzbget:  nzbget.conf(67): Invalid value for option "QueueDir" (/nzbget/queue/): could not create directory : No such file or directory 
Jun 16 17:03:37 nzbget nzbget:  nzbget.conf(61): Invalid value for option "NzbDir" (/nzbget/nzb/): could not create directory : No such file or directory 
Jun 16 17:03:37 nzbget nzbget:  [ERROR] nzbget.conf(70): Invalid value for option "TempDir" (/nzbget/tmp/): could not create directory : No such file or directory 
Jun 16 17:03:37 nzbget nzbget:  [ERROR] nzbget.conf(67): Invalid value for option "QueueDir" (/nzbget/queue/): could not create directory : No such file or directory 
Jun 16 17:03:37 nzbget nzbget:  [ERROR] nzbget.conf(61): Invalid value for option "NzbDir" (/nzbget/nzb/): could not create directory : No such file or directory 
Jun 16 17:03:37 nzbget nzbget:  [INFO] Pausing all activities due to errors in configuration 
Jun 16 17:03:37 nzbget nzbget:  [INFO] nzbget 16.4 server-mode 

Luckily, I am a genious, and it only took me three hours to think "why don't I just exec in and create that folder, then?"

That worked fine, but at some point something must have gone wrong in my transfer leading to this issue, so I thought you might want to know.
Probably an edge case, and in any case this issue will now be searchable :)

Massive performance degradation


Expected Behavior

Server minimally affected by nzbget container.

Current Behavior

As of the beginning of last week, the nzbget container causes huge performance loss in network connectivity to my server. SSH and other containers which depend on network bandwidth slow to a crawl. To test for the offending container, I tore my docker-compose.yml down to a minimum of containers and added a container back each day and observed the results. After 4 days and 4 containers, I put up NZBGet and can see a clear correlation between it and ssh access times over one minute, other containers like Synapse timing out, etc.

Steps to Reproduce

  1. Run NZBGet latest tag.
  2. Observe over the next few hours as your server shits the bed.

Environment

OS:
Synology DSM 6.2
CPU architecture: x86_64/arm32/arm64
x86_64
How docker service was installed:
DSM provided.

Command used to create docker container (run/create/compose/screenshot)

  nzbget:
    image: linuxserver/nzbget
    container_name: nzbget
    hostname: nzbget
    restart: unless-stopped
    networks:
      - t2_proxy
    ports:
      - "6789:6789"
    volumes:
      - $USERDIR/docker/nzbget/config:/config
      - $USERDIR/downloads:/downloads
      - $USERDIR/docker/nzbget/intermediate:/intermediate
    environment:
      PUID: 1037
      PGID: ${PGID}
      TZ: ${TZ}
    labels:
      - "traefik.enable=true"
      ## HTTP Routers
      - "traefik.http.routers.nzbget-rtr.entrypoints=https"
      - "traefik.http.routers.nzbget-rtr.rule=Host(`nzbget.$DOMAINNAME`)"
      - "traefik.http.routers.nzbget-rtr.tls=true"
      - "traefik.http.routers.nzbget-rtr.tls.certresolver=default"
      ## HTTP Services
      - "traefik.http.routers.nzbget-rtr.service=nzbget-svc"
      - "traefik.http.services.nzbget-svc.loadbalancer.server.port=6789"

Docker logs

Logs attached.
nzbget.log

Problems with nzbget.lock

Had to restart the container today after disabling one of the servers in the UI because I had used up the quota and NZBGet wouldn't reload afterwards as it usually did. I promptly got the following error message:

cat: /downloads/nzbget.lock: No such file or directory
tail: : invalid PID

So I changed the location of the lock-file in the config to /config/nzbget.lock, at which point I started getting this error:

Starting daemon failed: could not acquire lock on lock-file /config/nzbget.lock

Checked all the permissions, they're fine. I changed the location of the lock-file back to /downloads/nzbget.lock and copied over the file to that location, and now I'm getting this error:

Starting daemon failed: could not create lock-file /config/downloads/nzbget.lock

When I point the config to the that location, I get the first error again. Same thing when I comment out the location of the lock-file in the config.

WTF is going on here?

EDIT: Never mind. Apparently there was some issue with my queue that caused NZBGet to go haywire. Deleted it, and everything's back to normal.

Running scripts on a mounted volume

Running on ubuntu 16.04.
I'm trying to get nzbget setup to run post-processing scripts that I have on a mounted volume. I am migrating nzbget from a stand-alone installation. Whenever nzbget goes to post-process I get the following errors

handler: Fixing permissions for/downloads/scripts/handler.sh
handler: Could not start /downloads/scripts/handler.sh: Permission denied

I've made sure that the abc user has the same uid and gid as the host user for the mounted volume. I can't seem to run the script if it's on the volume, but if I connect to the nzbget instance, copy that same shell script to the root of the docker instance, then run it, it runs. It fails because I"m not running it from nzbget with the proper params but it attempts to run.

Is this an issue I can fix within nzbget or is this more a docker issue?

New update has resulted in broken python extension scripts

linuxserver.io

If you are new to Docker or this application our issue tracker is ONLY used for reporting bugs or requesting features. Please use our discord server for general support.


Expected Behavior

Add .py extension scripts to nzbget config:
https://github.com/nzbget/FakeDetector
https://github.com/JVMed/PasswordDetector

These are queried as part of the download process to help identify fake files and files with passwords.

Current Behavior

Errors are thrown and files are not downloaded:

today at 11:01 AM [INFO] FakeDetector:   File "/app/nzbget/scripts/FakeDetector.py", line 371
today at 11:01 AM [INFO] FakeDetector:     os.environ.get('NZBPR_FAKEDETECTOR_SORTED') <> 'yes'):
today at 11:01 AM [INFO] FakeDetector:                                                  ^
today at 11:01 AM [INFO] FakeDetector: SyntaxError: invalid syntax
today at 11:01 AM [INFO] PasswordDetector:   File "/app/nzbget/scripts/PasswordDetector.py", line 148
today at 11:01 AM [INFO] PasswordDetector:     print("out: " + outtext.translate(None,'\r\n'))
today at 11:01 AM [INFO] PasswordDetector:                                                   ^
today at 11:01 AM [INFO] PasswordDetector: TabError: inconsistent use of tabs and spaces in indentation

Steps to Reproduce

  1. Download linuxserver/nzbget:latest
  2. Setup nzbget to use latest PasswordDetector and FakeDetector .py extension's
  3. Download a file

Environment

OS: Ubuntu 20.4
CPU architecture: x86_64
How docker service was installed: Installed docker-ce, pulled down the image for nzbget from a docker-compose file.

Command used to create docker container (run/create/compose/screenshot)

docker-compose -f docker-compose-t2.yml up -d

Docker logs

today at 11:01 AM [INFO] FakeDetector:   File "/app/nzbget/scripts/FakeDetector.py", line 371
today at 11:01 AM [INFO] FakeDetector:     os.environ.get('NZBPR_FAKEDETECTOR_SORTED') <> 'yes'):
today at 11:01 AM [INFO] FakeDetector:                                                  ^
today at 11:01 AM [INFO] FakeDetector: SyntaxError: invalid syntax
today at 11:01 AM [INFO] PasswordDetector:   File "/app/nzbget/scripts/PasswordDetector.py", line 148
today at 11:01 AM [INFO] PasswordDetector:     print("out: " + outtext.translate(None,'\r\n'))
today at 11:01 AM [INFO] PasswordDetector:                                                   ^
today at 11:01 AM [INFO] PasswordDetector: TabError: inconsistent use of tabs and spaces in indentation

The issue is around dropping support for python 2, whilst I appreciate that this is NOT an issue with this image and actually a problem around the scripts and updatig the scripts will work. Anyone that uses these scripts will have an issue so I thought I would flag it here.

I have posted messages in the relevant script repos advising of the issue.

Unrar: Input/output error

Frequently failing postprocessing during unrar. (80-90%)
They all show the same log error...

Unpack for the_longish_file_name.cp(tt0458525) failed
Unrar error code: 2
Unrar: Program aborted
Unrar: Input/output error

image

Windows 10
Docker Version 17.12.0-ce-win47 (15139)

docker-compose up

  nzbget:
    image: linuxserver/nzbget
    container_name: nzbget
    volumes:
      - ./opt/appdata/nzbget/config:/config
      - e:/downloads:/downloads
    ports:
      - 27020:6789
    restart: always

Remove downloads volume from Dockerfile

linuxserver.io

If you are new to Docker or this application our issue tracker is ONLY used for reporting bugs or requesting features. Please use our discord server for general support.


Expected Behavior

As was done recently for the Sonarr and Radarr images, please remove the /downloads volume in the Dockerfile since a different path can be specified in nzbget.conf.

I use all three of these services together and the mounted volume paths have to agree in all the containers for Sonarr and Radarr to interact correctly with NZBGet.

Current Behavior

The current Dockerfile includes the line

VOLUME /config /downloads

which results in an unnecessary Docker volume if a different downloads path is being used.

Environment

OS: OSMC (Debian-based)
CPU architecture: arm64

Command used to create docker container (run/create/compose/screenshot)

The MainDir setting in the config file is /mnt/storage/Downloads.

[Unit]
Description=NZBGet (container)
Requires=docker.service
After=docker.service

[Service]
Restart=always
RestartSec=30

ExecStart=/usr/bin/docker run --rm \
                              --name=nzbget \
                              -p 6789:6789 \
                              -v /home/osmc/.config/NZBGet:/config \
                              -v /mnt/storage:/mnt/storage \
                              -e PGID=1000 -e PUID=1000 \
                              -e TZ=America/New_York \
                              linuxserver/nzbget

ExecStop=/usr/bin/docker stop nzbget

[Install]
WantedBy=multi-user.target

Could not resolve hostname localhost

I recently upgraded my docker image and now I can't download any nzb files from my linuxserver/hydra2 container. I get the following error...

[ERROR] Could not resolve hostname localhost: ErrNo -2, Name or service not known

Everything was working fine until a recent upgrade. I didn't change any configurations.

I can ping localhost just fine within the nzbget container. Just seems nzbget is having issues.

Both containers are using host networking.

Here is the relevant docker-compose.yml

version: '3.6'
services:
    nzbget:
        image: linuxserver/nzbget
        restart: unless-stopped
        container_name: nzbget
        network_mode: host
        volumes:
            - /appdata/downloads:/downloads
            - /appdata/nzbget:/config
        environment:
            - TZ=America/New_York
            - PUID=99
            - PGID=100
    hydra:
        image: linuxserver/hydra2
        restart: unless-stopped
        container_name: hydra2
        network_mode: host
        volumes:
            - /appdata/hydra2:/config
            - /appdata/downloads/nzb:/downloads
        environment:
            - TZ=America/New_York
            - PGID=100
            - PUID=99

Two Dockers: Reverse Proxies

Sorry if this needs more information
running two dockers

docker create
--name=nzbget
--network mynetwork
-e PUID=1000
-e PGID=1000
-e TZ=America/Chicago
-p 6789:6789
-v /home/snickerpop/.config/nzbget:/config
-v /home:/home
--restart unless-stopped
linuxserver/nzbget

docker create
--name=nzbget
--network mynetwork
-e PUID=1000
-e PGID=1000
-e TZ=America/Chicago
-p 6790:6789
-v /home/snickerpop/.config/nzbget:/config
-v /home:/home
--restart unless-stopped
linuxserver/nzbget

only 1 reverse proxy works
Is there a way I could get them both to work.

The one that works is the first one.

startup.sh

linuxserver.io

Thanks, team linuxserver.io

Hi, I'm trying to make my docker image as automatic as possible and now I want to start a apk while starting. In my onzu docket image I can create a a file called startup.sh with the command: apk add --no-cache ffmpeg ffmpeg-libs in it at that works.

Is there a way to do this in your image ?

Kind regards
Abel

update mechanism

since the last update of this container (including the universal installer, i think), the integrated update search works. i used it to update to nzbget 16 (testing). but after a restart of the container, nzbget 15 stable is installed again.
would be nice, if your automatic install/update script on container-statup will recognize the update to the testing version.

Can't stop the container, can't kill it, can't rm it

Having lots of reliability issues with the nzbget container.

Host OS: Ubuntu 18.04 LTS
Create: docker-compose up -d
Conf:

version: "2"
services:
  nzbget:
    image: linuxserver/nzbget
    container_name: nzbget
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/London
    volumes:
      - /docker/nzbget:/config
      - /mnt/downloads/Usenet:/downloads
    ports:
      - 6790:6789
    restart: unless-stopped

Log output below.

Volume is running over cifs mounted in host.

When running docker-compose kill:

compose.parallel.feed_queue: Pending: {<Container: nzbget (ad702b)>}
compose.parallel.feed_queue: Starting producer thread for <Container: nzbget (ad702b)>
compose.cli.verbose_proxy.proxy_callable: docker kill <- ('ad702b6a12fc17dfedafcd2379aa72a329a202263d327e4b6c42aac851cb5985', signal=None)

compose.parallel.feed_queue: Pending: set()
...
...
compose.parallel.parallel_execute_iter: Failed: <Container: nzbget (ad702b)>
compose.parallel.feed_queue: Pending: set()

ERROR: for nzbget  UnixHTTPConnectionPool(host='localhost', port=None): Read timed out. (read timeout=60)
ERROR: compose.cli.errors.log_timeout_error: An HTTP request took too long to complete. Retry with --verbose to obtain debug information.
If you encounter this issue regularly because of slow network conditions, consider setting COMPOSE_HTTP_TIMEOUT to a higher value (current value: 60).

I cannot stop/start/rm or destroy the container in any way.

NZBget also behaves unreliably.

Any thoughts appreciated.

Extension scripts

I am a complete newbie to Docker. Can anyone please explain how to load extension scripts in the NZBGet Docker? From what I understand, it doesn't have access to the host file system in the normal way. I can't see where the files are and I have no idea where I can put extension scripts so they can be loaded.

Thanks
Jani

python2 removed Scripts fail

With the last update python 2 was removed.

Unfortunately some extension use "python" and therefore fail.
I created a symlink to python from python3 which fixes the problem as most scripts got already updated to work with python3.

Perhaps at least provide the symlink in the image.

Add nzbToMedia

Post-processing scripts, nzbToMedia especially, would be a very welcome addition to this container. It seems to require the following packages though:

  • unrar (already in the container)
  • unzip
  • tar (already in the container)
  • 7zr (p7zip)
  • ffmpeg

fatal: unable to exec run: Permission denied

Host OS:

# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)

Container info:

# podman image ls nzbget
REPOSITORY                                   TAG      IMAGE ID       CREATED       SIZE
registry.hub.docker.com/linuxserver/nzbget   latest   309400c08290   10 days ago   102 MB

Cmd:

# /usr/bin/podman run -it \
  --name nzbget \
  --hostname nzbget \
  --net=host \
  -p 9081:9081 \ 
  -e PUID=666 -e PGID=666 \
  -v /mnt/daemons/nzbget/config:/config \
  -v /mnt/daemons/nzbget/downloads:/downloads \
  linuxserver/nzbget

Log:

-------------------------------------
GID/UID
-------------------------------------

User uid:    666
User gid:    666
-------------------------------------

[cont-init.d] 10-adduser: exited 0.
[cont-init.d] 30-config: executing...
[cont-init.d] 30-config: exited 0.
[cont-init.d] done.
[services.d] starting services
s6-supervise (child): fatal: unable to exec run: Permission denied
s6-supervise nzbget: warning: unable to spawn ./run - waiting 10 seconds
[services.d] done.
s6-supervise (child): fatal: unable to exec run: Permission denied
s6-supervise nzbget: warning: unable to spawn ./run - waiting 10 seconds
s6-supervise (child): fatal: unable to exec run: Permission denied
s6-supervise nzbget: warning: unable to spawn ./run - waiting 10 seconds
s6-supervise (child): fatal: unable to exec run: Permission denied
s6-supervise nzbget: warning: unable to spawn ./run - waiting 10 seconds

Latest version breaks python extensions

linuxserver.io

The latest version which does away with python 2 breaks the extensions that only support python 2. Namely:
Failurelink
FakeDetector
Passworddetector
Unzip

Unrar not existing

Downloads work, unpacking/unrar doesn't as it can't find the unrar executable as it doesn't exist.
Looking inside the container, unrar can't be found either.

Host OS: QNAP Container Station - Linux
Screenshot_1

Edit: For future searching by others and search engine indexing: Unrar: Could not start /app/nzbget\unrar.exe: No such file or directory.
See the below posts for possible solutions. As it will be likely a local config issue.

VideoSort.py can't find guessit when running in a Docker container

linuxserver.io


Expected Behavior

After downloading a file it should run VideoSort.py

Current Behavior

root@nzbget:/downloads/scripts# python VideoSort.py
Traceback (most recent call last):
File "VideoSort.py", line 273, in
import guessit
ModuleNotFoundError: No module named 'guessit'
root@nzbget:

Steps to Reproduce

  1. Start a bash shell in the container
  2. cd /downloads/scripts (or wherever you placed VideoSort)
  3. Execute python VideoSort.py

Environment

root@nzbget:/downloads/scripts# uname -a
Linux nzbget 4.4.59+ #25426 SMP PREEMPT Wed Jul 8 03:21:29 CST 2020 x86_64 GNU/L
inux
root@nzbget:/downloads/scripts#

Docker was installed via Synology's DSM package manager
The image was pulled from the official Docker registry

Command used to create docker container (run/create/compose/screenshot)

nzbget docker 1
nzbget docker 2

Docker logs

Post Processing Performance Very Slow

Hey All,

Not sure where the problem lies, but the same hardware using FreeBSD/Jails was much quicker. I'll have dozens of NZBs downloaded while waiting for a slot in the post processing queue. I believe the docker container is CPU bound and may not be getting enough resources?

Haven't applied any CPU / Memory restrictions on the containers though.

Any thoughts?

ScriptDir is incorrectly set by default config

/app/config/nzbget.conf has the value ScriptDir=${MainDir}/scripts
It should be set to ScriptDir=${AppDir}/scripts

Looking at the dockerfile, this change looks intentional. Am I missing the reason why it's being changed?

hardcoded path inside download dir

why are you forcing some path to the download dir?

sed -i -e "s#\(LogFile=\).*#\1$\{MainDir\}/nzbget.log#g" /config/nzbget.conf

I like to have my nzbget log flies inside the config folder and not filling up the download folder.
same thing with the nzbget.lock. you have a script in the startup routine, which deletes the nzbget.lock file in /download. since this is also a variable in the nzbget settings, a user could change this.

7z is not installed

7z is not installed and this helps with unpacking some zip files.

apt-get install p7zip-full

Unraid keep saying 'apply update'

I apply the update and Unraid says 'up-to-date'.

When I click 'Check for updates' Unraid again says 'apply update'.

The same problem for radarr and sonarr

Regards

Michael

chown as abc:abc causing permission issues, why does this exist?

Can anyone shed light on these permissions and why the exist? Seems to be causing ownership conflicts.

$ sudo docker-compose logs nzbget
Attaching to nzbget
nzbget        | [s6-init] making user provided files available at /var/run/s6/etc...exited 0.
nzbget        | [s6-init] ensuring user provided files have correct perms...exited 0.
nzbget        | [fix-attrs.d] applying ownership & permissions fixes...
nzbget        | [fix-attrs.d] done.
nzbget        | [cont-init.d] executing container initialization scripts...
nzbget        | [cont-init.d] 01-envfile: executing... 
nzbget        | [cont-init.d] 01-envfile: exited 0.
nzbget        | [cont-init.d] 10-adduser: executing... 
nzbget        | 
nzbget        | -------------------------------------
nzbget        |           _         ()
nzbget        |          | |  ___   _    __
nzbget        |          | | / __| | |  /  \ 
nzbget        |          | | \__ \ | | | () |
nzbget        |          |_| |___/ |_|  \__/
nzbget        | 
nzbget        | 
nzbget        | Brought to you by linuxserver.io
nzbget        | We gratefully accept donations at:
nzbget        | https://www.linuxserver.io/donate/
nzbget        | -------------------------------------
nzbget        | GID/UID
nzbget        | -------------------------------------
nzbget        | 
nzbget        | User uid:    1000
nzbget        | User gid:    1000
nzbget        | -------------------------------------
nzbget        | 
nzbget        | chown: changing ownership of '/config': Operation not permitted
nzbget        | [cont-init.d] 10-adduser: exited 0.
nzbget        | [cont-init.d] 30-config: executing... 
nzbget        | chown: changing ownership of '/downloads': Operation not permitted
nzbget        | chown: changing ownership of '/config/nzbget.conf': Operation not permitted
nzbget        | chown: changing ownership of '/config': Operation not permitted
nzbget        | [cont-init.d] 30-config: exited 0.
nzbget        | [cont-init.d] 99-custom-files: executing... 
nzbget        | [custom-init] no custom files found exiting...
nzbget        | [cont-init.d] 99-custom-files: exited 0.
nzbget        | [cont-init.d] done.
nzbget        | [services.d] starting services
nzbget        | [services.d] done.
nzbget        | [INFO] nzbget 21.0 server-mode

docker-compose.yaml

version: "2"
services:
  nzbget:
    image: linuxserver/nzbget
    container_name: nzbget
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=${TIMEZONE}
    volumes:
      - nzbget-data:/config:nocopy
      - downloads-data:/downloads
    ports:
      - 6789:6789
    restart: unless-stopped

volumes:
   nzbget-data:
      driver: nfs
      driver_opts:
        share: "synology.lan:/volume4/AppDir/docker/nzbget"
   downloads-data:
      driver: nfs
      driver_opts:
        share: "synology.lan:/volume2/Downloads"

cannot install ffmpeg

I am setting this up new and trying to get the postprocess scripts to run but need to install ffmpeg and ffprobe but cannot.

six modules removed during cleanup

linuxserver.io


Expected Behavior

Apprise would work from NZBGET. Notify script visible in settings NZBGET

Current Behavior

Module six is removed
https://github.com/linuxserver/docker-nzbget/blob/master/Dockerfile#L96

Steps to Reproduce

  1. docker exec -it nzbget /bin/bash
  2. python Notify.py

Environment

OS: Debian 10.6
CPU architecture: x86_64
How docker service was installed: official docker repo

Command used to create docker container (run/create/compose/screenshot)

version: "2"
services:
  nzbget:
    image: linuxserver/nzbget
    container_name: nzbget
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Amsterdam
      - DOCKER_MODS=linuxserver/mods:universal-apprise
    volumes:
      - /home/<userid>/docker-config/nzbget/config:/config
      - /mnt/storage/tempdata/complete:/downloads
    ports:
      - 6789:6789
    restart: unless-stopped

Docker logs

[s6-init] making user provided files available at /var/run/s6/etc...exited 0.
[s6-init] ensuring user provided files have correct perms...exited 0.
[fix-attrs.d] applying ownership & permissions fixes...
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts...
[cont-init.d] 01-envfile: executing...
[cont-init.d] 01-envfile: exited 0.
[cont-init.d] 10-adduser: executing...

-------------------------------------
          _         ()
         | |  ___   _    __
         | | / __| | |  /  \
         | | \__ \ | | | () |
         |_| |___/ |_|  \__/


Brought to you by linuxserver.io
-------------------------------------

To support the app dev(s) visit:
NZBGet: https://nzbget.net/donate

To support LSIO projects visit:
https://www.linuxserver.io/donate/
-------------------------------------
GID/UID
-------------------------------------

User uid:    1000
User gid:    1000
-------------------------------------

[cont-init.d] 10-adduser: exited 0.
[cont-init.d] 30-config: executing...
[cont-init.d] 30-config: exited 0.
[cont-init.d] 99-custom-files: executing...
[custom-init] no custom files found exiting...
[cont-init.d] 99-custom-files: exited 0.
[cont-init.d] done.
[services.d] starting services
[services.d] done.
[INFO] nzbget 21.0 server-mode
[INFO] Reloading...
[INFO] nzbget 21.0 server-mode
[INFO] Executing script Notify.py with command TestServers
[INFO] Notify: Traceback (most recent call last):
[INFO] Notify:   File "/downloads/scripts/Notify.py", line 169, in <module>
[INFO] Notify:     import six
[INFO] Notify: ModuleNotFoundError: No module named 'six'
[ERROR] Script Notify.py with command TestServers failed (terminated with unknown status)

python is missing

linuxserver.io

If I map my scripts to /app/scripts they can not be executed because python and some python dependencies are missing.
Proposal would be to rebase this image to alpine-python

Thanks, team linuxserver.io

Update NZBGet fails

Using the latest available docker-nzbget image, when trying to do System-Update NZBGet the update script fails.

However this is due to tha fact that the files within directory "/app" are not owned by abc:abc

So manually doing a chown -R abc:abc /app inside the docker container, the "System-Update NZBGet"

Maybe this needs to be fixed within the dockerfile?

FR - Support for unidecode and py7zr python3 modules, and dependencies for NZBGet scripts

linuxserver.io

If you are new to Docker or this application our issue tracker is ONLY used for reporting bugs or requesting features. Please use our discord server for general support.


Expected Behavior

Feature Request
unidecode module is usefull for a NZBGet script requiring to manipulate filenames using specific french accentuated characters
p7zr module is usefull for a NZBGet pre-processing script to decompress 7z archives
When a script calls for unidecode by using from unidecode import unidecode, in a python3 script, unidecode module is correctly imported
When a script calls for py7zr, by using import py7zr, in a python3 script, py7zr module is correctly imported.

unidecode module could be directly imported using the following command set from the dockerfile:
pip3 install unidecode

py7zr module could be directly imported using the following command set from the dockerfile:
pip3 install -U pip setuptools
apk add --no-cache --upgrade --virtual=build-dependencies gcc g++
pip3 install py7zr

Current Behavior

Modules are missing so import fails in the scripts

Steps to Reproduce

None

Environment

**OS:**Unraid OS / Linux Slackware
CPU architecture: x64
How docker service was installed:
Via Community Application menu which creates the container

Command used to create docker container (run/create/compose/screenshot)

None

Docker logs

None

dropping python2 broke all the post processing scripts

You guys dropped python2 which broke most of the included post processing scripts ( dirwatch.py, fakedetector.py, passworddetector.py, resetdatetime.py). it would be great if you could convert this to use python 3 or continue to include support for python2.

pip modules

I use your docker container and a plugin for notification (nzb-notify). Unfortunately the notification plugin need additional pip modules:
apprise >= 0.7.0
pynzbget
chardet

Is it possible to include this in your container?

Cant access web address / gui

hi all, a bit stuck with nzbget ... i have it installed in docker using DockSTARTer ...

192.168.10.63:6789 should be the IP address, but i cannot browse to it

tried reinstalling / rebooting Ubuntu etc, nothing is working

Ubuntu 18.04 / DockSTARTer install

image

How can I bind to port 80/443? (re: access denied)

I'm using a bunch of LinuxServer.io containers with macvlan to give each container an external/routable IP address.

However, if I try to bind to privileged ports (80/443) it gets access denied.

I've tried adding the NET_BIND_SERVICE cap but it doesn't help. I've also tried not using the PUID and PGID variables but it also doesn't help.

I think LinuxServer.io uses S6 overlays and such so I'm not sure how I can get this working...

Wrong free space reported

Running this on Unraid 6.6.7 - Using latest version. NZBGet reports that there are 300GB available where the actual available space is close to 4TB.
Capture

Init Loop

Using the latest version, i run into an init loop with the following repeating in the log file:

cat: /downloads/nzbget.lock: No such file or directory
tail: : invalid PID

Might be caused by the change made in 4c9c978 that added quotes around the PID argument.

Python3 not included

linuxserver.io

If you are new to Docker or this application our issue tracker is ONLY used for reporting bugs or requesting features. Please use our discord server for general support.


Expected Behavior

For a while now (nearly a year), nzbToMedia has been warning that as of 01 January 2020 it will no longer support Python2.7, and require Python3 instead. Therefore, it no longer works with this container for nzbget as it is still running on Python2.7.

Current Behavior

Container should use Python3

Steps to Reproduce

  1. Add nzbToMedia
  2. Try to postprocess anything
    Will fail due to not including Python3

Environment

OS:
CPU architecture: x86_64/arm32/arm64
How docker service was installed:

Command used to create docker container (run/create/compose/screenshot)

Docker logs

Python version

Hi for nzbget working with a script I need a newer python version.
Now it tells me: nzbToSickBeard: Please use a newer version of Python.
CUrrent Python version is 2.7 and I need at least 3.x can you update or tell me how to update?

Kind regards,
Abel

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.