Newznab

Uit MyWiki
Ga naar: navigatie, zoeken

Newznab is een Content Management Systeem (CMS) voor een website die automatisch binaries van Usenet indexeert en via een regex categoriseert en voorziet van informatie. Daarbij wordt alles zo ingedeeld dat programma's zoals Sickbeard, Couchpotato e.a. er via een api-sleutel bij kunnen, en dus zo naar nzb's kunnen zoeken voor de door jou opgegeven zoektermen. nzb.su is een "live"-voorbeeld van een newznab-site.

Wat is NewzNab?

NewzNab is een NZB Indexer voor Usenet die gebruikt kan worden in combinatie met SickBeard & CouchPotato vanwege de ingebouwde API. NewzNab is Open Source en draait op php, pearl en mysql en is zodoende dus multiplatform.

Systeemeisen

NewzNab is nogal vrij resource intensive. Vreet graag geheugen en tijdens het optimizen en updaten van de database mag je CPU ook nog even flink aan de bak.


Benodigdheden

  • Een computer / server met 'n Linux distro zoals Ubuntu
  • Usenet account
  • Enige kennis bekendheid met de Linux terminal
  • Goed werkende Internet aansluiting


Ubuntu server

Download Ubuntu server


Je hebt in ieder geval dezelfde software nodig als Spotweb vereist. Als je Spotweb dus al hebt draaien dan kun je de volgende stap overslaan:

sudo apt-get install apache2 php5 php5-gd php-pear
sudo pear install Net_NNTP

Ook is er een mysql-server nodig voor het opslaan van de alle gegevens. Hoe dit moet staat in XBMC: One database to rule them all. Typ hiervoor: sudo apt-get intall mysql-server en volg de instructies in de terminal. (je moet een wachtwoord en dergelijke opgeven. Optioneel kan je voor het databasebeheer ook phpmyadmin installeren met sudo apt-get install phpmyadmin.

Na al deze apt-get's luistert er al een site @ http://localhost/. Surf daar maar heen en je krijgt een apache-bericht, wat betekent dat de install is gelukt.

De source hosten

Alle websites voor apache staan in /var/www/ op je machine. Nu staat er nog geen map in (of er staat al spotweb/mediafrontpage e.a.), maar dat gaan we dus veranderen. Plak de volgende code zonder # ervoor 1 voor 1 in de terminal en druk op enter.

# ga naar bestandslocatie
cd /var/www
# download de source
sudo wget http://www.newznab.com/newznab-0.2.3.zip
# pak de source uit
sudo unzip newznab*
# verwijder de source
sudo rm newznab*.zip
# hernoem de uitgepakte source naar newznab
sudo mv newznab* newznab
# maak de apache-user (www-data) en jezelf eigenaar van de map newznab
sudo chown -R www-data:jouw_username newznab

e mapstructuur is nu klaar. Je kunt er al heen surfen. Als je nu naar http://localhost/newznab gaat dan zie je een mappenstructuur. Klik op een link en je gaat die map in. Klik op www en je komt in het setup-panel terecht.


De database in orde maken

De website's gegevens worden opgeslagen in een database. Deze moeten we nog aanmaken, in het setuppanel zal er ook naar gevraagd worden. Dit kan met php-myadmin, maar ook via commandline. Commandline is makkelijker omdat je dan kan copy-pasten, in plaats van dat ik klik hier, klik dan daar zou moeten beschrijven met tig screenshots. Log daarom in op mysql in de terminal. Typ

mysql -u root -p

Geef je wachtwoord op, en nu krijg je een nieuwe commandline die er zo uitziet

mysql>

Neem het volgende over, inclusief de ;

CREATE DATABASE newznab;
CREATE USER 'newznab'@'localhost' IDENTIFIED BY 'wachtwoord';
GRANT ALL PRIVILEGES ON newznab.* TO newznab @'localhost' IDENTIFIED BY 'wachtwoord';

De rest van de setup door Step 1 Preflight check Op http://localhost/newznab/www kom je op de welkomspagina. Hier kun je onderaan op Step 1: De preflight check klikken. Als je daarop klikt kom je op een pagina waar je, als je bovenstaande stappen correct hebt uitgevoerd alleen maar Status OK en misschien een paar keer status Warning tegen. Die warning hoef je je nu nog niet druk om te maken, negeer dus maar, (druk maken daarover hoeft pas als de site raar gaat doen of als je heul veul usenet-groepen gaat indexen en je tegen problemen aan loopt). Ik ga er daarom voor het gemak ook niet op in. Als het goed is staat er daarom ook onderaan:

No problems were found and you are ready to install.

Step 2: Database setup

Hier vul je de gegevens in van de database die je net hebt aangemaakt. Dus username newznab, bij wachtwoord het gekozen wachtwoord en je kunt alweer naar stap 3.

Step 3: Set up news server connection

Deze stap spreekt voor zich. Hier vul je de gegevens van je nieuwsgroep-provider in. Indien je met SSL wil verbinden moet je ook openssl geinstalleerd hebben (is standaard aanwezig op Ubuntu server (en waarschijnlijk de meeste linux-servers). Klik op Test connection en als dit goed is ingevuld kom je automatisch in stap 4.

Step 4: Save setup.

Rare stap. Maar je moet even confirmen blijkbaar dat je alles goed hebt ingevuld, terwijl je het nergens ziet staan wat je nou hebt ingevuld, maar als je hier bent gekomen dan heb je alles goed ingevuld. Snap jij het nog? Je komt in stap 5 als je saved.

Step 5: Setup admin user

Maak de baas van je site. Deze user kan alles. Met deze user bepaal je de look en feel, welke indexeringen er zijn en wat er allemaal op de site komt. Ook kun je andere users aanmaken. The webmaster! Hier kun je invullen wat je wilt, als je maar onthoud wat je ingevuld hebt. Sla het op en je komt in stap 6, de laatste stap!

Step 6: NZB File Path

De default kun je prima laten staan. De user www-run moet er in ieder geval bij kunnen en kunnen schrijven, dus beter verander je niets, het staat immers al goed. Dit is waar alle nzb-files worden opgeslagen als gzipte files. Dus na verloop van tijd kan ie aardig vol raken. chown -R deze map met www-run:jouw_user en daarna nog chmod -R 774. Ook kan je map newznab/www/install na deze stap verwijderen, die is niet meer nodig.


Admin Hangout

Na stap 6 kom je hier terecht. De control room sort of speak. Je bent natuurlijk nieuwsgierig naar het indexeren. Daarvoor moet je eerst binaries-groepen aanwijzen die je op de frontpage wilt hebben. Daarvoor ga je naar: http://localhost/newznab/www/admin/group-list.php. zoek daar alle groepen op die je wilt hebben en klik op activate. Dan worden ze 'aangezet' en zullen ze bij het indexeren opgepakt worden en weergegeven op de frontpage.

Voor TV Shows zijn a.b.teevee en a.b.multimedia onmisbaar. Misschien weet je zelf ook nog goeie. Je kan de zoekbox gebruiken om bijvoorbeeld op movies te zoeken, en al die groepen ook toe te voegen. Doe er niet te veel in 1x. Anders wordt het nogal een heftige belasting op je systeem als je gaat retrieven. Haal de krenten uit de pap en voeg dat toe.

Hierna kan het echte werk beginnen. Het indexeren zelf.


Indexeren

Hiervoor staan commandline-tools in /var/www/newznab/misc/update_scripts. Daar kun je met cd heengaan. Je runt ze manueel, of vanuit een cronjob. De eerste keer maar even manueel, zodat je kan zien wat er gebeurt. De eerste die je draait is update_binaries.php, gevolgd door update_releases.php. Dit kan in 1 commando getypt:

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

Dit gaat ff duren, dus neem een bak koffie, en dan misschien nog 1, dat ligt eraan hoeveel en welke groepen je hebt gekozen.

Als deze scripts uitgerateld zijn is alle content aanwezig, maar het gekke is dat de frontpage-categorien ernstig leeg blijven en errors geven.


Alle info naar de frontpage

Dit is iets waar ik dus steeds tegen aanliep, de site leek niet te werken. Maar nu blijkt dat er rewrite's gemaakt moeten worden, net zoals nodig is voor de Spotweb-api.

Het makkelijkst is om een aparte site toe te voegen aan apache met daarin de rewrite-rules. Speciaal voor newznab. Of je neemt de info over. Maar evt. uit de dropbox halen kan ook. Om de rewrites in te schakelen doe dan je het volgende:

# de site-config downloaden
sudo wget -P /etc/apache2/sites-available http://dl.dropbox.com/u/18712538/newznab/newznab
# eventueel de poort aanpassen als je niet op poort 80 (=default) draait
sudo sed 's/:80>/:POORT>/' /etc/apache2/sites-available/newznab
# de site config aanzetten
sudo a2ensite newznab
# de rewrite-module inschakelen
sudo a2enmod rewrite
# apache restarten (reload is bij mij niet genoeg om de url's te rewriten)
sudo /etc/init.d/apache2 restart

En dan is het klaar (of juist begonnen)

Als je nu naar http://localhost/newznab/www/ surft dan zijn de categorien ook klikbaar. Daar zie je dan resultaten, met plaatjes en al. Voor zover mogelijk wordt info uit .nfo files gehaald, van imdb, tmdb, tvrage enzovoorts. Zo heb je mooie overzichten van de posts in de door jou opgegeven binarie-groepen.

En, je kunt het dus in Sickbeard en dergelijke hangen met je apikey, die je kunt vinden als je op je naam klikt en in je profiel-pagina komt. Als je via cronjob regelmatig laat bij werken dan zul je geen tvshow meer missen. Echter, als je al geregistreerd bent bij een andere nzb-provider, dan zal dit niet zoveel toegevoegde waarde hebben. Maar mocht je zo een registratie niet hebben, of als een of andere stichting het weer voor elkaar krijgt dat zo een site de lucht uit gaat, dan heb je er mooi zelf nog 1 achter de hand.

Je kunt deze site natuurlijk ook zelf hosten en registratie toestaan. Bedenk alleen wel dat het aanbieden van verwijzingen en links naar illegale content in Nederland bij wet verboden is. Je mag dit alleen in huiselijke kring doen en dus niet in het openbaar.

Door het user-registratie systeem heb jij als admin volledige controle over wie er op de site kunnen komen. Je kunt de frontpage, en alle pages, volledig aanpassen. De frontpage kan dus best over je postzegelverzameling gaan, als je er als anonieme bezoeker terecht komt, maar zodra je inlogt een complete en informatieve indexsite zijn. Niemand die daarachter komt zonder huisvredebreuk te plegen.

Zie ook

Tip

Een hele goeie tip: als je doneert en je daarna meldt op de chat van newznab, kun je bij de user "bb" een rar file krijgen van ik meen 8gb groot vol nzb's van de afgelopen 3 jaar.

Die kun je via de import.php scripts importeren en heb je een heel groot deel van usenet in je eigen index opgeslagen staan. Ik moet je dan wel waarschuwen, het importeren duurt wel echt lang! Afhankelijk van welke opties je inschakelt (deep rar insepction etc) kan het wel tot 6 dagen duren.. Maar dan heb je ook wel iets heel moois natuurlijk!


Externe links