NewzNab+ is een NZB Indexer voor Usenet die o.a. gebruikt kan worden in combinatie met SickBeard en CouchPotato vanwege de ingebouwde API. Wees er wel van bewust dat NewzNab+ nogal vrij resource intensief is. Het vraagt veel geheugen tijdens het optimaliseren en updaten van de database en je CPU wordt ook nog flink gebruikt. Het is dus belangrijk om veel geheugen en een snelle disk te hebben.

Volg de volgende stappen uit om Newznab+ te installeren op je headless Debian Server. Ik ga er van uit dat je als ‘su’ (superuser) bent ingelogd.

Het meest gebruikelijke is het om Newznab+ te installeren in de sub-directory ‘newznab’ van je web-root:

mkdir -p /var/www/newznab
chmod 777 /var/www/newznab

Installeren dependencies

apt-get install -y php5 php5-dev php-pear php5-gd php5-mysql php5-curl
apt-get install -y lame
apt-get install -y unrar
apt-get install -y ffmpeg
apt-get install -y python-software-properties
apt-get install -y mediainfo
apt-get install -y subversion

PHP Instellingen
Hiervoor moet je je PHP configuratie aanpassen. Dit doe je in de volgende 2 configuratie-files:

/etc/php5/apache2/php.ini
/etc/php5/cli/php.ini

Verander in deze 2 files de volgende instellingen (indien aanwezig):

register_globals = Off
max_execution_time = 120
memory_limit = 512MB
date.timezone = Europe/Amsterdam

Hierna moet je apache2 herstarten met het commando

/etc/init.d/apache2 restart

MySQL instellen
Zorg ervoor dat deze geïnstalleerd is met alle benodigde clients. Dit doe je met de volgende commando’s:

apt-get install mysql-server mysql-client libmysqlclient-dev

Kies een sterk passwoord voor je database als hierom gevraagd wordt. Dit heb je later nog nodig om in te loggen op mysql.

Apache
Je moet de site-configuratie aanmaken voor je Apache. Creëer hiervoor de file ‘/etc/apache2/sites-available/newznab’ met de volgende inhoud:

<VirtualHost *:80>
    # These paths should be fine
    DocumentRoot /var/www/newznab/www
    ErrorLog /var/log/apache2/error.log
    LogLevel warn
</VirtualHost>

Maak een aantal Apache instellingen met de volgende commando’s:

a2ensite newznab
a2enmod rewrite
/etc/init.d/apache2 restart

Sphinix
Sphinx wordt gebruikt om zeer snel door tekst te zoeken. Het is ongelooflijk snel en gebruik van deze tool wordt erg aangeraden in combinatie met Newznab+. Het is verstandig om de allerlaatste versie van deze tool te gebruiken.

apt-get install sphinxsearch

Newznab source
We kunnen nu eindelijk ‘echt’ gaan beginnen met het installeren van Newznab+. Haal de laatste versie van Newznab op en pak het bestand uit in ‘/var/www/newznab’.

Indien je de Newznab+ versie hebt gekocht kun je dit als volgt doen:

svn co svn://svn.newznab.com/nn/branches/nnplus /var/www/newznab

Hierna moet je de rechten van een aantal directories goed zetten:

chmod 777 /var/www/newznab/www/lib/smarty/templates_c
chmod 777 /var/www/newznab/www/covers/anime
chmod 777 /var/www/newznab/www/covers/console
chmod 777 /var/www/newznab/www/covers/movies
chmod 777 /var/www/newznab/www/covers/console
chmod 777 /var/www/newznab/www/covers/music
chmod 777 /var/www/newznab/www
chmod 777 /var/www/newznab/www/install
chmod 777 /var/www/newznab/nzbfiles/
chmod 777 /var/www/newznab/nzbfiles/

Configureren Newznab
Je hebt nu Newznab+ geïnstalleerd en is het is dus nu zaak om het te configureren. Dit gaat via een web-based installer. Ga hiervoor met je browser naar:

http://localhost/newznab/www/install

Hierbij worden de volgende stappen doorlopen:
– controle of alle settings goed staan
– user-name en paswoord van je database invullen
– news server instellingen
– administrator user aanmaken
– NZB file path opgeven

Uiteindelijk moet je nog een aantal Admin functies instellen om echt te gaan beginnen.

Edit Site
De default settings zijn over het algemeen prima. Zorg er wel voor dat je je Newznab ID en 3th party application paths goed invult:

Unrar Path     : /usr/bin/unrar
Mediainfo Path : /usr/bin/mediainfo
ffmpeg Path    : /usr/local/bin/ffmpeg
Lame Path      : /usr/bin/lame

Enable Groups
Ga naar ‘/admin/groups-list.php’ in je web-browser en kies een aantal groepen die je wilt indexeren door op [activate] van een aantal groepen te drukken. Ik raad de volgende groepen aan om mee te beginnen:

a.b.hdtv.x264
a.b.movies
a.b.teevee
a.b.tvseries
a.b.x264

Het is ook verstandig om een aantal termen te blacklisten om ’troep’ in je index te vermijden. Dit doe je in ‘admin/binaryblacklist-list.php’. Vul hier de volgende regel in:

german|danish|flemish|french|swedish|swesub|deutsch|norwegian|\.ita\.|korsub|ITA

Vervolgens kan het het echte indexeren gaan beginnen. Het beste is het om dit de eerste keer handmatig te doen.

cd /var/www/newznab/misc/update_scripts
php update_binaries.php
php update_releases.php

Sphinx
Met Sphinx kunt je heel snel tekst indexeren. Default staat deze uit, maar deze kun je enablen in ‘/admin/site-edit.php’. Om Sphinx werkend te krijgen moet je eerst een ‘sphinx.conf’ file genereren met de volgende commando’s:

cd /var/www/newznab/misc/sphinx
php ./nnindexer.php generate

Nu moeten we de search daemon starten, indeci creeren en de daemon restarten:

php ./nnindexer.php daemon
php ./nnindexer.php index full all
php ./nnindexer.php index delta all
php ./nnindexer.php daemon --stop
php ./nnindexer.php daemon

Vul nu de gegevens in je configuratie in:

Sphinx Configuration Path : /var/www/newznab/sphinxdata/sphinx.conf
Sphinx Binaries Path      : /usr/bin/

Retention instellen
Met een script kun je de retention instellen.

cd /var/www/newznab/misc/update_scripts/
php backfill_date.php 20130101 alt.binaries.multimedia

Hierbij is de datum notatie als YYYYMMDD en kun je de groepnaam weglaten als je alle groepen wilt instellen.

Vage namen in in je lijsten
Draai na het binnenhalen van je nieuwe indeci ook nog het  ‘update_parsing.php’ script om dit op te lossen.

Automatisch index ophalen
Om voortaan de index automatisch op te bouwen dien je de volgende acties uit te voeren:

cp /var/www/newznab/misc/update_scripts/cron_scripts/newznab.sh /etc/init.d/newznab

Edit nu de file ‘/etc/init.d/newznab’ en zorg dat het path na het update-script goed staat. Typ vervolgens de volgende commando’s:

chmod +x newznab
update-rc.d newznab defaults

Voor de mensen die nieuwsgierig zijn hoe Newznab zich presenteert in een webbrowser toon ik hieronder een aantal screenshots:

Het altijd handig om een eigen indexer achter de hand te hebben, dus misschien ga ik deze in de toekomst wel intensiever gebruiken. Nu was het voor mij vooral een ‘proof-of-concept’ om het werkend te krijgen. Zolang er nog ‘gratis’ newznab gebasseerde sites zijn zal ik daar gebruik van maken.