Raspberry Pi 3B+ Downloadserver mit jDownloader und Deluge Torrent

Der Raspberry Pi ist wohl der bekannteste und beliebteste Einplatinencomputer der Welt. Zahlreiche Projekte sind mit ihm schon verwirklicht worden – unter anderem auch als Downloadserver bzw. NAS. Zum Download großer Dateien über meine „Dorf“-Internetleitung benutze ich momentan auf meinem „richtigen“ Server jDownloader. Das kann aber schon mal Stunden oder gar die ganze Nacht dauern. Dabei verbraucht er viel Strom. Daher nun ein Downloadserver auf Basis des neuen Raspberry Pi 3 Model B+

Die Prozessorleistung des Raspberry Pi 3 reicht für einen Downloadserver vollkommen aus. Leider bietet die Netzwerkschnittstelle des Raspberry Pi 3 Model B nur Fast Ethernet mit max. 100MBit/s an. Das war für mich bisher der ausschlaggebende Negativpunkt einen Downloadserver bzw. NAS mit dem Raspberry zu realisieren. Doch das ändert sich mit dem neuen Raspberry Pi 3 Model B+, dessen Netzwerkschnittstelle 300 Mbit/s leistet. Mehr ist über die USB 2.0 Anbindung an den Prozessor nicht möglich. Das ist zwar immer noch nicht meine optimale Vorstellung mit Gigabit Durchsatz, aber für den Anfang sollte es reichen.

Hardware vorbereiten und Raspbian installlieren

Als erstes die benötigte Hardware:

  • Raspberry Pi 3 Model B+ (Anleitung gilt selbstverständlich auch für die Vorgängerversion)
  • 2,5″ USB HDD (Bus Powered – möglichst wenig Stromverbrauch)
  • Min. 8 GB SD Karte
  • Micro-USB Netzteil 5V 2,5A
  • Passendes Gehäuse

Fangen wir an Raspbian zu installieren und zu konfigurieren

Auf der offiziellen Raspberry Seite „Raspbian Strech Lite“ downloaden

Mithilfe von Etcher übertragen wir die Dateien auf die SD Karte
Einfach die zuvor heruntergeladene ZIP auswählen, SD Karte auswählen und auf „Flash!“ klicken. Je nach Kartengeschwindigkeit dauert der Vorgang eine knappe Minute.

Etcher Screenshot

Damit später nach dem Booten über SSH auf den Raspberry zugegriffen werden kann, müssen wir noch SSH aktivieren. Dazu einfach eine leere Datei im Boot Verzeichnis der SSD Karte erstellen mit dem Dateinamen SSH (Nur SSH ohne Zusatz)

SSH Screenshot

Anschließend die SD Karte in den Raspberry stecken, die USB Festplatte anschließen, Netzwerkkabel anschließen und die Stromversorgung herstellen.

Raspbian konfigurieren und Festplatte einbinden

Mit Putty können wir uns kurze Zeit später verbinden. Dazu die Netzwerkadresse oder den Namen „raspberrypi“ eingeben und mit Open bestätigen.

putty Screenshot

Anschließend mit den Standardzugangsdaten anmelden:

User: pi
Passwort: raspberry

Das Passwort sollte noch geändert werden

passwd

Alle nachfolgenden Befehle in dieser Anleitung sind Zeile für Zeile ins Terminal einzugeben/zu kopieren.

Jetzt können wir mit dem eigentlichen Einrichten beginnen. Es empfiehlt sich erst einmal Raspbian komplett zu aktualisieren

sudo apt update
sudo apt upgrade

Um die Downloads später auf der HDD zu speichern müssen wir diese formatieren und einbinden. Als erstes wird die Festplatte formatiert. Das wird mit dem Hilfsprogramm „parted“ erledigt.

sudo parted /dev/sda
mktable msdos (mit yes bestätigen)
mkpart primary ext4 0% 100%

Mit folgendem Befehl lässt sich nun die Konfiguration überprüfen

print

„parted“ anschließend wieder schließen

quit

Filesystem ext4 erstellen, Festplatte bekommt den Namen „USB-HDD“ und wird mit „sda1“ angesprochen

sudo mkfs.ext4 -L USB-HDD /dev/sda1

Mountpoint erstellen und Festplatte mounten:

sudo mkdir /media/usbhdd
sudo mount /dev/sda1 /media/usbhdd

Mounten überprüfen (es muss die Zeile beginnend mit /dev/sda1 Festplattendaten /media/usbhdd darunter sein)

df -h

Damit die Festplatte nach einem Neustart automatisch wieder eigebunden wird müssen wir die Datei „fstab“ bearbeiten

sudo nano /etc/fstab

In eine neue Zeile schreiben:

/dev/sda1 /media/usbhdd ext4 defaults 0 0

Mit Strg + X; Y, Enter den Editor wieder schließen und den Raspberry neu starten

sudo reboot

Nach dem Reboot kann man das automatische Mounten überprüfen (es muss wieder die Zeile beginnend mit /dev/sda1 Festplattendaten /media/usbhdd darunter sein)

df -h

Für geordnete Downloads lege ich Verzeichnisse auf der HDD an. Ihr könnt gerne andere Verzeichnisse erstellen oder die Namen ändern. Für mich ist es so ideal.

sudo mkdir /media/usbhdd/torrent
sudo mkdir /media/usbhdd/jdownloader
sudo mkdir /media/usbhdd/temp
cd /media/usbhdd/torrent
sudo mkdir downloading
sudo mkdir completed
sudo mkdir watch
sudo mkdir backups
cd /media/usbhdd/jdownloader
sudo mkdir downloading
sudo mkdir extracted
sudo chown -R pi:pi /media/usbhdd

Samba Server installieren

Um später auch über das Netzwerk auf den Downloadserver und die heruntergeladenen Dateien zugreifen zu können muss noch ein Samba Server installiert und eingerichtet werden

sudo apt-get install samba samba-common-bin

Konfigurieren:

sudo nano /etc/samba/smb.conf

Am Ende der Datei folgenden Code hinzufügen

[PiNAS]

comment = PiNAS Ordner
path = /media/usbhdd
create mask = 0755
directory mask = 0755
read only = no
browseable = yes
security = user
encrypt passwords = true
force user = pi

Jetzt noch dem Benutzer „pi“ in Samba ein Passwort vergeben

sudo smbpasswd -a pi

Den Raspberry neustarten

sudo reboot

Jetzt könnt ihr schon mit z.B. dem Windows Explorer unter Eingabe der IP Adresse des Raspberrys und anschließender Eingabe der Zugangsdaten auf die Festplatte zugreifen.

Deluge installieren (Torrent Downloader)

Um Torrents herunterzuladen benutze ich den Deluge Downloader. Wir installieren den Deluge Server also auch auf dem Raspberry.

sudo apt install deluged -y
sudo apt-get install deluge-console

Deluge einmal starten…

deluged

…um es anschließened wieder zu beenden

sudo pkill deluged

Von der soeben erstellten Datei eine Sicherheitskopie erstellen und die Originalkdatei bearbeiten

cp ~/.config/deluge/auth ~/.config/deluge/auth.old
sudo nano ~/.config/deluge/auth

Dort seht ihr die aktuellen Zugangsdaten. Da sich die Zahlen- und Buchstabenkombination aber niemand Merken kann, kann man auch eigene Zugangsdaten definieren. Löscht einfach die vorhandene Zeile und ersetzt diese mit euren Daten im Format

benutzername:passwort:10

Jetzt starten wir deluge wieder

deluged

Gehen in die Konsole

deluge-console

Und erlauben die Remotesteuerung

config -s allow_remote True
config allow_remote

Konsole wieder schließen

exit

Deluge nochmal neu starten

sudo pkill deluged
deluged

Damit beim Start des Servers deluge automatisch startet richten wir noch einen Autostart ein

sudo nano /etc/rc.local

Dort tragen wir (vor exit 0) folgendes ein

# Start Deluge on boot:
sudo -u pi /usr/bin/python /usr/bin/deluged

Jetzt den Raspberry neu starten

sudo reboot

Jetzt können wir uns mit dem Deluge-Server auch schon verbinden. Ladet auf der Deluge Website den passenden Client für Windows, Mac etc. herunter und installiert diesen.

Unter Bearbeiten -> Einstellungen -> Interface
Muss der Hacken bei „Klassischer Modus aktivieren“ entfernt werden.

Deluge Einstellungen Screenshot

Startet Deluge neu und es wird euch der Verbindungsmanager angezeigt. Dort auf „Hinzufügen“ und eure Daten des Servers eingeben. Wenn er den Server erreichen kann, ist der Statuspunkt grün – Bereit um Torrents zu laden.

Deluge Verbindungsmanager Screenshot Deluge Verbindungsmanager verbunden Screenshot

Nur noch die Downloadpfade unter Einstellungen -> Downloads setzen:

/media/usbhdd/torrent/downloading
/media/usbhdd/torrent/completed
/media/usbhdd/torrent/watch
/media/usbhdd/torrent/backups

Deluge Downloadpfade Screenshot

jDownloader installieren

Kein Downloadserver ohne jDownloader. Um diesen zu installieren, müssen wir zuerst einen Ordner erstellen, in diesen wir anschließend die Installationsdatei downloaden können.

mkdir ~/bin
mkdir ~/bin/jdownloader
cd ~/bin/jdownloader
wget http://installer.jdownloader.org/JDownloader.jar

Da jDownloader auf Java basiert, müssen wir vorher noch Java installieren. Das geht ganz einfach über

sudo apt-get install oracle-java8-jdk

Jetzt sind wir bereit jDownloader zu installieren

java -jar JDownloader.jar -norestart
java -jar JDownloader.jar -norestart

anschließend warten bis die Zugangsdaten zu myJDownloader eingegeben werden können (Ihr solltet euch da schon registriert haben, oder während ihr wartet, dass der jDownloader installiert wird, euch dort registrieren.)

Zum Schluss jDownloader mit Strg+C beenden (Bei Update Progress: 100%)

Für den Autostart von jDownloader bearbeiten wir die Datei „jdownloader.service“

cd /etc/systemd/system
sudo nano jdownloader.service

und fügen folgenden Inhalt ein:

[Unit]
Description=JDownloader
Wants=network.target
After=network.target

[Service]
Type=simple

ExecStart=/usr/bin/java -jar /home/pi/bin/jdownloader/JDownloader.jar
User=pi

[Install]
WantedBy=multi-user.target

Dienste neu laden und Autostart aktivieren

sudo systemctl daemon-reload
sudo systemctl start jdownloader.service
sudo systemctl enable jdownloader.service

Neustart

sudo reboot

Auf der myJDownloader Website einloggen, sollte anschließend der Server zu sehen sein.

jDownloader Startseite Screenshot

Unter Einstellungen noch den Downloadpfad anpassen

Default Download Folder: /media/usbhdd/jdownloader/downloading

jDownloader Downloadpfad Screenshot

Sollen eure heruntergeladenen Dateien automatisch entpackt werden (rar Archive z.B.) aktiviert noch den Archive Extractor

Setzt bei Extraction: Custom Extraction Path

jDownloader Extractionpath aktivieren Screenshot

Einen Haken und weiter unten bei

Extraction: Custom Extraction Path

den Pfad

/media/usbhdd/jdownloader/extracted

jDownloader Extractionpath Screenshot

Dann habt ihr die Dateien welche noch beim herunterladen sind und die schon extrahierten Dateien in getrennten Ordnern. Das schafft mehr Übersichtlichkeit.

Jetzt habt ihr es geschafft. Der Downlaodserver ist bereit, so ziemlich alle Arten von Dateien herunterzuladen. Und sollte der Download länger dauern, so ist dies bei dem niedrigen Stromverbrauch vom Raspberry (wenige Watt) auch nicht mehr schlimm.

Ich habe meinen Raspberry noch mit Kühlkörpern versehen und in ein Gehäuse gepackt:

Raspberry Downloadserver mit Kühlkörper Raspberry Gehäuse ICY BOX IB-RP101

 

10 Antworten auf „Raspberry Pi 3B+ Downloadserver mit jDownloader und Deluge Torrent“

  1. Hallo,
    ich bin total begeistert von deiner Lösung!
    Es hat super funktioniert.
    Jetzt habe ich als Linux und Pi Noob eine Frage und hoffe, du kannst mir helfen. Ich möchte die Festplatte als exFat laufen lassen.
    Kannst du mir sagen, wie ich dies bewerkstelligen kann?
    Könnte ich die Platte einfach an einem Windowssystem ändern und wieder einhängen?
    Danke für die Antwort.
    Mit freundlichen Grüßen,
    Ingo

    1. Hallo,

      exFAT ist für Flash Speicher optimiert und bringt keine Vorteile auf einer normalen Festplatte. Zudem ist die Einrichtung unter Linux etwas komplizierter. Ich würde es nicht empfehlen und EXT4 beibehalten. Solltest du es trotzdem ändern wollen lies dir mal diesen Beitrag durch, da steht alles wichtige:
      https://wiki.ubuntuusers.de/exFAT/

  2. Bei mir läuft JDownloader sehr instabil. Die Load Average geht nach kurzer Zeit extrem nach oben, die CPU Load aber nicht – ein Zeichen dafür, dass Memory Swapping läuft. Das habe ich aber deaktiviert.

    Kennst du das Problem vielleicht auch? Hast du eine Lösung?

    1. Das Problem habe ich nicht. Leider weiß ich auch nicht was dazu führt, dass das Load Average nach oben geht. Normal ist auch eine langsame SD Karte dafür verantwortlich, aber da du Memory Swapping deaktiviert hast, sollte das eigentlich nicht die Ursache sein.

  3. Schade – und seltsam. Ich verwende eine „Samsung Evo Plus“ SD Karte. Die sollte eigentlich schnell genug sein. Und ich habe noch nicht mal Samba oder den Torrent-Client installiert. Der Arbeitsspeicher des Raspberry ist trotzdem immer voll bis oben hin.

    Vielleicht schon mal für andere, die mit einem ähnlichen Problem hier landen: Es hat ETWAS geholfen, dass ich den Speicherbedarf des jDownloaders in der Java-Kommandozeile mit dem Parameter -Xmx256m auf 256 MB RAM „HEAP“ Speicher limitiere, aber dadurch läuft das ganze jetzt zwar länger, aber nach einem Tag oder so hängt sich das System trotzdem auf.

  4. So, für alle die mein Problem teilen noch ein kurzer Zwischenstand: Bei mir scheint das Problem nicht der jDownloader selbst zu sein, sondern irgendetwas anderes was das System zwischen 2 und 3 Uhr nachts anstellt. Ich habe noch nicht rausgefunden was es ist, aber habe die Symptome umgangen.

    (Mein Raspbian habe ich über NOOBS installiert, vielleicht ist das ein relevanter Unterschied)

    Meine Holzhammer-Lösung ist es den jDownloader per cron um 2 Uhr abzuschießen. Dann darf das System mit den jetzt frei gewordenen Resourcen seine Arbeit machen. Um 2:40 Uhr starte ich dann mittels „reboot“-Befehl im cron einfach die Box neu.

    Das bedeutet eine kurze downloadfreie Zeit, aber dafür hängt sich die kleine Box jetzt schon seit einigen Tagen nicht mehr auf.

    1. Bevor ich diese ‚Holzhammerlösung‘ einsetzen würde, würde ich einfach mal das System komplett neu aufsetzen mit der ‚Serverversion‘ von Raspbian (Raspbian Lite) so wie hier in meiner Anleitung beschrieben. Mein Server läuft jetzt schon seit Wochen ohne einen Absturz.

    1. Wie bei einer normalen JDownloader-Installation. Sobald du den Link eingegeben hast erscheint ein PopUp in dem du das Captcha lösen musst.

Schreibe einen Kommentar

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