Raspberry Pi als Downloadserver mit pyLoad

L I V E Stammtisch ab 20:30 Uhr im Chat
  • 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
    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
    sudo apt-get install python python-crypto python-pycurl python-imaging liblept3 tesseract-ocr spidermonkey-bin python-qt4 screen

    (Optional)

    Code
    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
    wget http://download.pyload.org/pyload-v0.4.9-all.deb
    sudo dpkg -i pyload-v0.4.9-all.deb
    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
    cd /usr/share/pyload
    ./pyLoadCore.py

    Nach dem Einstellen & Updaten erneut starten per

    Code
    ./pyLoadCore.py


    oder zu Schritt 5 wechseln !

    Das Setup kann später wieder über

    Code
    ./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
    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
    sudo chmod +x /etc/init.d/pyloadboot

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

    Code
    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
    cd /root/.pyload/
    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 :
    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.

  • Zitat von 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.

    krtSoqb.png

  • 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
    ./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
    ./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!

    Einmal editiert, zuletzt von knopers1 (6. März 2013 um 14:08)

  • 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.

    Einmal editiert, zuletzt von ukeman (6. März 2013 um 22:12)

  • 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?

    • Offizieller Beitrag

    Du kannst die Option "download_speed_limit" setzten. Angabe in KB. Und zwar in der pyload.conf
    Quelle: http://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.

  • Zitat von knopers1 pid=7167 dateline=1362574991


    hat sich erledigt.
    Es reicht wenn man unter:

    Code
    ./pyLoadCore.py --setup

    Speicherort als /media/usb eingibt. Die Downloaddateien werden auf den USB Stick kopiert!
    Ohne Symlinks oder ähnlichem....

    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)

    Einmal editiert, zuletzt von Lupurus (22. März 2013 um 17:42)

  • 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

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!