Hallo liebe Leserinnen und Leser,
mein heutiger Beitrag beschäftigt sich mit dem Einsatz des Banana Pi als Download-Server. Obwohl der Großteil davon auch analog mit einem Raspberry Pi umgesetzt werden kann, fokussiere ich mich hier auf den Banana Pi, da er sich meiner Meinung nach dank Gigabit-Ethernet und SATA-Anschluss viel mehr für diesen Einsatzzweck eignet.
Der Beitrag beschreibt die Installation und Konfiguration(sansätze) für einen OCH (One Click Hoster)-Downloader und einen Usenet-Downloader.
Als Betriebssystem setze ich auf dem Banana Pi wieder das schlanke Bananian ein, welches ich mit einem Nutzer „pi“ ausgestattet habe und das ich via SSH bediene. Der Banana Pi läuft bei mir also als reiner Server – sprich „headless“ (ohne Maus, Tastatur und Monitor).
Nun zu den Installationen und Konfigurationen:
1. Installation und Konfiguration von pyLoad
Als Download-Client für OCHs habe ich mich für das schlanke pyLoad entschieden, welches ich bereits seit längerer Zeit auf dem Raspberry Pi betreibe. Dieses basiert auf Python und verfügt auch über ein Webinterface, sodass es auch auf einem Server problemlos seine Arbeit verrichten kann.
Um pyLoad später installieren zu können, müssen zuerst noch ein paar Pakete installiert werden. Für die Minimal-Konfiguration werden python-pycurl und python-crypto benötigt:
1 2 | sudo apt-get update sudo apt-get install python-pycurl python-crypto |
Zudem gibt es noch eine Reihe vorgeschlagener Pakete für pyLoad. Diese erlauben es, pyLoad im vollen Funktionsumfang zu nutzen und sollten daher auch installiert werden:
1 | sudo apt-get install unrar rhino python-openssl tesseract-ocr tesseract-ocr-eng python-imaging |
Anschließend könnt ihr die aktuelle (0.4.9 war zum Zeitpunkt der Artikel-Erstellung [Februar 2015] die aktuellste Version) cli-Version (command-line interface) von Pyload herunterladen:
1 | wget http://download.pyload.org/pyload-cli-v0.4.9-all.deb |
Diese Version bringt keine GUI mit und ist daher für Server optimal geeignet.
Ihr könnt pyLoad nun über sudo dpkg -i pyload-cli-v0.4.9-all.deb installieren. Um es zu konfigurieren, wird beim ersten Start automatisch ein Konfigurationsscript aufgerufen, das euch durch die verschiedenen Einstellmöglichkeiten führt:
1 2 | cd /usr/share/pyload ./pyLoadCore.py |
Die Konfiguration ist selbsterklärend und kann auch auf Deutsch durchgeführt werden (beim ersten Schritt einfach „de“ eingeben).
Anschließend könnt ihr pyLoad starten. Es empfiehlt sich, den Dienst als Daemon, sprich im Hintergrund, zu starten:
1 | pyLoadCore --daemon |
Damit pyLoad auch nach einem Neustart wieder gestartet wird, könnt ihr noch folgenden Eintrag als cronjob via crontab -e anlegen:
1 | @reboot /usr/bin/pyLoadCore --daemon |
Damit ist die Grundkonfiguration abgeschlossen und ihr könnt das Webinterface von pyLoad aufrufen (sofern ihr es in der Konfiguration aktiviert habt). Dazu müsst ihr in einem Browser euerer Wahl nur „[IP]:8000“ eingeben. „[IP]“ steht hierbei natürlich für die IP-Adresse von eurem Banana Pi. Es sollte nun ein Webinterface mit Login-Maske erscheinen:Bei dieser müsst ihr nun den Nutzernamen und das Passwort, das ihr bei der Konfiguration eingetragen habt angeben und könnt nun das Webinterface von pyLoad verwenden, um etwaige Accounts von OCHs oder MOCHs (Multi OCHs) anzulegen oder Download-Pakete einzupflegen. Auch Änderungen an den Einstellungen von pyLoad können hier durchgeführt werden.
2. Installation und Konfiguration von NZBGet
Um Dateien aus den Usenet herunterzuladen, bietet es sich an, den Client NZBGet auf dem Banana Pi zu installieren. NZBGet ist zwar in den Paketquelle von Debian enthalten, leider handelt es sich hierbei aber um die recht veraltete Version 0.7 von 2010. Daher werden wir uns hier die neueste Version (14.1: Stand Februar 2015) kompilieren und installieren. Wen es interessiert: Hier ist der Changelog von NZBGet zu finden.
Um die Quelldateien von NZBGet später kompilieren zu können, müssen noch einige Tools und Bibliotheken installiert werden:
1 | sudo apt-get install build-essential libsigc++-dev libncurses5-dev sigc++ libpar2-0-dev libssl-dev libgnutls-dev libxml2-dev openssl |
Anschließend ladet ihr euch die aktuellste Version von NZBGet als SourceCode herunter:
1 | wget http://sourceforge.net/projects/nzbget/files/nzbget-stable/14.1/nzbget-14.1.tar.gz |
Diese entpackt ihr mittels tar -xvf nzbget-14.1.tar.gz und wechselt via cd nzbget-14.1 in den neu erstellten Ordner. Dort führt ihr folgendes aus:
1 | ./configure --with-tlslib=OpenSSL |
Jetzt noch kompilieren mit make und mittels sudo make install sowie sudo make install-conf installieren. Nutzt ihr wie ich den Nutzer „pi“ und wollt NZBGet damit später starten, solltet ihr die Konfigurationsdatei noch für diesen Nutzer änderbar machen via sudo chown pi:root /usr/local/etc/nzbget.conf .
Der Daemon von NZBGet wird nun einfach über das Terminal gestartet:
1 | nzbget –D |
Damit wurde NZBGet bereits im Hintergrund gestartet und ihr könnt das Webinterface von NZBGet nun über [IP]:6789 erreichen, wobei [IP] hier natürlich wieder für die IP-Adresse eures Banana Pi steht. Ihr solltet nun eine Eingabemaske erhalten, die Nutzernamen und Passwort erfordert. Die Standardkombination hierzu lautet:
User: nzbget
Passwort: tegbzn6789
Die Standardkombination könnt ihr natürlich ändern, was auch ratsam ist. Hierzu geht ihr im Webinterface auf „Settings“ → „Security“ und gebt dort Nutzernamen und Passwort eurer Wahl an:
Nicht vergessen, die Änderungen auch zu speichern. Ebenso könnt ihr im Webinterface die Daten eurer News-Server eintragen, die Download-Pfade usw. Da die Konfiguration recht simpel ist, möchte ich in diesem Beitrag darauf nicht näher eingehen.
Damit NZBGet auch nach einem Neustart wieder gestartet wird, könnt ihr noch folgenden Eintrag als cronjob via crontab -e anlegen:
1 | @reboot /usr/local/bin/nzbget –D |
Mit diesen beiden Programmen könnt ihr nun euren Banana Pi auch als Download-Server benutzen, um Inhalte aus verschiedenen Quellen bequem herunterzuladen.
Das ist besonders praktisch, wenn größere Dateien heruntergeladen werden sollen und man während des Tages nicht den DSL-Anschluss von der Bandbreite her ausnutzen möchte, um nebenbei noch Dinge erledigen zu können. Die Downloads können dann einfach über Nacht laufen und sind am nächsten Morgen auf dem Banana Pi.
Bei Fragen, Problemen, Anregungen usw. düft ihr gerne wie immer das Kommentarfeld unten benutzen.
Bekomme leider bei folgende Fehlermeldung: configure: error: “libxml2 header files not found”
Was kann ich da machen?
========================================================
Hi! Leider scheitert die NZBget Installation bei dem Befehl „./configure –with-tlslib=OpenSSL “ mit folgender Rückmeldung:
checking for libxml2… configure: error: „libxml2 library not found“
Was kann ich da machen?
LG
Thomas
Hi Thomas,
versuchs mal mit „sudo apt-get install libxml2“ (sollte eigentlich automatisch mit libxml2-dev installiert werden).
Wenns dann nicht klappt, kannst du noch versuchen, die Pfade von libxml2 dem Konfigurationsskript zu übergeben. Das sollte aber eigentlich nicht notwendig sein.
Hallo,
mich würde die Performance von openssl beim Banana Pi intressieren.
Könntest du mal (per SSH oder direkt dran) „openssl speed“ laufen lassen und die Ergebnisse hier posten? Wäre sehr dankbar.
Hi plantoschka,
hab den Benchmark mal ausgeführt, Ergebnisse in dieser Text-Datei.
Der erste Wert schwankte bei den Messungen start und lag oft auch > 1100000.
Vielen Dank Alexander.
Mir ging es vor allem um die openssl Performance im Vergleich zur Raspberry Pi2. Da OpenSSL momentan nur auf einem Kern läuft, profitiert die Pi2 hier nicht von ihren 4 Kernen. Ingesamt ist die Banana Pi leicht schneller als die Pi2. Wobei die vermutlich gleich schnell sind, wenn man die Pi2 auf 1 Ghz übertaktet.
http://pastebin.com/NHCa5vMk
Hi plantoschka,
interessant zu sehen, gerade der Vergleich zum neuen RPi.
Der A20 auf dem Banana Pi verfügt übrigens auch über Hardware-Beschleunigung für div. Algorithmen. Diese wird aber lt. Roadmap von Bananian erst in der nächsten Version implementiert (siehe hier). Wäre sicher auch interessant, ob und wie sich die Werte dadurch noch verändern.
Oh vielen dank für den Hinweis. Das macht die Banana Pi für diesen Anwendungszweck ja nochmal interessanter.
https://dev.bananian.org/view.php?id=46
Hallo Alex,
könntest du auch noch eine Anleitung für den jDownloader machen? Bekomme ihn auf meinem Banana Pi einfach nicht zum laufen….
Danke!
Hallo Doron,
mit jDownloader auf dem Banana oder Raspberry Pi habe ich bisher keine Erfahrungen, aber pyload ist doch eine ebenbürtige Alternative ;)
Hallo,
leider scheint pyLoad immer wieder Probleme mit Accounts zu haben. JDownloader scheint da besser zu sein.
Hallo Theo,
ja – habe auch hin und wieder Probleme mit Accounts, i.d.R. werden diese aber schnell behoben.
Kleiner Tipp: einfach das automatische Update deaktivieren, damit umgeht man diese Probleme in der Regel ;-)
Mahlzeit,
sobald ich pyLoadCore –daemon eingebe, bekomme ich eine PID angezeigt, die bei htop aber nicht in der Liste steht.
Soll das so sein?
Am Port 8000 gibts auch keine Antwort -.-
Hi dj,
sorry für die späte Antwort – bin erst heute dazu gekommen, das nachzustellen.
Habe das Problem anscheinend selbst – bei mir liegt es an einem Plugin. Um zu sehen, was das Beenden von pyLoad nach dem Start bewirkt, gib mal nur „pyLoadCore“ (ohne „–daemon“) ein, dann sollte eine entsprechende Fehlermeldung kommen. Zum Beheben des Fehlers einfach mal danach googlen, in der Regel haben mehrere Nutzer Probleme und eine Lösung sollte auch zu finden sein.
Oha, da steht tatsächlich „PyQt4: fehlt“ in der Liste.
Dann weiß ich wo ich ran muss :)
Hey, könntest du nicht dein Image hochladen? Weil ich kriege es auch nicht zum laufen. Bei mir kommt immer ein Blau/Schwarzer Screen:
2 threads, 0.0 KB/s, 0.00 MB remaining, Avg. 0.0 KB/s
(Q)uit | (E)dit | (P)ause | (R)ate | (W)indow | (G)roup | (T)ime | n(Z)b I/O warning : failed to load external entity „/root/nzbget-14.1/–D“
Hi Amin,
leider nein. Zum einen habe ich keinen Banana Pi mehr, zum anderen würde der Upload des gesamten Images ewig dauern.