Good to Know Database

Raspbian: pyLoad einrichten


pyLoad ist ein Download Manager für HTTP- und FTP-Links, sowie für viele One-Click-Hoster und unterstützt die Download Container Formate DLC, CCF und RSDF. Wie der Name bereits vermuten lässt, ist pyLoad in Python geschrieben. Trotz der niedrigen Hardware-Anforderungen bietet pyLoad ein Web-Interface, ein Command Line Interface, eine GUI und einen Android Client zur Fernsteuerung.

In diesem Artikel möchte ich Ihnen zeigen, wie Sie pyLoad auf Ihrem Raspberry Pi mit Raspbian als Betriebssystem einrichten können. Für die Fernsterung wird hier das Web-Interface konfiguriert.

Abhängigkeiten installieren

Für die Installation von pyLoad werden noch ein paar Pakete benötigt, welche Sie wie folgt installieren können.

pi@raspberrypi ~ $ sudo apt-get update
pi@raspberrypi ~ $ sudo apt-get install openssl python python-crypto python-imaging python-openssl python-pycurl python-qt4 spidermonkey-bin tesseract-ocr tesseract-ocr-eng

pyLoad installieren

Das derzeit aktuelle Debian-Installationspaket von pyLoad können Sie sich mit folgendem Befehl herunterladen.

pi@raspberrypi ~ $ wget http://download.pyload.org/pyload-v0.4.9-all.deb

Die Installation starten Sie anschließend wie folgt.

pi@raspberrypi ~ $ sudo dpkg -i pyload-v0.4.9-all.deb

Benutzeraccount für pyLoad erstellen

Aus Sicherheitsgründen sollten Sie pyLoad unter einem eigenen Benutzer laufen lassen. Dazu erstellen Sie mit den folgenden zwei Befehlen eine Systemgruppe pyload und einen Systembenutzer pyload welcher zur Gruppe pyload gehört.

pi@raspberrypi ~ $ sudo groupadd -r pyload
pi@raspberrypi ~ $ sudo useradd -r -m -g pyload -s /bin/bash -c "pyLoad" pyload

Nachdem der Benutzer pyload erstellt wurde sollten Sie für diesen noch ein Passwort setzen.

pi@raspberrypi ~ $ sudo passwd pyload
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully

Öffnen Sie sich jetzt mit dem neuen Benutzeraccount eine Shell.

pi@raspberrypi ~ $ su - pyload
Password:

pyLoad konfigurieren

Jetzt können Sie mit der Konfiguration von pyLoad starten. Rufen Sie dazu den folgenden Befehl auf.

pyload@raspberrypi ~ $ /usr/share/pyload/pyLoadCore.py -s
Choose your Language / Wähle deine Sprache ([en], de, fr, it, es, nl, sv, ru, pl, cs, sr, pt_BR): de

Willkommen im pyLoad Konfigurations Assistenten.
Er wird jetzt dein System überprüfen und Grundeinstellungen vornehmen.

Die Werte in Klammer sind die Standard Werte,
Falls du sie nicht ändern möchtest oder unsicher bist, drücke einfach Enter.
Beachte: Du kannst diesen Assistenten jederzeit wieder mit dem --setup oder -s Parameter starten.
Falls du beenden willst, drücke STRG-C,
um abzubrechen und ihn nicht mehr automatisch zu starten.

Wenn du für den System-Check bereit bist, drücke enter.

## System Check ##
Python Version: OK
pycurl: OK
sqlite3: OK

pycrypto: OK
py-OpenSSL: OK

py-imaging: OK
tesseract: OK

PyQt4: OK

jinja2: OK
beaker: OK
JS engine: OK

System-Check beendet, drücke Enter um deinen Status Bericht zu sehen.

## Status ##

Verfügbare Funktionen: Container decrypting, SSL Verbindung, Automatisches Captcha einlesen, GUI, Webinterface, erweitertes Click'N'Load

Mit Setup fortfahren? ([j]/n): j

Möchtest du den Configordner ändern? Jetziger ist /home/pyload/.pyload
Falls du pyLoad auf einem Server benutzt, oder die home Partition auf einem internen Flashspeicher liegt, wär es eine gute Idee ihn zu ändern.
Config Pfad ändern? (j/[n]): n

Wollen Sie die Login-Daten und Grundeinstellungen festlegen?
Wird für den ersten Start empfohlen.
Erstelle Grundeinstellungen? ([j]/n): j

## Grundeinstellungen ##

Die folgenden Anmeldedaten sind für CLI, GUI und Webinterface gültig.
Benutzername [User]: pyload
Passwort:
Password (nochmal):

Externe Clients (GUI, CLI und andere) benötigen Fernzugriff, um via Netzwerk zugreifen zu können.
Solltest Du jedoch nur das Webinterface nutzen, kannst Du Ihn deaktivieren, um den Speicherverbrauch zu verringern.
Aktiviere Fernzugriff ([j]/n): j

Sprache ([en], de, fr, it, es, nl, sv, ru, pl, cs, sr, pt_BR): de
Download Ordner [Downloads]: downloads
Maximale parallele Downloads [3]: 5
Benutze Reconnect? (j/[n]): n

Willst du SSL konfigurieren?
Konfiguriere SSL? (j/[n]): j

## SSL Setup ##

Führen Sie die folgenden Kommandos im pyLoad Konfigurationsordner durch um SSL-Zertifikate zu erstellen:

openssl genrsa -out ssl.key 1024
openssl req -new -key ssl.key -out ssl.csr
openssl req -days 36500 -x509 -key ssl.key -in ssl.csr > ssl.crt

Falls du fertig bist und alles erfolgreich war, kannst du nun SSL aktivieren.
SSL aktivieren? ([j]/n): j

Willst du das Webinterface konfigurieren?
Konfiguriere Webinterface? ([j]/n): j

## Webinterface Setup ##

Aktiviere Webinterface? ([j]/n): j

Listen Adresse. Falls du 127.0.0.1 oder localhost einträgst wird das Webinterface nur lokal erreichbar sein.
Adresse [0.0.0.0]: 0.0.0.0
Port [8000]: 8000

pyLoad verfügt über verschiedene Webserver, eine kurze Erklärung folgt.
builtin: Standardserver, beste Wahl wenn du nicht weißt welchen du wählen sollst.
threaded: Dieser Server unterstützt SSL und ist eine gute Alternative zu builtin.
fastcgi: Kann von apache, lighttpd benutzt werden. Muss konfiguriert werden, welches aber nicht sehr einfach ist.
lightweight: Sehr schnelle Alternative geschrieben in C, benötigt libev und Linux-Kenntnisse.
        Downloaden von: https://github.com/jonashaag/bjoern, danach kompilieren.
        und kopiere die bjoern.so nach module/lib

Achtung: In manchen Fällen funktioniert der builtin Server nicht, wenn du Probleme mit dem Webinterface bemerkst.
komme zurück und ändere den builtin server zu threaded hier
Server ([builtin], threaded, fastcgi, lightweight): threaded

Setup erfolgreich beendet.
Drücke Enter zum beenden und starte pyLoad neu

SSL-Zertifikate erstellen

Wenn Sie wie in diesem Fall während der Installation SSL aktiviert haben, wird die Verbindung zum Web-Interface verschlüsselt. Dazu müssen Sie aber noch die SSL-Zertifikate im pyLoad-Verzeichnis erstellen.

Mit dem folgenden Befehl wird jetzt ein Certificate Authority (CA) Schlüssel erstellt.

pyload@raspberrypi ~ $ openssl genrsa 1024 > ~/.pyload/ssl.key
Generating RSA private key, 1024 bit long modulus
......++++++
........................++++++
e is 65537 (0x10001)

Nachdem der CA-Schlüssel erstellt wurde, wird ein Certificate Signing Request (CSR) erzeugt. Dabei müssen Sie einige Fragen beantworten. Ein Challenge Password wurde in diesem Fall nicht angegeben.

pyload@raspberrypi ~ $ openssl req -new -key ~/.pyload/ssl.key -out ~/.pyload/ssl.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:DE
State or Province Name (full name) [Some-State]:Bayern
Locality Name (eg, city) []:Woerth an der Donau
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Privat
Organizational Unit Name (eg, section) []:IT
Common Name (e.g. server FQDN or YOUR name) []:raspberrypi.home.lan
Email Address []:pyload@raspberrypi.home.lan

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

Sobald der CSR erstellt wurde, wird das SSL-Zertifikat generiert. Mit dem Parameter -days wird angegeben wie lange der Schlüssel gültig sein soll (hier 10 Jahre).

pyload@raspberrypi ~ $ openssl req -days 3650 -x509 -key ~/.pyload/ssl.key -in ~/.pyload/ssl.csr > ~/.pyload/ssl.crt

Nachdem alle SSL-Zertifikate erstellt wurden, sollten Sie die Zugriffsrechte anpassen damit nur der Benutzer pyload die Dateien nutzen kann.

pyload@raspberrypi ~ $ chmod 0600 ~/.pyload/ssl.*

HTTPS für das Web-Interface aktivieren

Damit die SSL-Zertifikate für eine verschlüsselte Verbindung zwischen Ihrem Browser und dem Web-Interface von pyLoad verwendet werden, müssen Sie noch eine Änderung an der pyLoad-Konfigurationsdatei vornehmen. Öffnen Sie diese wie folgt mit einem Editor.

pyload@raspberrypi ~ $ vi ~/.pyload/pyload.conf

Suchen Sie hier nach dem folgenden Abschnitt.

webinterface - "Webinterface":
        str template : "Template" = default
        bool activated : "Activated" = True
        str prefix : "Path Prefix" =
        builtin;threaded;fastcgi;lightweight server : "Server" = threaded
        ip host : "IP" = 0.0.0.0
        bool https : "Use HTTPS" = False
        int port : "Port" = 8000

Ändern Sie in der folgenden Zeile den Wert auf True und speichern die Datei ab.

        bool https : "Use HTTPS" = False

Funktion von pyLoad überprüfen

Mit dem nachfolgenden Befehl können Sie jetzt pyLoad manuell starten.

pyload@raspberrypi ~ $ /usr/share/pyload/pyLoadCore.py
16.02.2013 12:55:42 INFO      starte pyLoad 0.4.9
16.02.2013 12:55:42 INFO      Benutze Home-Verzeichnis: /home/pyload/.pyload
16.02.2013 12:55:46 INFO      ExtractArchive: UnRar ist nicht installiert
16.02.2013 12:55:46 INFO      ExtractArchive: Aktiviert UnZip
16.02.2013 12:55:46 INFO      Aktivierte Plugins: CaptchaTrader, ClickAndLoad, ExternalScripts, ExtractArchive, UpdateManager
16.02.2013 12:55:46 INFO      Deaktivierte Plugins: Ev0InFetcher, HotFolder, IRCInterface, MergeFiles, MultiHome, MultishareCz, RealdebridCom, RehostTo, XMPPInterface
16.02.2013 12:55:46 INFO      Downloadzeit: True
16.02.2013 12:55:46 INFO      Nutze SSL Thrift Backend
16.02.2013 12:55:46 INFO      Starte ThriftBackend: 0.0.0.0:7227
16.02.2013 12:55:49 INFO      Free space: 12.56 GiB
16.02.2013 12:55:49 INFO      Starting threaded SSL webserver: 0.0.0.0:8000
16.02.2013 12:55:50 INFO      Activating Accounts...
16.02.2013 12:55:50 INFO      Activating Plugins...
16.02.2013 12:55:50 INFO      pyLoad is up and running
16.02.2013 12:55:52 INFO      No Updates for pyLoad
16.02.2013 12:55:52 INFO      New version of hook|UpdateManager : 0.13
16.02.2013 12:55:56 INFO      *** Plugins have been updated, please restart pyLoad ***

Öffnen Sie anschließend einen Browser und rufen das Web-Interface von pyLoad auf. Geben Sie dazu wie im folgenden Beispiel die IP-Adresse oder den Domainnamen Ihres Raspberry Pi's mit dem gewählten Port an.

https://raspberrypi.home.lan:8000

Sollten Sie die SSL-Unterstützung nicht aktiviert haben, müssen Sie natürlich http:// anstelle von https:// angeben.

Ist die SSL-Unterstützung aktiviert, müssen Sie das SSL-Zertifikat als Ausnahme akzeptieren bevor Sie sich am Web-Interface mit den konfigurierten Accountdaten anmelden und pyLoad steuern können. Damit haben Sie die Funktion von pyLoad überprüft und können mit Strg+C pyLoad beenden.

Nachdem Sie pyLoad beendet haben schließen Sie die Shell des Benutzers pyload wieder.

pyload@raspberrypi ~ $ exit

Automatischer Start beim Systemstart

Soll pyLoad beim Systemstart automatisch gestartet werden, müssen Sie noch ein Init-Skript erstellen. Im installierten Debian-Paket ist bereits ein Init-Skript enthalten, welches aber nicht meinen Anforderungen entsprach. Wird das bereits installierte Init-Skript verwendet, läuft pyLoad unter dem Benutzer welcher das Init-Skript ausgeführt hat. Da beim Systemstart die Init-Skripte mit Root-Rechten ausgeführt werden, würde pyLoad ebenfalls mit Root-Rechten laufen. Da dies aus Sicherheitsgründen nicht empfehlenswert ist, sollten Sie ebenfalls das vorhandene Init-Skript umbenennnen oder löschen und ein neues Init-Skript anlegen.

pi@raspberrypi ~ $ sudo mv /etc/init.d/pyload /etc/init.d/pyload.bak
pi@raspberrypi ~ $ sudo vi /etc/init.d/pyload

Fügen Sie in diese Datei die folgenden Zeilen ein.

#!/bin/sh
# /etc/init.d/pyload

#
# Creation:    16.02.2013
# Last Update: 16.02.2013
#
# Written by Georg Kainzbauer (http://www.gtkdb.de)
#

### BEGIN INIT INFO
# Provides:          pyload
# Required-Start:    $all
# Required-Stop:     $all
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: pyLoad
# Description:       pyLoad download manager
### END INIT INFO

USER=pyload
PIDFILE=/home/pyload/.pyload/pyload.pid

start()
{
  echo "Starting pyLoad..."
  su ${USER} -s /bin/sh -c "/usr/share/pyload/pyLoadCore.py --daemon --pidfile=${PIDFILE} >/dev/null"
}

stop()
{
  echo "Stopping pyLoad..."
  su ${USER} -s /bin/sh -c "kill $(cat ${PIDFILE})"
}

case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  restart)
    stop
    start
    ;;
  *)
    echo "Usage: $0 {start|stop|restart}"
    ;;
esac

exit 0

Nachdem Sie das Init-Skript angelegt haben, müssen Sie die Zugriffsrechte des Skripts anpassen.

pi@raspberrypi ~ $ sudo chmod 0755 /etc/init.d/pyload

Über den nächsten Befehl wird das Init-Skript in den jeweiligen Runlevel-Verzeichnissen verlinkt.

pi@raspberrypi ~ $ sudo update-rc.d pyload defaults
update-rc.d: using dependency based boot sequencing

Die korrekte Verlinkung des Init-Skripts können Sie wie folgt überprüfen.

pi@raspberrypi ~ $ find /etc/rc* -name *pyload
/etc/rc0.d/K01pyload
/etc/rc1.d/K01pyload
/etc/rc2.d/S02pyload
/etc/rc3.d/S02pyload
/etc/rc4.d/S02pyload
/etc/rc5.d/S02pyload
/etc/rc6.d/K01pyload

Abschließender Funktionscheck

Starten Sie jetzt pyLoad über das erstellte Init-Skript und überprüfen nochmals die korrekte Funktion über das Web-Interface.

pi@raspberrypi ~ $ sudo /etc/init.d/pyload start

Abschließend sollten Sie einen Neustart durchführen um zu überprüfen ob pyLoad bei einem Neustart auch automatisch gestartet wird.

pi@raspberrypi ~ $ sudo shutdown -r now


Dieser Eintrag wurde am 16.02.2013 erstellt und zuletzt am 06.04.2013 bearbeitet.

Direkter Link zu dieser Seite: http://www.gtkdb.de/index_36_2102.html

[ Zur Startseite ]   [ Zur Kategorie ]


Valid XHTML 1.0 Transitional Valid CSS Valid Atom 1.0

© 2004-2016 by Georg Kainzbauer