Usenet downloader

From NAS-Central Buffalo - The Linkstation Wiki
Revision as of 12:10, 18 December 2007 by Methanoid (Talk | contribs) (Configuration)

Jump to: navigation, search

[Sources/Credits Methanoid & Fantasymick on, Caveman on and DrChair at]

This has been tested and works well on a ARM9 Linkstation Live. Should work on others. We are using HellaNZB which is a NZB-based usenet "leech" client which also PAR checks and un-archives the files you have downloaded.


There are 2 options:

Stock firmware/jtymod


ipkg update
ipkg install py-hellanzb 
(or if you want to use python2.5, then ipkg install py25-hellanzb)

This installs Python, HellaNZB and all the dependencies such as Twisted, RAR, Par2Cmdline and the faster YEnc decoder


You can edit the config file now to get it set up for your provider etc

cd /opt/etc
vi hellanzb.conf

You need to change the settings to match those of your usenet provider (username, password, server,number of connections). Remember, the Linkstation is a NAS box not a high spec PC so don't be too greedy on the number of connections as it might actually make it go slower. For example, I can happily max out a 4Mbit line with 4 connections. Try different numbers and see how you get on.

 # Set both the username and password to 'None' (without the quotes) if your 
 # usenet server does not require authorization 
 defineServer(id = 'your usenet', 
 hosts = [ 'yourusenet:119' ], 
 #hosts = [ '', '' ], 

 username = 'your username', 
 password = 'your password', 
 #username = None, # no auth 
 #password = None, 

 connections = 4, 

 # Important locations 
 Hellanzb.PREFIX_DIR = '/mnt/disk1/shared/download' 

A further important change is to fix the permissions (you want to be able to move files from the download directory presumably?) so change

 Hellanzb.UMASK = 0022   


 Hellanzb.UMASK = 0000

Now there should be and your hellanzb.conf there. Now you can fire up hellanzb either from command line or from script.

cd /opt/bin
python -D (or python25 -D if running Python 2.5)

The -D makes it run in Daemon mode, i.e it runs in the background until stopped.

or you can run via script. Unfortunately the script needs some changes before use

vi /opt/etc/init.d/S71hellanzb

Change it to read

nice /opt/bin/ -D

Then check/fix the permissions/ownership and run it (first time only, it will autostart with the Linkstation in future!)

cd /opt/etc/init.d
chown root /opt/etc/init.d/S71hellanzb 
chmod ugo+rx /opt/etc/init.d/S71hellanzb 
sh S71hellanzb

If everything went well hellanzb is running and will create the necessary sub-dirs in the dir you created


Just pop your NZB file in the /mnt/disk1/shared/download/nzb/daemon.queue dir and hellanzb will start downloading and pop the unarchived resulting files in your destination directory.

You can monitor (without a web frontend) by typing python status

Adding a webfrontend

Realistically you will probably want a web based frontend. Hellahella doesn't seme to want to run but Zussaweb works fine with Lighttpd. You could use a 2nd instance of Apache or maybe piggyback on the Apache that runs the LS's web interface but it didn't work for me.

ipkg update
ipkg install lighttpd fcgi-php

You'll need to configure (of course)

vi /opt/etc/lighttpd/lighttpd.conf


 #                               "mod_fastcgi", 




url.access-deny             = ( "~", ".inc" )


url.access-deny             = ( "~", ".inc", ".sqlite" )


#fastcgi.server             = ( ".php" =>
#                               ( "localhost" =>
#                                 (
#                                   "socket" => "/tmp/php-fastcgi.socket",
#                                   "bin-path" => "/usr/local/bin/php"
#                                 )
#                               )
#                             )


fastcgi.server             = ( ".php" =>
                               ( "localhost" =>
                                   "socket" => "/tmp/php-fastcgi.socket",
                                   "bin-path" => "/opt/bin/php-fcgi"

Give some thought as to where you want to have your webpages. I like mine accessible to my Windows PCs so that I can edit directly in Frontpage or whatever but in this case I won't change the defaults.. Also you may need to open a port to the webserver if you want to have your Zussaweb available remotely over the internet.

Now you are ready to start lighttpd by /opt/etc/init.d/S80lighttpd

Next download and unpack zussaweb:

cd /opt/tmp
cd /opt/share/www/lighttpd/
tar -xzvf /opt/tmp/zussaweb03.tar.gz

Next you need to change the values of $disk and $download_nzb_path in the file /opt/share/www/lighttpd/zussaweb/settings.php

Finally we need to fix a bug: Edit /opt/share/www/lighttpd/zussaweb/functions.php and change:

function freediskspace() {
       return (round (disk_free_space(disk)/1024/1024,2));


function freediskspace($disk) {
       return (round (disk_free_space($disk)/1024/1024,2));

Now you can use the interface at http://linkstation:8081/zussaweb/

Remaining issues needing fixing

1) Getting Hellanzb to start up in daemon mode when LS starts.
2) Getting the "upload an NZB" and "enter Newzbin ref" options in Zussaweb to work right.




Adding a webfrontend