Raspberry Pi als Downloadserver mit pyLoad

  • In diesem Tutorial wollte ich euch eigentlich erklären, wie man jDownloader mit Webinterface installiert, doch dabei bin ich jedoch auf den schnellen und gegenüber von Java sehr ressourcensparenden Download-Manager pyLoad gestoßen.
    PyLoad ist in eine Core- und mehrere Client-Einheiten unterteilt, was ihn perfekt für Fernzugriff macht ! Im Moment gibt es hierfür das Webinterface, Command Line Interface, GUI oder einen Android Client. Ich entschied mich in diesem Tutorial für das Webinterface, da dieses einfach von jedem anderen PC aus zu bedienen ist.
    Hinweis : Ein eleganteres und um SSL erweitertes Tutorial gibt es hier : http://www.gtkdb.de/index_36_2102.html



    1. Paketlisten aktualisieren
    Sofern nicht bereits geschehen


    Code
    1. sudo apt-get update && sudo apt-get upgrade



    2. Benötigte Pakete installieren
    Damit wir pyLoad installieren können benötigen wir zuerst ein paar Pakete. Hierbei handelt es sich primär um Python (meist bereits vorinstalliert) mit einigen Erweiterungen. Wer den pyLoad Core über Fernzugriff steuern möchte, sollte vielleicht auch noch pyOpenSSL mitinstallieren.


    Code
    1. sudo apt-get install python python-crypto python-pycurl python-imaging liblept3 tesseract-ocr spidermonkey-bin python-qt4 screen


    (Optional)

    Code
    1. sudo apt-get install python-openssl



    3. PyLoad installieren
    Nun laden wir uns die aktuelle .DEB-Datei von Python in der Version all herunter. Zum Zeitpunkt dieses Tutorials ist die Version 0.4.9 aktuell. Den aktuellen Downloadlink bekommst du unter http://pyload.org/download dann installieren wir pyLoad mittels dpkg und löschen anschließend die DEB-Datei.


    Code
    1. wget http://download.pyload.org/pyload-v0.4.9-all.deb
    2. sudo dpkg -i pyload-v0.4.9-all.deb
    3. rm pyload-v0.4.9-all.deb



    4. PyLoad starten
    Nun starten wir pyLoad erstmalig. Dabei werden einige Fragen zur Einrichtung gestellt, welche ihr beantwortet. Hierbei empfiehlt es sich, Fernzugriff auszuschalten, um weitere Ressourcen zu sparen und nur das Webinterface einzurichten. Außerdem solltet ihr den Port für das Webinterface überprüfen, sodass keine Komplikationen mit bestehenden Webservern o.ä. auftreten. Nach dem Einrichten sucht pyLoad nach neuen Updates für jegliche Hoster, das kann u.U. schon mal was dauern und man muss pyLoad ein paar mal neustarten.


    Code
    1. cd /usr/share/pyload
    2. ./pyLoadCore.py


    Nach dem Einstellen & Updaten erneut starten per

    Code
    1. ./pyLoadCore.py


    oder zu Schritt 5 wechseln !


    Das Setup kann später wieder über

    Code
    1. ./pyLoadCore.py --setup


    aufgerufen werden.



    5. PyLoad automatisch starten (optional)
    Soweit läuft euere pyLoad Installation, nur wäre es natürlich schön, wenn man nicht immer das Terminal aufmachen müsste, um diesen zu starten.


    Datei erstellen

    Code
    1. sudo nano /etc/init.d/pyloadboot


    Folgendes einfügen und danach unter /etc/init.d/pyloadboot speichern


    Der erstellten Datei die benötigten Rechte geben

    Code
    1. sudo chmod +x /etc/init.d/pyloadboot


    Und zuletzt diese, (wenn gewünscht) in den Autostart legen

    Code
    1. sudo update-rc.d pyloadboot defaults



    6. Daten auf externe Festplatte/USB-Stick speichern
    Da wahrscheinlich viele RPi-Besitzer eine (relativ) kleine SD für das OS verwenden, bietet es sich an bzw. ist es geradezu schon fast von Nöten die heruntergeladenen Daten auf einer externen Festplatte zu speichern. Dies macht nicht nur die evtl. spätere Datenübertragung auf PC o.ä. einfacher sondern schont auch den SD-Flashspeicher. Wie man eine USB-Festplatte/Stick mountet bzw. richtig partioniert kann ich euch hier nicht näherlegen, das würde den Rahmen des Tutorials sprengen. Daher zeige ich euch hier nur kurz wie ihr einen Symlink zum pyLoad-Ordner legt, in den die Dateien dann geladen werden können.


    Code
    1. cd /root/.pyload/
    2. ln -s /dev/sda extern


    Danach im Webinterface (oder per --setup) unter Menu -> General als Downloadverzeichnis "extern" (ohne Anführungszeichen) eintragen und die Daten gehen direkt auf die Festplatte.



    Anschließend sollte man den RPi mit "sudo reboot" neustarten um alles auf Funktion zu überprüfen. Danach könnt ihr unter IP:Port (IP des RPI|Festgelegter Port während der pyLoad Konfiguration) das Webinterface erreichen (vorrausgesetzt es hat alles geklappt), welches ungefähr so aussehen sollte :
    [Blocked Image: http://www.forum-raspberrypi.de/attachment.php?aid=311]


    Hier könnt ihr euch jetzt download-mäßig austoben und einfach mal alles ausprobieren. Bei Fragen versuche ich natürlich gerne zu helfen, allerdings bin ich selbst kein Profi. Wer sein Webinterface auch außerhalb des LANs erreichen möchte, kann sich ja mal das Tutorial zum DynDns hier im Forum anschauen.
    Wer die Einstellungen nach Schritt nochmal ändern möchte (z.B. Download-Ordner, Reconnect o.ä) kann in der core.xml Datei diese ändern. Unter http://pyload.org/configuration findet man alle Einstellungsmöglichkeiten. Viele dieser Einstellungen finden sich aber auch im Webinterface oben rechts unter Einstellungen.


    Für Tests/Anregungen/Verbesserungsvorschläge/Kritik oder Ähnliches wäre ich sehr dankbar und ich hoffe, das Tutorial konnte euch helfen.

  • Quote from drsascha pid=5063 dateline=1359961761


    Gibt es in den Einstellungen auch die Möglichkeit den Speicherort zu wählen? :huh:


    In Schritt 4, sobald man pyLoad das erste Mal gestartet hat, kann man alles möglich, unter anderem auch den Speicherort angeben.


    Außerdem sollte eine core.xml beiliegen, in der du unter "download_folder" den Speicherort auch nachträglich ändern kannst.


    http://pyload.org/configuration Hier findest du ziemlich viele weitere Einstellungsmöglichkeiten, die du dir mal ansehen kannst.

  • Ja klaro...schau bei Einstellungen --> Allgemein --> Menue --> General und dort bei "Download folder"

  • Weiß denn schon jemand wie man den Download Folder auf eine Externe Festplatte speichern kann ? Also dass die Downloads auf einer Externen Festplatte gespeichert werden ?

  • Hi,
    pyload habe ich zum laufen gebracht, jedoch bekomme ich es nicht hin die Sachen auf den USB-Stick abzuspeichern!
    ein symlink habe ich erstellt.


    cd /root/.pyload/
    ln -s /dev/sda extern


    und hier habe ich die Frage 1. Mein usb Stick ist als sda1 gemounted.
    muss es nicht so heißen ??? ln -s /dev/sda1 extern



    Aus dem Webinterface (Webinterface unter Menu -> General als Downloadverzeichnis ) lässt sich der Ordner extern nicht auswählen. Ist ausgegraut...



    Dann versuchte ich dieses über den Befehl zu editieren.

    Code
    1. ./pyLoadCore.py --setup


    Alles neugestartet, webinterface--general aufgerufen und gesehen dass der Ordner extern ausgewählt war.
    Komischerweise zeigt es mir nur ca. 180 MB frei! Etwa so groß wie meine FAT Partition auf der SD Karte!
    Mein USB-Stick ist 32 GB groß!


    Da stimmt was mit der Beschreibung nicht! Kann jemand Helfen ???

    root@raspberrypi:~/.pyload# ls -l
    insgesamt 60
    -rw------- 1 root root 829 Mär 6 01:53 accounts.conf
    drwxr-xr-x 3 root root 4096 Mär 6 02:00 Downloads
    lrwxrwxrwx 1 root root 8 Mär 6 00:12 extern -> /dev/sda
    -rw------- 1 root root 12288 Mär 6 02:08 files.db
    -rw-r--r-- 1 root root 1 Mär 6 00:08 files.version
    drwxr-xr-x 2 root root 4096 Mär 6 00:09 Logs
    -rw------- 1 root root 10408 Mär 6 01:53 plugin.conf
    -rw------- 1 root root 2494 Mär 6 01:53 pyload.conf
    -rw-r--r-- 1 root root 4 Mär 6 01:53 pyload.pid
    drwxr-xr-x 10 root root 4096 Mär 6 00:09 scripts
    drwxr-xr-x 5 root root 4096 Mär 6 02:00 tmp
    -rw-r--r-- 1 root root 0 Mär 6 01:55 unrar_passwords.txt
    drwxr-xr-x 9 root root 4096 Mär 6 00:15 userplugins
    root@raspberrypi:~/.pyload#



    root@raspberrypi:~/.pyload# df -h
    Dateisystem GröÃe Benutzt Verf. Verw% Eingehängt auf
    rootfs 15G 3,3G 11G 24% /
    /dev/root 15G 3,3G 11G 24% /
    devtmpfs 188M 0 188M 0% /dev
    tmpfs 38M 520K 37M 2% /run
    tmpfs 5,0M 0 5,0M 0% /run/lock
    tmpfs 75M 0 75M 0% /run/shm
    /dev/mmcblk0p1 56M 17M 40M 30% /boot
    /dev/sda1 30G 2,9G 25G 11% /media/usb
    root@raspberrypi:~/.pyload#



    root@raspberrypi:/media/usb# ls -l
    insgesamt 20
    drwxrw-rw- 2 pi pi 16384 Okt 25 15:48 lost+found
    drwxr-xr-x 4 pi pi 4096 Nov 6 11:09 Ordner1
    root@raspberrypi:/media/usb#

  • hat sich erledigt.
    Es reicht wenn man unter:

    Code
    1. ./pyLoadCore.py --setup


    Speicherort als /media/usb eingibt. Die Downloaddateien werden auf den USB Stick kopiert!
    Ohne Symlinks oder ähnlichem....
    Genial Leute !!! :) bin echt begeistert....
    Mal testen wie stabil das Teil funktioniert!

    Edited once, last by knopers1 ().

  • Hallo bei mir gibt der Server beim Starten folgendes aus:


    06.03.2013 21:08:00 INFO starte pyLoad 0.4.9
    06.03.2013 21:08:00 INFO Benutze Home-Verzeichnis: /home/pi/.pyload
    06.03.2013 21:08:02 INFO ExtractArchive: UnRar ist nicht installiert
    06.03.2013 21:08:02 INFO ExtractArchive: Aktiviert UnZip
    06.03.2013 21:08:02 INFO Aktivierte Plugins: CaptchaTrader, ClickAndLoad, ExternalScripts, ExtractArchive, UpdateManager
    06.03.2013 21:08:02 INFO Deaktivierte Plugins: Ev0InFetcher, HotFolder, IRCInterface, MergeFiles, MultiHome, MultishareCz, RealdebridCom, RehostTo, XMPPInterface
    06.03.2013 21:08:02 INFO Downloadzeit: True
    06.03.2013 21:08:02 INFO Freier Speicher: 127.44 GiBGB
    06.03.2013 21:08:03 INFO Aktiviere Accounts...
    06.03.2013 21:08:03 INFO Aktiviere Plugins...
    06.03.2013 21:08:03 INFO pyLoad ist gestartet und läuft
    06.03.2013 21:08:05 WARNING Not able to connect server for updates
    06.03.2013 21:08:05 INFO No Updates for pyLoad
    06.03.2013 21:08:05 INFO New version of hook|UpdateManager : 0.13
    06.03.2013 21:08:05 INFO Starting builtin webserver: 0.0.0.0:8000
    06.03.2013 21:08:05 WARNING UpdateManager: Error when updating UpdateManager.py | Bad server response: 500 Internal Server Error
    06.03.2013 21:08:05 INFO No plugin updates available



    Jemand ne idee was ich in den Sand gesetzt hab?

  • Hallo ukeman,


    du hast gar nichts in den Sand gesetzt. pyLoad versucht sich mit dem Update-Server zu verbinden um nach Updates zu suchen. Der Server meldet den Errorcode 500 (Internal Server Error) zurück. Das bedeutet, der Update-Server hat aktuell Probleme. Sobald dieser wieder funktioniert verschwinden auch die Warnungen.


    Gruß Georg

  • Achso na dann wart ich mal ein bisschen ... Danke


    Pyload meldet noch: UnRar ist nicht installiert. welches Paket muss ich dafür installieren? Ein Paket namens unrar gibt es scheinbar nicht in den Repos.

    Edited once, last by ukeman ().

  • Hallo ukeman,


    pyLoad sollte aber auch ohne die aktuellen Updates laufen.


    Quote

    welches Paket muss ich dafür installieren? Ein Paket namens unrar gibt es scheinbar nicht in den Repos.


    Bei Raspbian heißt das Paket "unrar-free".


    Gruß Georg

  • Hi,
    Weiß jemand wie oder ob man einstellen kann dass er z.B. von 11 Uhr Nachmittags bis 11 Uhr abends mit begrenztem speed lädt und dann mit Fullspeed lädt?

  • Du kannst die Option "download_speed_limit" setzten. Angabe in KB. Und zwar in der pyload.conf
    Quelle: pyload.org/de:configuration


    Wenn es möglich ist per command line die Optionen zu ändern, kannst du es relativ einfach mit einem cronjob machen. Aber nur eine Vermutung.

    Well in my humble opinion, of course without offending anyone who thinks differently from my point of view, but also by looking into this matter in a different way and without fighting and by trying to make it clear and by considering each and every one's opinion, I honestly believe that I completely forgot what I was going to say.


  • Bei mir funktioniert das leider nicht.


    Bekomme immer ein Permission denied. Wie stelle ich denn die richtigen Zugriffsrechte für das Laufwerk ein?


    EDIT: Hat sich erledigt, musste nur den User von /media/usb ändern! (Wenn möglich, kann der Beitrag hier gelöscht werden)

    Edited once, last by Lupurus ().

  • Danke für die tolle Anleitung.


    Eine Frage: gibt es eine Möglichkeit, den downloadordner auf eine Netzwerkfestplatte zu legen?
    Mein pi hängt im gleichen Netzwerk, meine Platte ist über ein nas verbunden.


    Danke
    Lion

  • Hallo Lion,


    Quote

    Eine Frage: gibt es eine Möglichkeit, den downloadordner auf eine Netzwerkfestplatte zu legen?


    Ja, die gibt es. Je nachdem was deine NAS anbietet die NAS über Samba/CIFS oder NFS in die lokale Verzeichnisstruktur einhängen und den Mountpoint bei pyLoad als Pfad einstellen. Ich glaube dazu gibt es bereits einen Thread.


    Gruß Georg