Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Is docker of NZBget been updated to NZBGet 13 yet?

Featured Replies

  • Replies 122
  • Views 23.1k
  • Created
  • Last Reply

This suggests development version?

 

svn://svn.code.sf.net/p/nzbget/code/trunk

 

No-one should be using that. The testing version is what people use.

I looked at both and still have no idea. I'm not a coder. Can you just tell me?

 

I mean, I love a good riddle and everything...

neil - looking at what gfjardim has done - like he says if you pass 13.0 to the edge parameter it will checkout and build the version of the source that is tagged "13.0" - the current stable release.

 

If you pass "1" to the parameter it checks out the main trunk which, as you suspect could be in a state of developmental flux.

 

If hugbug were to tag the testing releases then passing, for example, "14.0-rxxxx" to the edge parameter would get that version of the source. Unfortunately I don't think that will work as I can't see any evidence of tags for testing releases.

 

I think what could be needed is another environment variable that is passed to the container to specify the revision of code to checkout.

 

Then the logic would be along the lines of (pseudo code cos my bash scripting skills aren't up to much)

 

if (EDGE == "1" or REVISION != "")
  SVN="svn://svn.code.sf.net/p/nzbget/code/trunk"
else
  SVN="svn://svn.code.sf.net/p/nzbget/code/tags/${EDGE}"

...

if (REVISION != "")
  svn checkout -r ${REVISION} ${SVN} /tmp/nzbget-source
else
  svn checkout ${SVN} /tmp/nzbget-source

 

I might have a go at coding that up and see what I get - unless gfjardim does it first :)

OK, I'm surprised this is so tricky. How did overbyrn do it?

He managed to put both stable and testing in his plugin.

It's not that tricky really - it's just a case of working around the way docker works.

 

For his nzbget plugin, I believe overbyrn took the latest released source packages (that are downloadable from nzbget.net) and built them. Or he may have done something similar to we've just discussed and checked out the relevant branches/revisions from the source repository. Either way he had 2 sets of source code that he compiled and build slackware packages from.

 

The problem is that there aren't any pre-built packages (of the latest nzbget) that are compatible with the environment in the docker container. Because of that somebody has to build it and make it available - as overbyrn did for his plugin.

 

The changes gfjardim has made to the docker container take that step away. Now the container will build nzbget itself, it just needs to be told what to build. This removes the reliance on somebody else to keep something updated. To move to a new version you'll just stop the container, remove the instance of it and then run it again with the new version specified.

That sounds awesome. I will start playing around with that soon. Need to install 6.x first, I guess...  [emoji16]

someone clear this up for me?

 

..

does this not result in a big bunch of interim containers and one randomly named final container or does the fact the we set --name="nzbget" do something clever in docker land

Nice work. Looks like Debian has accepted the par2 patches upstream hence why you no longer need to patch the source (that was a complete pain and often caused clashes in a nomral Deb install).

 

A few questions for my own sanity:

 

So once the user checks out and runs this they get v12 stable by default. However if they set the EDGE variable this passes in a environmental variable into the docker. When edge.sh runs (as defined in the dockerfile) its sees this variable and checks out the relevant code, compiles it and installs it.

 

I have not run this yet (as I am not at docker) but I have a question:

 

does this not result in a big bunch of interim containers and one randomly named final container or does the fact the we set --name="nzbget" do something clever in docker land

 

This is a common misunderstanding on how docker works. In simple words:

 

Make a small linux image that have the kernel and the base utilities is painful, so docker invented the "base images". But "base images" have a very small set of tools, so, to allow the user to configure the "base image" to their needs, docker relies on "images". "Images" normally picks a "base image" and applies to it some changes, those that are described in the Dockerfile script. This is the point that many of us don't understand very well.

 

Each command in the Dockerfile generates a intermediate container, that will be committed to the image if it runs successfully. This is why docker is a development tool: if anything goes wrong at some point of the Dockerfile script, you just have to fix it and rebuild the image. Docker will automatically resumes the build from the point of change (it makes a diff and resume the script just before the new code). The result is the merge of those intermediate containers in a final build.

 

So, now that we have our image, we have to run it. Each time you run a image (docker run), a new container is created. That container will not be automatically merged into the "image", unless you told it so (docker commit). Otherwise many may think, containers are NOT read only. They are a kind of "pre-images" that can be run (docker start) with a set of different commands from the "image", and generate a set of files that will be permanent to that container, but volatile towards the "image".

 

Now, responding your question: the --name operator will do just that, name the container created by the "docker run" command. We use this to facilitate our lives. We could create a randomly named container each time, but it would be almost impossible to track that container to the app it carries.

 

About the EDGE thing, this will impact the way the container will run on the first time. If you don't set the EDGE variable, the container will be created based on the image, plus those commands that exist on the "firstrun.sh" and "nzbget.sh" scripts. If you set EDGE, the container will be impacted by those commands too. But will be just one container.

  • Author

@gfjardim :

 

I set the EDGE to 13.0 with your docker, I see it downloaded the compiler package, etc.  But since a while, this is what I see on the console output of docker :

 

nzbget.conf(734): Option "ReloadPostQueue" is obsolete, ignored

nzbget.conf(728): Option "ReloadUrlQueue" is obsolete, ignored

nzbget.conf(734): Option "ReloadPostQueue" is obsolete, ignored

nzbget.conf(728): Option "ReloadUrlQueue" is obsolete, ignored

nzbget.conf(734): Option "ReloadPostQueue" is obsolete, ignored

nzbget.conf(728): Option "ReloadUrlQueue" is obsolete, ignored

nzbget.conf(734): Option "ReloadPostQueue" is obsolete, ignored

nzbget.conf(728): Option "ReloadUrlQueue" is obsolete, ignored

nzbget.conf(734): Option "ReloadPostQueue" is obsolete, ignored

nzbget.conf(728): Option "ReloadUrlQueue" is obsolete, ignored

nzbget.conf(734): Option "ReloadPostQueue" is obsolete, ignored

nzbget.conf(728): Option "ReloadUrlQueue" is obsolete, ignored

nzbget.conf(734): Option "ReloadPostQueue" is obsolete, ignored

nzbget.conf(728): Option "ReloadUrlQueue" is obsolete, ignored

nzbget.conf(734): Option "ReloadPostQueue" is obsolete, ignored

nzbget.conf(728): Option "ReloadUrlQueue" is obsolete, ignored

nzbget.conf(734): Option "ReloadPostQueue" is obsolete, ignored

nzbget.conf(728): Option "ReloadUrlQueue" is obsolete, ignored

nzbget.conf(734): Option "ReloadPostQueue" is obsolete, ignored

nzbget.conf(728): Option "ReloadUrlQueue" is obsolete, ignored

nzbget.conf(734): Option "ReloadPostQueue" is obsolete, ignored

nzbget.conf(728): Option "ReloadUrlQueue" is obsolete, ignored

nzbget.conf(734): Option "ReloadPostQueue" is obsolete, ignored

nzbget.conf(728): Option "ReloadUrlQueue" is obsolete, ignored

nzbget.conf(734): Option "ReloadPostQueue" is obsolete, ignored

nzbget.conf(728): Option "ReloadUrlQueue" is obsolete, ignored

nzbget.conf(734): Option "ReloadPostQueue" is obsolete, ignored

@gfjardim :

 

I set the EDGE to 13.0 with your docker, I see it downloaded the compiler package, etc.  But since a while, this is what I see on the console output of docker :

Those are deprecated config settings, don't worry about them. Just save out the config in nzbget's web interface and any deprecated settings will be removed/upgraded.

  • Author

neilt0: It doesn't work.  It say it save, but it's not, and when I choose the "reload", the messages came back.  I'll start with a fresh .conf file, There isn't a lot of config in that anyway, just my 2 Usenet account + the ppscript.

neilt0: It doesn't work.  It say it save, but it's not, and when I choose the "reload", the messages came back.  I'll start with a fresh .conf file, There isn't a lot of config in that anyway, just my 2 Usenet account + the ppscript.

Try changing a setting in the config, it doesn't matter what, then save. Restart, change the setting back to what it was, save and restart again.

 

Otherwise, if that doesn't work, you should post a question at: http://nzbget.net/forum/viewforum.php?f=3

....

About the EDGE thing, this will impact the way the container will run on the first time. If you don't set the EDGE variable, the container will be created based on the image, plus those commands that exist on the "firstrun.sh" and "nzbget.sh" scripts. If you set EDGE, the container will be impacted by those commands too. But will be just one container.

 

That last bit is the step I constantly keep getting wrong (as in every time i consider it). The terminology overlap doesn't help either with repository, registry, image, container and tags all meaning very specific things in docker land but also having potentially different meanings with older technologies (that we have all taled about for years)

 

Thanks for the reply. :)

  • Author

neilt0: It doesn't work.  It say it save, but it's not, and when I choose the "reload", the messages came back.  I'll start with a fresh .conf file, There isn't a lot of config in that anyway, just my 2 Usenet account + the ppscript.

Try changing a setting in the config, it doesn't matter what, then save. Restart, change the setting back to what it was, save and restart again.

 

Otherwise, if that doesn't work, you should post a question at: http://nzbget.net/forum/viewforum.php?f=3

 

I think the docker use a old default "nzbget.conf" when we use the EDGE=13.0 (did not try with other value for the EDGE).  I can't save the Config of a categories (want to specify a ppscript only for that categorie, not globally).  It says it will save, but it's not.  Can that be looked at in the edge.sh ?

 

Screenshot :

 

https://www.dropbox.com/s/xco4njmnm5pizud/Capture%20d%27%C3%A9cran%202014-07-24%2011.21.38.png

Try stopping nzbget docker

 

replace the conf with the following (backup if necessary)

 

https://svn.code.sf.net/p/nzbget/code/tags/13.0/nzbget.conf

 

and start again

 

Update: Please also realise that in a matter of days the non-compile-your-own version should be available. If you need it now and be an early adopter your going to have to accept there are kinks to iron out

  • Author

Finally, i'll wait for the new needo update.

 

BTW needo, puttting the ppscripts outside of the docker works well and my "VideoSort" script works well with the docker.  I just need to add a mount to the /mnt/user/Movies:rw for setting the destination of Movies folder in the PPscript settings.

FYI, nzbget-testing 14.0 just got a release: http://nzbget.net/forum/viewtopic.php?f=4&t=1334&view=unread#unread

 

The first new feature listed is pretty much for unRAID (ReiserFS).

 

FYI 2: It does require a new patch to libpar2, but that's to implement a really excellent new way to speed up par checking: http://nzbget.net/forum/viewtopic.php?f=10&t=1333&view=unread#p8408

 

hugbug's tests:

 

Another example - big download:

ParQuick=no:

 

Downloaded size   40.8 GB
Verification time   2:55:09
Repair time   1:02:13

 

ParQuick=yes:

 

Verification time   0:08:09

 

This download had two bad blocks in two files (out of 200 files).

  • Author

This is great!  But will take long to happen because docker use the Ubuntu packages only :(

 

I tried the other docker with NZBGet 13, but had issue with my Post-Processing Script.  Everything was working thought.

This could be made to work but it is complicated by the fact you also need to remove par2, grab source, patch it and install the new par2.

 

I dont care what anyone says this is a development release. Tinkering with the par2 internals is seriously hard core. I have been on the par2 mailing list since almost the beginning and more times than not I can hardly understand the mathematics (and I am no slouch).

 

I think what they are doing is truly excellent and the pace is fantastic but there is zero way this is a testing release for the general public... I mean has the par2 patch even been approved upstream never mind tested?

 

Anyway to make this work fork the dockerfile and add in the logic i posted above. You will also need to modify the checkout code slightly so that you can pull non tagged branches by revision number only.

 

 

 

This could be made to work but it is complicated by the fact you also need to remove par2, grab source, patch it and install the new par2.

 

All,

 

I've not had a chance to update my original nzbget plugins yet, but I have built stable 13.0 and 14.0-testing releases for 32bit & 64bit.  I've also created a libpar2 package for each platform with the new patch.

 

Links are below.  On a running system, it's probably sufficient to copy the packages to the nzbget plugin directory and perform package upgrades. 

 

eg. to upgrade nzbget on unRAID v5(32bit) to the new testing branch...

upgradepkg --install-new /boot/config/plugins/nzbget/libpar2-0.4-i486-2rj.txz
upgradepkg --install-new /boot/config/plugins/nzbget/nzbget-14.0-testing-r1070-i686-1.txz

If you're not happy doing this, then it's probably best you wait until I get a chance to update the plugins.  But that won't be for while.

 

WARNING: I've not tested the below packages; only compiled and made sure nzbget binary executes.  Backup your installation & config before doing anything.

 

 

NZBGet 13.0 Stable for 32bit:

https://dl.dropboxusercontent.com/u/572553/UnRAID/new_nzbget/32bit/nzbget-13.0-i686-1.txz

Unpatched libpar2:

https://dl.dropboxusercontent.com/u/572553/unraid/new_nzbget/32bit/libpar2-0.4-i486-1rj.txz

 

NZBGet 14.0-testing[1070] for 32bit:

https://dl.dropboxusercontent.com/u/572553/UnRAID/new_nzbget/32bit/nzbget-14.0-testing-r1070-i686-1.txz

Patched libpar2

https://dl.dropboxusercontent.com/u/572553/UnRAID/new_nzbget/32bit/libpar2-0.4-i486-2rj.txz

 

NZBGet 13.0 Stable for 64bit:

https://dl.dropboxusercontent.com/u/572553/UnRAID/new_nzbget/64bit/nzbget-13.0-x86_64-1.txz

Unpatched libpar2:

https://dl.dropboxusercontent.com/u/572553/UnRAID/new_nzbget/64bit/libpar2-0.4-x86_64-1rj.txz

 

NZBGet 14.0-testing[1070] for 64bit:

https://dl.dropboxusercontent.com/u/572553/UnRAID/new_nzbget/64bit/nzbget-14.0-testing-r1070-x86_64-1.txz

Patched libpar2

https://dl.dropboxusercontent.com/u/572553/UnRAID/new_nzbget/64bit/libpar2-0.4-x86_64-2rj.txz

 

 

 

Regards,

overbyrn

That's excellent, overbyrn. Thanks!

I installed the 32-bit version for unRAID 5.x and it's working very well.

 

The article cache and fast par check are pretty sweet.

Archived

This topic is now archived and is closed to further replies.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.