Login
Login-Name Passwort


 
Newsletter
Werbung

Mo, 28. Juli 2008, 00:00

TorrentFlux und Torrentflux-b4rt

BitTorrent gibt es als Konsolen- und Client/Server-Anwendung sowie mit grafischen Oberflächen - wie wäre es aber einmal mit einer Webanwendung? Hier werden zwei davon vorgestellt.

Vorwort

BitTorrent gibt es als Konsolen- und Client/Server-Anwendung sowie mit grafischen Oberflächen - wie wäre es aber einmal mit einer Webanwendung? Sie ermöglicht nicht nur, von jedem Ort aus seine Torrents zu verwalten, sondern bietet auch Gruppen die Möglichkeit, einen Server gemeinsam zu nutzen. Nicht zuletzt wäre es auch denkbar, den Zugang zu solch einer Anwendung als Dienstleistung anzubieten.

Ich gehe hier hauptsächlich von dem Fall aus, dass man die Webanwendung auf seinem heimischen Server als Ersatz für einen Kommandozeilen- oder grafischen Client verwendet. Sinn hat dies hauptsächlich dann, wenn man einen separaten Server hat und BitTorrent dort läuft, oder wenn man, wie oben erwähnt, von jedem Ort aus auf seine Torrents zugreifen will.

TorrentFlux

Installation

TorrentFlux ist eine Webanwendung, die PHP und MySQL verwendet. Für das Torrent-Protokoll wird BitTornado mitgeliefert, das in Python implementiert ist. Es ist dafür ausgelegt, auf einem Server zu laufen und quasi eine Download-Community zu bilden. Dementsprechend können Benutzerkonten angelegt werden, und die Benutzer können gleichzeitig auf das System zugreifen.

Basis

Zur Installation laden wir das Paket torrentflux_2.4.tar.gz vom Projektserver herunter. Man kann es in einem beliebigen Verzeichnis starten und auch von dort ausführen, wenn man den Webserver entsprechend konfiguriert. Daher lege ich es unter /usr/local. Meine Installation weicht in mancher Hinsicht von der mitgelieferten, einfachen Anleitung ab. Denn wer in der Anleitung fordert, einem Verzeichnis die Berechtigung 777 zu geben (Lesen, Schreiben und Ausführen für jeden), oder eine MySQL-Datenbank mit Zugriff durch den Root-Benutzer anzulegen (womit das Root-Passwort im Klartext in der Konfigurationsdatei steht), zeigt, dass er von Sicherheit nichts verstanden hat.

Wir machen es also anders und übergeben erst einmal das ganze Verzeichnis an Root. Dadurch sind die Dateien für den Webserver nicht änderbar.

chown -R root.root torrentflux_2.4

Nun wechseln wir in das neu entstandene Verzeichnis torrentflux_2.4. Im Projektverzeichnis befinden sich die kurzen Dateien README und INSTALL, die man sich durchlesen sollte. Die Datei INSTALL führt einige Voraussetzungen für TorrentFlux auf. Diese Voraussetzungen (einschließlich der optionalen) waren bei mir alle schon erfüllt.

Die Anleitung fordert, SELinux abzuschalten, sofern es läuft. Ausgemachter Unsinn! Eine bessere Lösung ist im Forum von TorrentFlux beschrieben. Der Safe Mode von PHP muss ausgeschaltet sein. Dies dürfte meistens bereits der Fall sein, da er andere Webanwendungen ebenfalls aus dem Gleichgewicht bringt.

Desweiteren müssen Apache, mod_php, MySQL, die CURL-Bibliothek und Python installiert sein, was man leicht über das Paketsystem der Distribution durchführen kann.

Datenbank

Nun kann man die Datenbank einrichten. Mit mysql -p und dem passenden Benutzernamen loggt man sich als Administrator ein und führt die folgenden Kommandos aus:

create database torrentflux;
use torrentflux;
\. mysql_torrentflux.sql
grant all on torrentflux.* to torrentflux identified by 'o8sakj:Zh';
quit

Damit ist speziell für die Datenbank torrentflux ein Benutzer gleichen Namens angelegt, der ein nicht erratbares Passwort (verwenden Sie nicht das gleiche Beispiel) erhält. Die Zugangsdaten der Datenbank werden nun in die Datei html/config.php eingetragen.

Apache

Nun muss man noch dafür sorgen, dass der Webserver auf die Programmdateien zugreifen kann. Im passenden virtuellen Host, der (bei Debian jedenfalls) in einer Datei im Verzeichnis /etc/apache2/sites-enabled definiert ist, fügen wir folgenden Alias hinzu:

Alias /torrent/ /usr/local/torrentflux_2.4/html/

Das bewirkt, dass wir schmerzlos unter der URL http://webserver/torrent/ auf die Applikation zugreifen können.

Erster Aufruf

Beim ersten Aufruf der Seite erscheint ein Login-Dialog, in dem wir einen beliebigen Namen und Passwort eingeben können. Da dieser Name zum Administrator von TorrentFlux gemacht wird, kann es sinnvoll sein, ihn admin oder ähnlich zu nennen. Eine eigene Benutzerkennung kann man sich später noch anlegen.

Es erscheint eine Konfigurationsseite, auf der gleich der erste Eintrag das Downloadverzeichnis festlegt. Das vorgegebene html/downloads würde ich nicht benutzen, schon aus Platzgründen, da /usr/local bei mir zu /usr gehört und ziemlich begrenzt ist. Ferner sollten variable Daten nicht unter /usr abgelegt werden. Damit das funktioniert, sollte das Downloadverzeichnis dem Benutzer gehören, unter dessen Account der Webserver läuft (meist www-data). Nachdem das Downloadverzeichnis geändert wurde, kann man die Einstellungen speichern und fortsetzen. Andere Änderungen sind zunächst nicht nötig.

Umgang mit TorrentFlux

Administration

Als Administrator hat man nun bereits die Möglichkeit, Downloads zu starten, allerdings halte ich es für sinnvoller, als Admin nichts weiter zu tun als das System zu warten. Dazu gehört zunächst einmal das Anlegen neuer Benutzer und das Verwalten bestehender. Man kann den Benutzern normale und Administrator-Rechte geben. Daneben werden nur Benutzername und Passwort benötigt, weitere Einstellungen kann jeder Benutzer selbst vornehmen - viele gibt es aber ohnehin nicht.

Weiter gibt es eine Backup-Funktion, deren Nützlichkeit ich noch nicht beurteilen kann. Sie erzeugt ein Tar-Archiv, das einen Namen mit Datumsstempel trägt, wie etwa torrentflux_20080625.tar.gz, und lediglich eine Datei mit der Struktur und den aktuellen Inhalten der Datenbank enthält.

Unter rss lassen sich URLs zu RSS-Feeds eingeben. Diese Funktion ist so primitiv, dass sie weder erkennt, ob die URL tatsächlich auf einen Feed verweist, noch Duplikate verhindert. Ähnlich ist eine Linkverwaltung aufgebaut, mit der man URLs eingeben kann, die auf der Startseite erscheinen sollen. Weitere Admin-Funktionen sind ein Aktivitäts-Log, eine Queue-Verwaltung (Verwaltung von Torrent-Dateien, die zur Bearbeitung vorgemerkt sind), und globale Sucheinstellungen.

Themes zu definieren, ist Sache des Administrators. Die Themes sind offenbar sehr klein und bestehen nur aus den benötigten Bildern, ein paar Farbdefinitionen sowie einer kleinen CSS-Datei style.css. Neue Themes lassen sich hinzufügen, indem man sie ins Verzeichnis html/themes kopiert, und entfernen, indem man ihr jeweiliges Unterverzeichnis entfernt.

Auf ähnliche Weise lässt sich die Auswahl der Suchmaschinen ändern. Jede Suchmaschine ist durch eine Klasse repräsentiert, die von der Klasse SearchEngineBase abgeleitet wird. Ihre Definition muss in der PHP-Datei html/searchEngines/[name]Engine.php abgelegt werden. Auch die Auswahl der Sprache folgt einem ähnlichen Prinzip, verwendet jedoch keine PHP-Klasse, sondern define-Anweisungen, die in der Datei html/language/lang-[name].php abgelegt sind. Dabei ist [name] der englische Name der jeweiligen Sprache.

Kommentare (Insgesamt: 0 || Kommentieren )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung