Development Software

Wie ich die Linux Community mit einer automatischen Torrent Seedbox unterstütze

Ich bin bei mir zuhause mit einer schnellen Leitung à la 250 Mbit Down/50 Mbit Up gesegnet. Da die Bandbreite allerdings seltenst vollkommen ausgereizt wird, habe ich mir überlegt, wie ich ein bisschen für Traffic sorgen kann. Meine erste Idee war es einen Mirror für verschiedene Linux Distributionen anzubieten. Als ich dann aber realisiert habe, dass ich niemals von einem kleinen Blog komplette Betriebssysteme herunterladen und installieren würde, einfach weil ich Angst vor vorinstallierter Malware u.Ä. hätte, habe ich das schnell verworfen. Anschließend bin ich über LinuxTracker.org gestolpert. Dort werden (mehr oder weniger) feinsäuberlich Torrents von Linux aufgelistet. Ein Torrent lebt immer nur so lange, wie es Seeder gibt – also habe ich mich als Seeder der Linux Community verpflichtet. Dazu habe ich auf meinem oDroid Transmission installiert, ein Skript geschrieben, welches neue Torrents von bestimmten Betriebssystemen automatisch hinzufügt und dann fleißig seedet. Im Fachjargon nennt sich sowas dann „Torrent Seedbox“ :). Folgend möchte ich einmal erklären, was ich genau gemacht habe, um möglichst andere von der selben Idee zu überzeugen, die vielleicht noch etwas Speicherplatz und Bandbreite übrig haben.

 

Transmission und PHP-CLI installieren und konfigurieren

Auf meinem oDroid XU4 läuft Ubuntu 18.04. Die Installation für Transmission sollte für Debian ziemlich ähnlich sein. Wenn ihr andere Betriebssysteme nutzt, bitte ich euch einmal Onkel Google anzuwerfen. Nun gut, die Installation läuft wie folgt:

Das war’s auch schon. PHP-CLI und Composer installieren wir gleich für das Skript mit, welches wir später zur automatischen Erweiterung der Torrents brauchen. Um mit dem Skript auf Transmission zugreifen zu können, müssen wir RPC aktivieren. Dazu tauchen wir einmal in die Konfig ein. Davor ist es aber wichtig, dass ihr den Transmission-Daemon stoppt, da die Änderungen sonst nicht übernommen werden!

Wir müssen jetzt folgende Einstellungen anpassen:

Das Feld rpc-password müsst ihr mit eurem Wunschpasswort füllen. Das wird nach dem Start des Daemons dann gehasht und neu in die Konfig geschrieben. Bei rpc-whitelist müsst ihr die IP von eurem lokalen Rechner eintragen, womit ihr später das Web-Interface öffnen wollt. In den meisten Fällen beginnt diese mit 192.168.x.x. Ansonsten schaut euch die Konfig nochmal genauer an, ob ihr nicht irgendwo etwas anpassen möchtet, wie bspw. „download-dir“ oder „incomplete-dir“. Die Daten auf eine microSD-Karte zu schreiben macht zum Beispiel keinen Sinn, sondern es sollte schon mindestens eine HDD sein. Nun startet den Daemon mit  systemctl start transmission-daemon  wieder und versucht  die lokale IP des Servers mit dem Port 9091 im Browser aufzurufen. Das müsste dann in etwa so aussehen:

Transmission Web Interface

Transmission Web Interface

Unten links kann man einen Werkzeugschlüssel erkennen. Einmal raufklicken und auf den Tab „Network“ wechseln. Dort findet ihr einen „Peer listening port“ vor. Diesen Port müsst ihr in eurem Router weiterleiten auf das Gerät wo der Transmission-Daemon läuft. Wenn ihr euch auch gerade in den Router Einstellungen befindet, könnt ihr mal schauen ob ihr Einstellungen zur „Priorisierung“ findet. Somit könnte man das Transmission-Device herunter priorisieren, dass falls man mal mehr Leitung braucht, die Seedbox nicht die Leitung blockiert. Wir haben hier eine Fritzbox und die macht das hervorragend. Damit wäre Transmission vollständig eingerichtet!

Transmission automatisch mit Torrents befüllen

Wie eingangs erwähnt habe ich ein kurzes Skript geschrieben, welches mithilfe von LinuxTracker.org automatisch Torrents in Transmission reinpumpt. Man kann sich auf der GetRSS Seite einen Link generieren, wo einem automatisch immer die aktuellsten 50 Torrents der gewünschten Distributionen übergeben werden. Ihr setzt einfach den Haken bei euren Wunsch-OS‘, wählt unten bei Feed type „Web link“ aus und klickt auf „Get RSS“. Anschließend wird man zu einem RSS Feed weitergeleitet. Den Link davon werdet ihr gleich brauchen. Installieren wir erstmal das Skript:

Passt nun die drei Variablen im oberen Bereich des Skripts an. Die ersten beiden sind die Login Daten für Transmission und bei der letzten muss der RSS-Link rein, den ihr eben generiert habt. Nun den Editor mit Strg + O sichern und mit Strg + X schließen. Nun einmal mit  php fetch.php  starten und gleichzeitig Transmission im Browser öffnen. Es fügen sich nun 50 Torrents hinzu und beginnen mit dem Download. Das Skript merkt sich, welche Torrents es hinzugefügt hat. Wenn das Skript das nächste mal aufgerufen wird, schaus er ob es neue Torrents gibt und falls ja, werden diese hinzugefügt.

Um das ganze noch etwas autonomer zu machen, können wir einen Cronjob dafür anlegen. Dazu mit  crontab -e  die Cron-Datei öffnen und folgendes in eine neue Zeile eintragen:

Damit wird das Skript stündlich aufgerufen.

Ähnliche Beiträge:

Kommentare (2)

  1. Hallo,
    mir kam gerade eine ähnliche Idee, und ich bin auf deinen Blog gestoßen.
    Hätte ein paar Fragen 🙂
    Wie sind denn die Langezeiterfahrungen damit?
    Lohnt sich das? (Für die Community, nicht für dich.)
    Wie viel Traffic kommt da zusammen?
    Wie viel Speicherplatz kommt über die Zeit zusammen?
    Hast du Upload-Einschränkungen um deinen normalen Alltag nicht zu stören? Wie Hoch?

    Ich hatte bisher auf meinem Raspberry ein TorRelay, das ist aber mit meiner 100Mbit DSL-Leitung mit 24h Zwangstrennung auch nur bedingt sinvoll. Als Torret-Seeder wäre die Zwangstrennung hingegen nicht weiter tragisch.

    • Aufgrund von Beschwerden aus dem eigenen Haushalt ist das nach wenigen Wochen wieder deaktiviert worden leider. Das hat sich für die Community in meinen Augen definitiv gelohnt, denn da lief über die paar Wochen schon ordentlich Traffic drüber – genaue Zahlen kann ich dir da aber leider nicht mehr geben. Upload-Einschränkungen hatte ich zum damaligen Zeitpunkt nicht, rückblickend wäre das aber durchaus sehr sinnvoll gewesen.

Schreibe einen Kommentar