Torrentbox auf dem Raspberry Pi
Filesharing – Ein vieldiskutiertes Thema. Gerade da die Preise bei den ganzen Streaming-Plattformen wieder steigen und das Angebot wieder unübersichtlich groß ist, wird Piraterie wieder beliebter.
Tatsächlich ist es heute super einfach einen Raspi aufzusetzen, der sich fast ganz automatisch deine Lieblingsserien aus dem Netz sucht und dir herunterlädt. Mit Projekten wie Plex hast du dann auch direkt ein entspanntes Nutzererlebnis wie bei professionellen Streaming-Anbietern.
Ich schreibe hier mal etwas zusammen, wie man sich so ein Setup zusammenbasteln kann, zu rein informativen Zwecken natürlich.
Zutaten:
- </$> RaspberryPi + Netzteil </$>
- SD-Karte
- Optional: Netzwerkkabel, macht aber Sinn
- Optional: Festplatte, am besten eine <$>SSD</$>
- VPN Anbieter – z.B. <$>NordVPN</$> (kostenpflichtig)
- Torrentdownloader – z.B. qBittorrent (free)
- Indexer Suchmaschine – z.B. Jackett (free)
- Manager – z.B Sonarr (free)
Inhalt
- RaspiOS installieren
- NordVPN installieren
- qBittorrent installieren
- Jackett installieren
- Sonarr installieren
- qBittorrent mit Sonarr verbinden
- qBittorrent mit Jackett verbinden
- Indexer in Jackett einpflegen
- SWAP File
- Prowlarr
- Radarr
Raspi OS
Wie ihr das RaspiOS auf eure SD-Karte bzw. auf eine Festplatte flasht, hab ich hier ja schon oft beschrieben. Folgt dazu einfach den entsprechenden Schritten, z.B. hier:
Den Guide könnt ihr an sich komplett durcharbeiten um euer MediaCenter auf dem gleichen Raspi schonmal einzurichten, inkl. SSD und Boot von SSD.
NordVPN auf dem RaspberryPi installieren
Wer halbwegs anonym im Netz unterwegs sein möchte, kann seine Internetaktivitäten mit einem VPN verschleiern. Ein ganz guter Anbieter ist hierfür z.b. NordVPN. Preislich liegt das hier in etwa gleich wie einer der gängigen VoD (Video on Demand) Anbieter, mit Angeboten kann man den Service aber schon für etwas mehr als 3€ pro Monat haben.
Wir Öffnen die Konsole (win+r , cmd, enter) und verbinden uns also mit dem Raspi per ssh:
ssh pi@192.168.xxx.xx
und geben das entsprechende Passwort ein.

Dann könnten wir z.b. mit curl Nordvpn herunterladen und auf unserem Raspberry Pi installieren:
sh <(curl -sSf https://downloads.nordcdn.com/apps/linux/install.sh)
Falls curl bei euch nicht geht, dann mit sollte es mit wget funktionieren:
sh <(wget -qO - https://downloads.nordcdn.com/apps/linux/install.sh)
und falls der Raspi dann immernoch meckert, dann noch:
sudo usermod -aG nordvpn $USER
Dann folgt man einfach den Anweisungen im Installer. Da kann man eigentlich nix falsch machen. Wenn NordVPN erfolgreich installiert ist, kann man den Raspi einmal rebooten und sich dann einloggen.
Das Log-In ist etwas eigenartig. Wenn ihr mit
nordvpn login
das macht, bekommt ihr eine URL. Diese kann man im Browser eingeben, sich dort mit dem Account einloggen und dann muss man die neue URL kopieren und mit einem Befehl eingeben:
nordvpn login --callback "nordvpn://login?action=login&exchange_token=beispieltoken&status=done"
Alternativ könnt ihr euch in euren Account Einstellungen einen Key generieren und diesen wieder in die Konsole einfügen mit:
nordvpn login --token asdfhiertokenasdf
Wenn ihr nach einem Update z.B. ausgeloggt seid, müsst ihr aber wieder diese nervigen Schritte gehen…
Man kann auch mit username und pw einloggen:
nordvpn login -u username -p password
Dann sollten wir noch ein paar Settings auf an stellen um sicher zu gehen dass wir immer im VPN Verbunden sind:
nordvpn set threatprotectionlite on
nordvpn set killswitch on
nordvpn set dns 1.1.1.1
nordvpn set protocol udp
nordvpn set obfuscate on
nordvpn set technology NordLynx
nordvpn whitelist add port 22
nordvpn whitelist add subnet <subnet>
Optional:
nordvpn set meshnet on
Port 22 ist für ssh wichtig und Subnet müsst ihr unbedingt für euer Heimnetzwerk anpassen, da ihr sonst nicht mehr per ssh auf euren Raspi zugreifen könnt. Erst danach sollten wir das autoconnect setzen:
nordvpn set autoconnect on ro59
Hier ist es Ratsam in ein Land zu verbinden, welches sehr liberale Gesetzte bzgl. Piraterie hat. Z.B. Schweden oder wie hier, Rumänien. Eine Liste der Server findet ihr bei NordVPN.
Mit
nordvpn settings
könnt ihr eure settings prüfen. Die sollten etwa so ausshehen:
Technology: NORDLYNX
Firewall: enabled
Firewall Mark: XXXXXX
Routing: enabled
Analytics: enabled
Kill Switch: enabled
Threat Protection Lite: disabled
Notify: disabled
Tray: enabled
Auto-connect: enabled
IPv6: disabled
Meshnet: enabled
DNS: <your-ip>
LAN Discovery: disabled
Virtual Location: enabled
Allowlisted ports:
22 (UDP|TCP)
Allowlisted subnets:
192.168.xxx.0/24
xxyy:xxyy:xxyy::/48
Mit
nordvpn status
könnt ihr den Verbindungsstatus prüfen:

Zu guter letzt wollen wir noch den NordVPN Service bei boot starten. Man achte auf das nordvpnd:
sudo systemctl enable nordvpnd
Jetzt ist der Raspi anonym im Internet. Euer Laptop im W-Lan zuhause allerdings nicht. Da könnt ihr mit der NordVPN App aber nachhelfen und auch per VPN surfen.
qBittorrent auf dem RaspberryPi installieren
Als nächstes brauchen wir einen Torrenting-Client. Ich bin Fan von qBittorrent, da dieser eine schöne einfach Benutzeroberfläche hat. Ich installiere die Variante ohne User-Interface, da ich meinen Raspi Headless (also ohne Monitor und Tastatur) betreibe. Der liegt einfach neben meinem Router rum und ich mache alles über ssh oder Web-Interfaces. qBittorrent kommt mit eben so einem WebInterface.
sudo apt install qbittorrent-nox
Dann müssen wir ein bischen was konfigurieren:
sudo nano /etc/systemd/system/qbittorrent.service
[Unit]
Description=qBittorrent
After=network.target
[Service]
Type=forking
User=pi
Group=pi
UMask=002
ExecStart=/usr/bin/qbittorrent-nox -d --webui-port=8080
Restart=on-failure
[Install]
WantedBy=multi-user.target

Mit strg + o speichern wir und strg + x verlassen wir den nano editor. Dann können wir den service starten und prüfen. Und bei Boot starten.
sudo systemctl start qbittorrent
sudo systemctl status qbittorrent
sudo systemctl enable qbittorrent
Aus dem Status kommt man mit strg + c wieder raus.

Jetzt sollte auf der IP eures Raspi im Heimnetz mit dem Port 8080 das qBittorrent Webinterface erreichbar sein.

Erstes Log-In: admin, adminadmin und dann müssen wir über tools – options, reiter downloads im Abschnitt authentification einen eigenen user + pw festlegen.
Dann können wir noch den Pfad festlegen, wo wir speichern wollen:

Diese werden hier gespeichert und man kann durchaus auch hier direkt sachen ändern:
sudo nano ~/.config/qBittorrent/qBittorrent.conf
Wenn das soweit läuft, geht es weiter mit Jackett.
Jackett auf dem RaspberryPi installieren
Jackett ist eine Suchmaschine für Torrent-Indexer. Indexer sind z.B. Seiten wie the Pirate Bay oder 1337x.to. Diese führen Listen, sogenannte Indexes, von torrents. Davon gibt es ganz schön viele und man findet nicht alles überall. Und deshalb gibt es verschiedene Suchmaschinen wie eben Jackett.
Wir installieren erstmal Mono mit
sudo apt-get install libmono-cil-dev -y

Jetzt können wir Jackett selbst installieren. Dazu suchen wir uns bei GitHub den Link zum letzten release auf https://github.com/Jackett/Jackett/releases/latest und kopieren diesen. Wir brauchen die Version ARM32 für unser Raspi-Buster. Ggf. braucht ihr eine andere Version für euer RaspiOS.

mit:
wget https://github.com/Jackett/Jackett/releases/download/v0.22.1691/Jackett.Binaries.LinuxARM32.tar.gz
gehts dann zum herunterladen. Ggf. müsst es es als sudo ausführen.

Dann können wir das ganze entpacken:
tar -xvf Jackett*
Auch hier muss ggf. noch ein sudo davor.

Dann verschieben wir das ganze in einen neuen Ordner:
sudo mkdir /opt/jackett && sudo mv Jackett/* /opt/jackett

Als nächstes müssen wir noch die Berechtigungen anpassen:
sudo chown -R pi:pi /opt/jackett
Danach gehen wir in den Ordner rein und führen das Script aus:
cd /opt/jackett
sudo chmod a+x install_service_systemd.sh && sudo ./install_service_systemd.sh
Und zum Schluss starten wir den Service und sorgen dafür, dass er beim boot ausgeführt wird:
sudo systemctl start jackett
sudo systemctl status jackett
sudo systemctl enable jackett
Aus dem Status kommt man mit strg + c wieder raus.
Sonarr auf dem RaspberryPi installieren
Sonarr ist nun der Service, der eure Serien tracked und automatisch Suchanfragen an die Suchmaschine schickt, diese Wiederrum soll dann die links an den Torrenting Client weitergeben. Dann soll am Ende die Folge heruntergeladen werden und noch korrekt sortiert werden.
Installieren wir erstmal Sonarr. Dazu fügen wir zunächst einen Key hinzu und Adden Sonarr zu unseren Paketquellen und danach installieren wir es:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 2009837CBFFD68F45BC180471F4F90DE2A9B4BF8
echo "deb https://apt.sonarr.tv/debian buster main" | sudo tee /etc/apt/sources.list.d/sonarr.list
sudo apt install sonarr -y
Ihr werdet gefragt welchen User ihr wollt. ich nehme einfach pi und Gruppe pi.
Falls das Paket nicht gefunden wurde (wie bei mir), könnt ihr alternativ auch per wget ein Script herunterladen und installieren:
wget -qO- https://raw.githubusercontent.com/Sonarr/Sonarr/develop/distribution/debian/install.sh | sudo bash

Dann starten wir wieder den Service, checken ob es läuft und erlauben den Start bei boot:
sudo systemctl start sonarr
sudo systemctl status sonarr
sudo systemctl enable sonarr
qBittorrent mit jackett verknüpfen
Den komplizierten Teil haben wir jetzt geschafft. Nun müssen wir noch ein paar Dinge verknüpfen und Konfigurieren.
Wenn wir im Browser nun auf unser Web-Interface von Jackett gehen (Port 9117) also z.B. http://192.168.178.42:9117/ sehen wir eine API im oberen rechten Bildschirmrand.

Die kopieren wir uns in die Zwischenablage. Wenn wir schonmal hier sind, empfehle ich, direkt ein Admin-Passwort zu setzen. Wir wechseln zurück in unsere Konsole und editieren eine json Datei im qBittorrent.
sudo nano .local/share/data/qBittorrent/nova3/engines/jackett.json
Dort sehen wir jetzt einen kleinen JSON-Block in geschweiften Klammern. Wenn der nicht da ist, habt ihr versehentlich eine neue Datei erzeugt und der Pfad ist nicht korrekt. Dann navigiert euch händisch mit cd ins richtige Verzeichnis.
In dem Block ist ein Platzhalter für den API-Key. Dort wird dieser eingefügt.

Wir speichern wieder mit strg + o und beenden nano mit strg + x.
Jetzt können wir schonmal direkt im qBittorrent Webinterface über Jackett suchen und müssen nicht händisch die ganzen Indexer abgrasen. Die Indexer fügen wir gleich in Jackett hinzu.

qBittorrent mit Sonarr verbinden
Dann können wir qBittorrent auch gleich mit Sonarr verbinden. Dazu wechseln wir wieder im Browser auf die Sonarr Seite (Port 8989) und gehen in die Einstellungen.

Ich hab es schon gemacht, bei euch ist nur das große + zu sehen. Da klicken wir drauf. Dann suchen wir uns qBittorrent in der Liste.


Hier, falls nötig, den Port ändern, und natürlich Nutzername und Passwort. Den Rest hab ich auf default gelassen.
Indexer in Jackett hinzufügen
Im Jackett können wir nun Indexer hinzufügen. Dazu klicken wir einfach auf den Button (unter API-Key, erster in der Reihe).

Hier kann man nun öffentliche und private Indexer hinzufügen. Wenn ihr also bestimmte Accounts habt, kommen die da rein. Sonst nehmt halt öffentliche.
Diese können jetzt schon direkt aus der qBittorrent Suche durchsucht werden. Wenn wir diese jetzt in Sonarr einrichten wollen, müssen wir das leider für jeden Indexer einzeln machen. Neben den Indexern (auf der Jackett Startseite) gibt es den Button „copy torznab feed“. Da klicken wir jetzt bei einem Indexer mal drauf und wechseln wieder ins Sonarr Menü. Da gibt es wieder ein + und im neuen Fenster gehen wir auf torznab.



Hier brauchen wir wieder den Jackett API Key und die eben kopierte URL. Dann vergeben wir noch einen passenden Namen. Hier können wir noch die gewünschte Qualität einstellen und dann auf testen und speichern klicken. Das können wir für alle Indexer machen, die wir möchten.
Sonarr kann jetzt direkt auch eure Bibliothek scannen und ihr könnt eure Pfade zu Serien verknüpfen. Da müsst ihr einfach mal etwas rumspielen, ist relativ intuitiv.
Nun sollte Sonar euch immer zum release die neue Folge eurer gewünschten Serie suchen und an qBittorrent übergeben. Wenn der Download fertig ist, wird die Datei automatisch sortiert. Man muss sich also fast keine Gedanken mehr machen.
Prowlarr
Eine neuere alternative zu Jackett ist Prowlarr. Da muss man nicht jeden Indexer einzeln nochmal in Sonarr einfügen. Wenn ihr neu einrichtet, ist es eine Überlegung wert, direkt Prowlarr zu nutzen. Wenn aber schon alles läuft, denke ich, braucht ihr euch den Aufwand nicht machen.
Hier der offizelle Guide für Raspi: https://wiki.servarr.com/prowlarr/installation/linux
Die gleichen Entwickler haben auch noch Programme für Filme, E-Books, Musik etc. im Angebot.
SWAP File
Da mittlerweile ziemlich viele Dinge gleichzeitig auf unserem kleinen Pi laufen, macht es Sinn, die SwapFile zu vergrößern. Dazu schalten wir zunächst die Funktion ab und gehen dann in den nano File-Editor. Vergesst aber nicht, vorher die Services zu stoppen:
sudo systemctl stop sonarr
sudo systemctl stop radar
sudo systemctl stop qbittorrent
sudo dphys-swapfile swapoff
sudo nano /etc/dphys-swapfile
Hier ändern wir dann die Zeile mit dem Speicher (Wert 100) um auf z.B. 1024 oder 2048. Mit strg + w kann man einfach danach suchen:
CONF_SWAPSIZE=100
wird zu
CONF_SWAPSIZE=1024

Wir speichern mit strg + o und verlassen nano mit strg + x. Dann erzeugen wir die neue Swapfile und starten wieder die nutzung der Swapfile. Ggf. müssen wir dann auch noch einmal neu starten:
sudo dphys-swapfile setup
sudo dphys-swapfile swapon
sudo reboot
Radarr
Da ich selbst tatsächlich leichte schwierigkeiten hatte, Radarr sauber zu installieren, will ich das hier noch ergänzen.
Zunächst müssen wir ein Verzeichnis anlegen, in das später config-files abgelegt werden:
sudo mkdir /var/lib/radarr
Dann müssen wir die Rechte anpassen:
sudo chown pi:pi -R /var/lib/radarr
Jetzt laden wir radarr herunter:
wget --content-disposition 'http://radarr.servarr.com/v1/update/master/updatefile?os=linux&runtime=netcore&arch=arm'
Wenn ihr nicht auf der 32bit Version seid, lautet der Befehl:
wget --content-disposition 'http://radarr.servarr.com/v1/update/master/updatefile?os=linux&runtime=netcore&arch=arm64'
Dann können wir das Verzeichnis entpacken und die Dateien in das /opt/ verzeichnis schieben:
tar -xvzf Radarr*.linux*.tar.gz
sudo mv Radarr /opt/
Wenn ihr vorher Sonarr installiert habt, sollte es schon passen, sonst müssen wir nochmal die rechte anpassen:
sudo chown pi:pi-R /opt/Radarr
Dann erstellen wir uns noch eine Datei, um radarr als service auszuführen mit nano:
sudo nano /etc/systemd/system/radarr.service
In nano fügen wir folgenden Block ein:
[Unit]
Description=Radarr Daemon
After=syslog.target network.target
[Service]
User=pi
Group=pi
Type=simple
ExecStart=/opt/Radarr/Radarr -nobrowser -data=/var/lib/radarr/
TimeoutStopSec=20
KillMode=process
Restart=on-failure
[Install]
WantedBy=multi-user.target
Wir speichern wieder mit strg + o und verlassen nano mit strg + w. Jetzt müssen wir einmal systemd neu laden und können dann unseren radarr service starten:
sudo systemctl -q daemon-reload
sudo systemctl start radarr
Wenn alles korrekt war, können wir radarr bei boot starten lassen:
sudo systemctl enable radarr
Das Radarr-Webinterface sollte jetzt auf port 7878 abrufbar sein. Es verhält sich analog zu Sonarr. Die Dienste lassen sich genau gleich verbinden. Dann können wir das Archiv noch löschen:
rm Radarr*.linux*.tar.gz
Wenn bei euch der Service nicht startet, gibt es vermutlich ein Berechtigungsproblem in /opt/radarr. Wenn der Service läuft, aber die Seite nicht lädt, ist es wahrscheinlich ein Problem mit der Datei in /var/lib/radarr. Hier könnt ihr mit nano mal gucken, ob der Port ggf. ein anderer ist.
sudo nano /var/lib/radar/config.xml
Besserer Autostart
Anstatt die Services mit systemctl auf enable zu setzen, so dass sie automatisch beim Boot gestartet werden, macht es hier mehr sinn, eine eigene Sequenz mit rc.local zu erstellen. Dazu müssen wir die ganzen Autostarts nur wieder deaktivieren (disable) und mit sudo nano eine Sequenz im rc.local anlegen.
So ist nämlich sichergestellt, dass nordVPN zuerst eine Verbindung aufbaut, bevor irgendwelche torrents geladen werden.
sudo systemctl disable radarr
sudo systemctl disable prowlarr
sudo systemctl disable nordvpnd
sudo systemctl disable jackett
sudo systemctl disable sonarr
sudo systemctl disable qbittorrent
sudo nano /etc/rc.local
Wir haben nun rc.local geöffnet. Hier fügen wir jetzt unsere Sequenz einfach unterhalb des existierenden codes, aber vor exit 0 ein:
sleep 5
sudo service nordvpnd start
nordvpn c romania
sudo service jackett start
sudo service sonarr start
sudo service radarr start
sudo service qbittorrent start
exit 0

Nun wird zunächst auf eine Internetverbindung gewartet, dann nordvpn gestartet, dieser Dienst verbindet sich dann mit einem VPN in einem Piraterie-freundlichen Land. Danach kommen die ganzen *ARR Services und zum Schluss qBittorrent. Ihr könnt das ganze ggf. sogar noch sicherer machen, wenn ihr mit einer If Abfrage prüft, ob die Verbindung erfolgreich hergestellt wurde. Aber nordVPN hat ja auch den Killswitch, auf den ich mich hier einfach mal verlasse.
Happy Hacking!
$ Die mit einem $ gekennzeichneten Links, sind Affiliate Links. Wenn du über diese in den Shop gelangst und etwas kaufst, bekomme ich eine kleine Provision