Downloadmanager aria2 auf dem Raspberry Pi installieren

Aufgrund seiner stromsparenden Eigenschaften eignet sich der Raspberry Pi gut als 24/7-Server. Und wenn man (wie ich) nur über DSL 2000 verfügt, dann kann etwa das Herunterladen einer Linux-Distribution gut und gerne einige Stunden dauern.

Für diesen Zweck kann man aus dem Raspberry Pi einen Downloadserver machen. Meistens wird für diesen Zweck pyLoad empfohlen, welches auch ganz anständig läuft. Trotzdem kann es nie schaden, über den Tellerrand zu blicken. Neben pyLoad gibt es nämlich noch weitere Downloadmanager, die kraftvollste Alternative ist aria2. Jedoch, und das schreckt viele von aria2 ab, ist aria2 ein Downloadmanager auf Kommandozeilenebene.

Dafür kann aria2 mit einer API trumpfen, diese ermöglicht den Zugriff von außen. Diese API macht sich auch die unten vorgestellte Weboberfläche zu Nutze, somit verfällt die größte Hürde bei der Bedienung.

Screenshot der Weboberfläche

Installation auf dem Raspberry Pi

Die Installation von aria2 ist in einem Schritt erledigt.

sudo apt-get install aria2

Fertig. Schwierig, was?

Konfiguration von aria2

Na gut, vielleicht sollte noch eine Konfigurationsdatei anlegt werden, damit einige Voreinstellungen getroffen werden und die Sicherheit erhöht wird. Ich verwende dazu den Editor nano, der bereits unter Raspbian vorinstalliert ist.

mkdir .aria2;
nano .aria2/aria2.config

Nun öffnet sich ein leeres Textdokument. In dieses fügen wir folgenden Inhalt ein:

continue
daemon=true
dir=/home/pi/Downloads
file-allocation=falloc
log-level=warn
max-connection-per-server=4
max-concurrent-downloads=3
max-overall-download-limit=200K
min-split-size=5M
enable-http-pipelining=true

enable-rpc=true
rpc-listen-all=true
rpc-secret=meingeheimerkey

Wichtig sind hier die Zeilen mit max-overall-download-limit und rpc-secret. Hinter max-overall-download-limit kann die maximale Downloadgeschwindigkeit festlegt werden, im Beispiel ist diese auf 200 kb/s festgelegt. Falls du über höhere Datenraten verfügt, kannst du auch statt dem k ein M verwenden. So begrenzt der Wert max-overall-download-limit=2M die maximale Downloadgeschwindigkeit auf 2 MB/s. Wenn keine Geschwindigkeitsbegrenzung vorliegen soll, kann die Zeile einfach entfernt werden.

rpc-secret ist zwar auch keine Pflichtbedingung, sollte aber verwendet werden, wenn der Raspberry Pi über das Internet erreichbar ist. rpc-secret sollte hier einen Code enthalten, der nur dir bekannt sein sollte. Merke dir den vergebenen Wert, da du ihn später nochmal benötigst!

Start von aria2

aria2 wird mit folgendem Befehl gestartet:

aria2c --conf-path=/home/pi/.aria2/aria2.config

Der Parameter conf-path sorgt dafür, dass unsere Konfigurationsdatei geladen wird.

Einrichten als Autostart

Um aria2 beim Start des Raspberry Pi auszuführen, wird ein Init-Skript angelegt. Dieses nenne ich einfach mal aria2.

sudo nano /etc/init.d/aria2

In dieses muss dann der folgende Code eingefügt werden:

#! /bin/sh
# /etc/init.d/aria2
### BEGIN INIT INFO
# Provides:          aria2
# Required-Start:    $local_fs
# Required-Stop:     $local_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: aria2
### END INIT INFO

CONF_PATH=/home/pi/.aria2/aria2.config

case "$1" in
    start)
        echo "Starting aria2 with custom configuration"
        aria2c --conf-path=$CONF_PATH
        ;;
    stop)
        echo "Stopping aria2"
        killall aria2c
        ;;
    *)
        echo "Usage: /etc/init.d/aria2 {start|stop}"
        exit 1
        ;;
esac

exit 0

Dieses Skript muss jetzt noch als ausführbar markiert werden.

sudo chmod 0755 /etc/init.d/aria2

Letzten Endes wird das Skript zum Autostart hinzugefügt.

sudo update-rc.d aria2 defaults

Soll das Skript zu einem späteren Zeitpunkt wieder aus dem Autostart enfernt werden, genügt es, folgenden Befehl auszuführen. Dabei bleibt die Datei /etc/init.d/aria2 erhalten.

sudo update-rc.d -f aria2 remove

Download der Weboberfläche

Die Weboberfläche von aria2 benötigt keinen Server, da sie für die Kommunikation auf JavaScript setzt. Entweder wird sie aus dem Git-Repository geklont oder als ZIP-Archiv heruntergeladen.

Nach dem Entpacken des Ordners wird die Datei configuration.js mit einem Texteditor bearbeitet. Dabei ist der folgende Abschnitt (Zeile 6-18) am wichtigsten, überflüssige Codezeilen habe ich bereits entfernt. Am besten kopiert ihr diesen Inhalt und ersetzt damit die entsprechenden Zeilen.

.constant('$authconf', {
    host: 'localhost',
    path: '/jsonrpc',
    port: 6800,
    encrypt: false,
    auth: { token: 'meingeheimerkey'}
})

Ersetze hierbei meingeheimerkey durch deinen eigenen Key, den du noch im Kopf haben solltest ;)
Die restlichen Einstellungen bedeuten folgendes:

Einstellung Erklärung
host Die IP-Adresse deines Raspberry Pi.
port Der Port, auf dem aria2 läuft (Standard ist 6800).
encrypt Verschlüsselt die Verbindung mit TLS.

Wenn die Werte eingetragen und abgespeichert sind, kannst du die index.html mit dem Webbrowser deiner Wahl öffnen. Wenn alles geklappt hat, kannst du dem Raspberry Pi nun komfortabel eine Beschäftigung über die Nacht geben :-)

Kommentar hinterlassen

Markdown wird unterstützt.