Debian Wheezy: pyLoad nur mit Webinterface, neues Init-Script

Ich schreibe diese Anleitung aus dem einfachen Grund, dass die pyLoad Dokumentation für die Debian-Installation eher schlecht daher kommt. Zum Beispiel würde das init-Script den Prozess als root starten. Zwar kann der Prozess mittels der .config einem anderen Benutzer zugewiesen werden, was – bei mir – aber oft nicht richtig funktionierte. Irgendwann startete es einfach nicht mehr.

Zuerst die Paketquellen aktualisieren, gegenenfalls upgraden und sofort die Abhängigkeiten installieren:

apt-get update && apt-get upgrade
apt-get install python-crypto python-imaging python-openssl python-pycurl tesseract-ocr gocr python-django openssl unrar rhino

python-qt4“ wird nicht benötigt, da pyload ohne GUI laufen wird. Wenn das Paket „unrar“ nicht gefunden wird, dann noch schnell folgendes ausführen, um „non-free“ zu den Repositorys hinzuzufügen und die Paket-Quellen neu einzulesen:

sed -i 's/wheezy main/wheezy main non-free/g' /etc/apt/sources.list && apt-get update

Das CLI-Paket von pyLoad herunterladen und installieren. Bemerkung: „–content-disposition“ speichert die Datei unter dem Namen ab, die sie tatsächlich nach der Umleitung hat. Ohne diesen Parameter, würde sie als „index.html“ gespeichert werden:

wget --content-disposition http://get.pyload.org/get/ubuntu-cli/
dpkg -i pyload-*.deb

Den pyload Benutzer erstellen und ein sicheres Passwort vergeben:

adduser pyload

Nun schnell das INIT-Script ändern, dazu dieses mit einem Editor öffnen, z.B. „nano /etc/init.d/pyload“, anschließend folgenden Inhalt einfügen (kleiner Tipp: in Nano kann mit STRG+K eine ganze Zeile ausgeschnitten werden. Einfach gedrückt halten):

#!/bin/sh -e
### BEGIN INIT INFO
# Provides:          pyload
# Required-Start:    $local_fs $remote_fs $network
# Required-Stop:     $local_fs $remote_fs $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start or stop pyload.
### END INIT INFO

NAME=pyload
DAEMON=/usr/bin/pyLoadCore
USER=pyload
PIDFILE=/var/run/$NAME.pid
OPTIONS="--daemon"

export PATH="${PATH:+$PATH:}/sbin"

[ -x $DAEMON ] || exit 0

. /lib/lsb/init-functions

start_daemon () {
    start-stop-daemon --start --pidfile $PIDFILE --chuid $USER --exec $DAEMON -- $OPTIONS | cut -d" " -f 3 > $PIDFILE
}

stop_daemon () {
    start-stop-daemon --stop --retry="TERM/15/KILL/5" --pidfile "$PIDFILE" --user "$USER" --chuid "$USER" 
}

case "$1" in
    start)
        log_daemon_msg "Starting pyLoadCore" "$NAME"
        start_daemon
        log_end_msg 0
        ;;
    stop)
        log_daemon_msg "Stopping pyLoadCore" "$NAME"
        stop_daemon
        log_end_msg 0
        ;;
    restart)
        log_daemon_msg "Restarting pyLoadCore" "$NAME"
        stop_daemon
        start_daemon
        log_end_msg 0
        ;;
    *)
        echo "Usage: /etc/init.d/$NAME {start|stop|restart}"
        exit 2
        ;;
esac

exit 0

Anpassungen sind nicht notwendig. Die Start- und Stop-Level sind die selben, weshalb das Script einfach ausgetauscht werden kann.
Nun zum Benutzer pyload wechseln und die Konfiguration starten:

su pyload
pyLoadCore -s

Kurze Zusammenfassung der Abfragen mit meinen Antworten und Kommentaren:

Choose your Language / Wähle deine Sprache ([en], de, fr, it, es, nl, sv, ru, pl, cs, sr, pt_BR): de
Wenn du für den System-Check bereit bist, drücke enter. Enter
[…]
PyQt4: fehlt ## Wird nicht benötigt
[…]
Mit Setup fortfahren? ([j]/n): j
Config Pfad ändern? (j/[n]): n
Erstelle Grundeinstellungen? ([j]/n): j
Aktiviere Fernzugriff ([j]/n): n ## Hat nichts mit dem Web-Interface zu tun
Sprache ([en], de, fr, it, es, nl, sv, ru, pl, cs, sr, pt_BR): de
Download Ordner [Downloads]: /opt/Downloads ## Kann auch jeder andere Ordner sein, dieser müsste später aber auch für pyLoad nutzbar gemacht werden: chown pyload:pyload /opt/Downloads
Maximale parallele Downloads [3]: 5
Benutze Reconnect? (j/[n]): n
Konfiguriere SSL? (j/[n]): n ## Führt leider oft zu Problemen. Angeblich zu fixen, indem man den „threaded“ Server unten auswählt.
Konfiguriere Webinterface? ([j]/n): j
Aktiviere Webinterface? ([j]/n): j
Adresse [0.0.0.0]: 0.0.0.0 ## Auf jeder IPv4-Adresse zugänglich sein
Port [8000]: 9009 ## Lieber bei sowas nicht den Standardport benutzen.
Server ([builtin], threaded, fastcgi, lightweight): builtin

Setup erfolgreich beendet.

Bevor die Shell des Benutzers „pyload“ verlassen wird, wird pyLoadCore in der Konsole gestartet:

pyLoadCore

Sobald „*** Plugins have been updated, please restart pyLoad ***“ erscheint, STRG+C drücken und pyLoadCore erneut ausführen. Jetzt erst beginnt das Updaten der Plug-Ins. In der Konsole kann man den Fortschritt besser verfolgen, außerdem sollte vor dem Hinzufügen von Konten (uploaded.to etc.) gewartet werden, bis das Update fertig ist. Wieder erscheint die Aufforderung pyLoad zu beenden, ebenfalls mit STRG+C. Anschließend kann die Konsole verlassen werden und das INIT-Script gestartet werden:

exit
/etc/init.d/pyload start

Jetzt via Browser http://192.168.1.109:9009/ aufrufen und einloggen. Sollte oben rechts tatsächlich noch einmal um einen Neustart gebeten werden, kann der Service schnell neugestartet werden:

/etc/init.d/pyload restart

Alles Weitere ist entweder selbsterklärend oder wird in der pyLoad Dokumentation erklärt.

12 Antworten auf “Debian Wheezy: pyLoad nur mit Webinterface, neues Init-Script

  1. Edo

    Bei mir hat es anfangs Probleme gegeben mit Uploaded.net ! (Kein Premium)
    Aber nach dem Tipp von Michael in der ersten Antwort läuft,
    jetzt alles wie es soll !
    (Debian 8.3 Jessie)
    Danke für dieses Tolle TUT

  2. Michael

    Hallo André,
    vielen Dank, tolle Seite mit vielen hochwertigen Tipps! Kleine Ergänzung zum Pyload auf Wheezy, Stand 12.12.2015:
    Der Updatemanager ist nicht mehr aktuelle. Zum Aktualisieren vor dem Start von Pyload wie folgt vorgehen:
    Folgende Datei herunterladen:
    https://raw.githubusercontent.com/pyload/pyload/0eb54572e9c600d1ec88b41de8f901899533b4e6/module/plugins/hooks/UpdateManager.py
    An diese Stelle kopieren:
    /usr/share/pyload/module/plugins/hooks

    Unter Umständen müssen die Dateirechte in module (rekursiv!) angepasst werden, damit die heruntergeladenen Module aktiviert werden.

    1. 5versuche_keinbockmehr

      Danke für deinen Post. Es funktioniert aber noch nicht.
      Ich bin in:
      /usr/share/pyload
      und habe dort:
      sudo chmod 777 -R module
      ausgeführt.
      Ich finde unter
      /usr/share/pyload/module/plugins/hoster/
      keine
      FilerNet.py
      Dabei scheinen alle anderen Hoster vorhanden zu sein.
      Wenn ich im Webinterface von Pyload unter Konten gucke, finde ich dort aber filer.net (meinen Hoster), beim absenden der Login-Daten
      bekomme ich aber vom WebInterface die Ausgabe:
      \“Ein Fehler ist aufgetreten\“

      Ich bin nach dieser Anleitung vorgegangen (http://www.gtkdb.de/index_36_2102.html) und nachdem der UpdateManager seine Arbeit nicht tat, bin ich nach langer Suche auf deinen Post gestoßen. Habe das Orginal gesichert und mit wget deine UpdateManager.py heruntergeladen. Pyload neugestartet und die Hoster-aktualisierung im Log (Webinterface) verfolgt. FilerNet war nun dabei, dennoch kann ich die Daten nicht absenden.

      Pyload wird vom \“Benutzer\“ pyload (im Tutorial erstellt) ausgeführt und nicht vom Benutzer pi bzw. root.
      In
      /usr/share/pyload/module habe Ich root root stehen. Wenn Pyload aber von dem Benutzer pyload gestartet wird, die Dateirechte aber root root sind, kann Pyload meine LogIn-Daten doch gar nicht in die Datei schreiben bzw die Datei erstellen. Richtig?
      Vergebe ich mit dem obigen Befehl vielleicht die Dateirechte falsch?

  3. Markus

    Das ist ja mal ein gutes Tut,vielen Dank dafür ;)

    Hab nur ein kleines Problem ich habe ein Premium.to Account welchen ich eingetragen hab nur leider will pyload immer das ich captchas eintrage das kann doch nicht normal sein.

    1. André P. Autor

      Hi Jörg,
      super, habe ich mich letztens erst wieder gefragt… ;-)
      Der Client hat sich bei mir immer selbstständig aktualisiert. Es war dann nur noch ein Neustart des Dienstes notwendig.
      Viele Grüße
      André

  4. ReaZaaa

    Danke für den Artikel, hat mir sehr weiter geholfen.
    Das es keiner mal hinbekommt ein Tut für Wheezy zu schreiben..

    Läuft alles prima und beim nächsten mal brauch ich kein Tut mehr glaub ich (höchsten für das init-Script^^).

    Grüße

      1. ReaZaaa

        Gibt es eigentlich auch die Möglichkeit auf Pyload aus dem Webverzeichnis (var/www oder bei mir in dem Fall /home/web über einen vHost) heraus aufzurufen?
        Dann hätte ich neben dem Login noch einen htpasswd-Schutz gegen Fremdzugriffe. Ein Symlink würde es ja nicht wirklich bringen, da ja das Webinterface trotzdem noch über den normalen Weg aufzurufen gehen würde.

        Aber im Netz scheint es zu dem Thema nix zu geben, also siehts wohl nicht so gut aus :/

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.