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:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
mkdir -p /var/www/newznab
chmod 777 /var/www/newznab
mkdir -p /var/www/newznab chmod 777 /var/www/newznab
mkdir -p /var/www/newznab
chmod 777 /var/www/newznab

Installeren dependencies

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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
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
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:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
/etc/php5/apache2/php.ini
/etc/php5/cli/php.ini
/etc/php5/apache2/php.ini /etc/php5/cli/php.ini
/etc/php5/apache2/php.ini
/etc/php5/cli/php.ini

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
register_globals = Off
max_execution_time = 120
memory_limit = 512MB
date.timezone = Europe/Amsterdam
register_globals = Off max_execution_time = 120 memory_limit = 512MB date.timezone = Europe/Amsterdam
register_globals = Off
max_execution_time = 120
memory_limit = 512MB
date.timezone = Europe/Amsterdam

Hierna moet je apache2 herstarten met het commando

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
/etc/init.d/apache2 restart
/etc/init.d/apache2 restart
/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:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
apt-get install mysql-server mysql-client libmysqlclient-dev
apt-get install mysql-server mysql-client libmysqlclient-dev
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:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<VirtualHost *:80>
# These paths should be fine
DocumentRoot /var/www/newznab/www
ErrorLog /var/log/apache2/error.log
LogLevel warn
</VirtualHost>
<VirtualHost *:80> # These paths should be fine DocumentRoot /var/www/newznab/www ErrorLog /var/log/apache2/error.log LogLevel warn </VirtualHost>
<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:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
a2ensite newznab
a2enmod rewrite
/etc/init.d/apache2 restart
a2ensite newznab a2enmod rewrite /etc/init.d/apache2 restart
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.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
apt-get install sphinxsearch
apt-get install sphinxsearch
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:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
svn co svn://svn.newznab.com/nn/branches/nnplus /var/www/newznab
svn co svn://svn.newznab.com/nn/branches/nnplus /var/www/newznab
svn co svn://svn.newznab.com/nn/branches/nnplus /var/www/newznab

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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/
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/
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:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
http://localhost/newznab/www/install
http://localhost/newznab/www/install
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:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Unrar Path : /usr/bin/unrar
Mediainfo Path : /usr/bin/mediainfo
ffmpeg Path : /usr/local/bin/ffmpeg
Lame Path : /usr/bin/lame
Unrar Path : /usr/bin/unrar Mediainfo Path : /usr/bin/mediainfo ffmpeg Path : /usr/local/bin/ffmpeg Lame Path : /usr/bin/lame
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:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
a.b.hdtv.x264
a.b.movies
a.b.teevee
a.b.tvseries
a.b.x264
a.b.hdtv.x264 a.b.movies a.b.teevee a.b.tvseries a.b.x264
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:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
german|danish|flemish|french|swedish|swesub|deutsch|norwegian|\.ita\.|korsub|ITA
german|danish|flemish|french|swedish|swesub|deutsch|norwegian|\.ita\.|korsub|ITA
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.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
cd /var/www/newznab/misc/update_scripts
php update_binaries.php
php update_releases.php
cd /var/www/newznab/misc/update_scripts php update_binaries.php php update_releases.php
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:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
cd /var/www/newznab/misc/sphinx
php ./nnindexer.php generate
cd /var/www/newznab/misc/sphinx php ./nnindexer.php generate
cd /var/www/newznab/misc/sphinx
php ./nnindexer.php generate

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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
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
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:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Sphinx Configuration Path : /var/www/newznab/sphinxdata/sphinx.conf
Sphinx Binaries Path : /usr/bin/
Sphinx Configuration Path : /var/www/newznab/sphinxdata/sphinx.conf Sphinx Binaries Path : /usr/bin/
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:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
cp /var/www/newznab/misc/update_scripts/cron_scripts/newznab.sh /etc/init.d/newznab
cp /var/www/newznab/misc/update_scripts/cron_scripts/newznab.sh /etc/init.d/newznab
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:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
chmod +x newznab
update-rc.d newznab defaults
chmod +x newznab update-rc.d newznab defaults
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.