Vous êtes ici : Accueil / Debian GNU/Linux / Applications Web / Téléchargement BitTorrent / Installer le client BitTorrent Torrentflux-b4rt sur Debian

Installer le client BitTorrent Torrentflux-b4rt sur Debian

Par Pierre-Yves Landuré Dernière modification 02/11/2012 17:31

Torrentflux-b4rt est une interface Web pour différents clients BitTorrent. C'est une version améliorée de Torrentflux.

Ce guide est testé sur:

  • Debian 6.0 Squeeze

Pré-requis

Ce guide nécessite un serveur MySQL disposant du script mysql-tools disponible dans le guide Installer et configurer MySQL sur Debian.

Ce guide nécessite un serveur HTTP avec support du PHP disposant au choix d'un des scripts suivant :

Ce guide recommande l'utilisation de PeerGuardian dont l'installation est détaillée dans le guide Installer la protection Peer 2 Peer PeerGuardian sur Debian.

Paramètres

Renseignez le nom de domaine où sera disponible l'application :

DOMAIN="torrent.domaine-exemple.fr"

Renseignez le nom d'hôte de votre serveur MySQL (si vous ne savez pas de quoi il s'agit, ne modifiez pas cette valeur):

MYSQL_HOST="localhost"

Si votre serveur MySQL n'est pas local, ce guide effectuera une connexion SSH pour y créer la base de données.

Installation

Installez les logiciels nécessaires au bon fonctionnement de l'application:

command apt-get install bzip2 php5-mysql php5-gd php5-cli unrar grep python \
net-tools mawk wget unzip vlc-nox uudeview apg python-crypto \
libxml-simple-perl libxml-dom-perl libdbd-mysql-perl libdigest-sha1-perl \
bittorrent bittornado sudo cksfv

Récupérez l'URL de téléchargement des sources de l'application:

SOURCE_URL="$(command wget "http://developer.berlios.de/project/showfiles.php?group_id=7000" \
--quiet --output-document=- \
| command grep --max-count=1 "/tf-b4rt/torrentflux-b4rt" \
| command sed -e 's|.*\(/tf-b4rt/torrentflux-b4rt_[^"]*\)".*|http://download.berlios.de\1|')" VERSION="$(echo "${SOURCE_URL}" \ | command sed -e 's/.*torrentflux-b4rt_\(.*\).tar.*/\1/g')"

Téléchargez les sources:

command wget "${SOURCE_URL}" \
    --output-document="/tmp/torrentflux-b4rt_${VERSION}.tar.bz2"

Décompressez l'archive:

command tar --directory "/tmp" -xjf "/tmp/torrentflux-b4rt_${VERSION}.tar.bz2"

Déplacez le dossier obtenu vers son emplacement définitif:

command mv "/tmp/torrentflux-b4rt_${VERSION}" "/opt/${DOMAIN}"

Corrigez les permissions du dossier de configuration:

command chown -R www-data:www-data "/opt/${DOMAIN}/html/inc/config/"

Créez le dossier de destination des téléchargements Torrent:

command mkdir --parent "/var/lib/torrentflux-b4rt/${DOMAIN}"
command chown -R www-data:www-data "/var/lib/torrentflux-b4rt/${DOMAIN}"

L'application utilise la commande netstat pour détecter les ports utilisés. Configurez sudo pour que le compte www-data puisse lancer cette commande avec les droits de super-administrateur:

if [ -z "$(command grep 'TFB4RT_NETSTAT' '/etc/sudoers')" ]; then
command sed -i \
-e '/Cmnd alias/a\
Cmnd_Alias TFB4RT_NETSTAT = /bin/netstat' \
-e '/User privilege/a\
www-data ALL = NOPASSWD: TFB4RT_NETSTAT' \
"/etc/sudoers"
fi

Créez le script shell permettant l'utilisation de cette configuration par l'application:

command mkdir "/opt/${DOMAIN}/bin"
command echo '#!/bin/bash
# Call netstat using sudo.
command sudo netstat $@' > "/opt/${DOMAIN}/bin/netstat"
command chmod +x "/opt/${DOMAIN}/bin/netstat"

Créez la configuration du serveur HTTP pour votre domaine:

if [ -x "/usr/bin/a2tools" ]; then
  command a2tools add-vhost "${DOMAIN}" "/opt/${DOMAIN}/html"
  /etc/init.d/apache2 force-reload
fi
if [ -x "/usr/bin/lighty-tools" ]; then
  command lighty-tools add-vhost "${DOMAIN}" "/opt/${DOMAIN}/html"
fi

L'application devrait être disponible sur le nom de domaine que vous avez choisi.

Initialisation

Créez la base de données:

if [ "${MYSQL_HOST}" = "localhost" ]; then
  MYSQL_PARAMS=$(command mysql-tools create-domain-db "${DOMAIN}")
else
  command echo "Saisissez le mot de passe de l'utilisateur root MySQL :"
  command read PASSWORD
  MYSQL_PARAMS=$(command ssh "root@${MYSQL_HOST}" "command mysql-tools create-domain-db '${DOMAIN}' '$(command cat /etc/mailname)' '${PASSWORD}'")
fi

Récupérez les paramètres de la nouvelle base de données:

echo "${MYSQL_PARAMS}"

Configurez l'application en visitant l'URL fournie par:

echo "http://${DOMAIN}/setup.php"

Suivez alors les différentes étapes de configuration :

  1. Base de données: Désactivez la création de la base de données (en décochant la case "Create Database").
  2. Configuration du serveur: Pour l'emplacement du User Download Path, utilisez la valeur fournie par:
    echo "/var/lib/torrentflux-b4rt/${DOMAIN}"
  3. Vérification des dépendances logicielles: tout doit être valide.
  4. Suppression du fichier setup.php : Ignorez l'erreur affichée lors de cette étape.

La configuration se termine par la suppression du fichier setup.php:

command rm "/opt/${DOMAIN}/html/setup.php"

Corrigez les permissions:

command chown -R root:root "/opt/${DOMAIN}/html/inc/config/"

Ajustez les paramètres de l'application:

command echo "UPDATE tf_settings SET tf_value='/opt/${DOMAIN}/bin/netstat' WHERE tf_key='bin_netstat';
UPDATE tf_settings SET tf_value='1' WHERE tf_key='wget_ftp_pasv';
UPDATE tf_settings SET tf_value='1' WHERE tf_key='auth_type';
UPDATE tf_settings SET tf_value='lang-french.php' WHERE tf_key='default_language';
UPDATE tf_settings SET tf_value='1' WHERE tf_key='enable_index_ajax_update';
UPDATE tf_settings SET tf_value='mininova' WHERE tf_key='searchEngine';
UPDATE tf_settings SET tf_value='2' WHERE tf_key='enable_nzbperl';
UPDATE tf_settings SET tf_value='2' WHERE tf_key='nzbperl_create';
UPDATE tf_settings_dir SET tf_value='1' WHERE tf_key='dir_public_write';" \
| command mysql --user="${MYSQL_USER}" --password="${MYSQL_PASSWORD}" \
   --host="${MYSQL_HOST}" "${MYSQL_DB}"

Connectez-vous à l'application.

Important : Le premier identifiant et mot de passe saisi devient le compte d'administration.

Configuration

À la première connexion, une page de configuration s'affiche. La plus part des options sont ajustées par ce guide d'installation. Voici le détail des choix faits.

Transfer

Paramétrez les transferts de fichiers:

  • Default BitTorrent Client : BitTornado : Ce client supporte l'encryption.
  • Torrent Metainfo Client : btshowmetainfo.py
  • Port Range (B+T+M) : Réglez ici les ports de connection à BitTorrent. N'oubliez pas de les ouvrir dans votre configuration de pare-feu ou routeur.
  • Wget : Enable Passive FTP : True : Obligatoire si vous utilisez un pare-feu ou un routeur.
  • Enable Nzbperl : All users : Autorisez tous les utilisateurs a effectuer des téléchargements depuis Usenet.
  • Use Subdirectories : Use Usenet group name.

Webapp

Paramétrez l'interface:

  • Select Authentication Type: Form-Auth + Cookie : C'est une valeur qui simplifie la vie :D.
  • Default language: French
  • Enable template cache: False : L'activer semble causer quelques légers problèmes.

Index

Paramétrez la mise à jour automatique de l'affichage:

  • AJAX update: True : Mise à jour en AJAX de la page.
  • Default Torrent Search Engine: mininova : TorrentSpy n'est pas vraiment une bonne idée :D
  • Default Sort Order: Name - Ascending : Tri des torrents par nom (c'est le plus facile pour s'y retrouver).

Dir

Paramétrez les dossiers de téléchargement de Torrentflux:

  • Public Write : True : Très pratique pour effacer vos torrents depuis le shell.

Users

Créez les utilisateurs. N'utilisez l'administrateur que pour l'administration, pas pour le téléchargement.

Pour aller plus loin

Utilisation du client BitTorrent Transmission

Pour utiliser Transmission en lieu et place de BitTornado pour gérer les transferts de fichiers, compilez une version modifiée de Transmission nécessaire au bon fonctionnement de Torrentflux.

Renseignez la version de Transmission à installer:

VERSION=1.06

Téléchargez les sources:

command wget "http://download.m0k.org/transmission/files/transmission-${VERSION}.tar.bz2" \
--output-document="/tmp/transmission-${VERSION}.tar.bz2"

Décompressez l'archive:

command tar --directory "/tmp" -xjf "/tmp/transmission-${VERSION}.tar.bz2"

Décompressez le patch nécessaire au bon fonctionnement avec TorrentFlux :

command tar --directory "/tmp" -xjf "/opt/${DOMAIN}/clients/transmission/Transmission-1.06_tfCLI-svn3356.tar.bz2"

Appliquez la modification des sources:

command cp "/tmp/Transmission-1.06_tfCLI-svn3356/cli/transmissioncli.c" "/tmp/transmission-${VERSION}/cli/transmissioncli.c"

Installez les dépendances de compilation:

command apt-get install make gcc libc6-dev pkg-config libssl-dev

Placez-vous dans le dossier des sources:

pushd "/tmp/transmission-${VERSION}"

Lancez la configuration:

./configure --disable-gtk

Compilez:

command make

Installez:

command make install

Supprimez les fichiers inutiles:

popd
command rm -r "/tmp/Transmission-1.06_tfCLI-svn3356"
command rm -r "/tmp/transmission-${VERSION}"
command rm "/tmp/transmission-${VERSION}.tar.bz2"

Désinstallez les logiciels nécessaires à la compilation:

command apt-get --purge autoremove make gcc libc6-dev libssl-dev pkg-config

Connectez-vous à l'application en tant qu'administrateur, et modifiez vos paramètres afin d'utiliser la ligne de commande Transmission.

Remarque: Le chemin à spécifier dans l'onglet "server" pour la ligne de commande transmission est:

/usr/local/bin/transmissioncli

VLC

VLC (Video LAN Client) fait partie des dépendances de l'application. Et bien, la raison est que Torrentflux utilise VLC pour "streamer" les contenus vidéo téléchargés. Pour que cette fonctionnalité marche, vous devez ouvrir le port 8080 de votre pare-feu ou routeur vers la machine hébergeant Torrentflux. (Vous pouvez changer ce port dans la page de configuration "Dir").

Remarque : Si votre serveur Torrentflux est derrière un reverse proxy Apache, il est nécessaire de modifier légèrement le code source de Torrentflux pour que le streaming fonctionne correctement:

command sed -i -e 's/return \$instanceVlc->addr;/return \$_SERVER["SERVER_NAME"];/g' \
"/opt/${DOMAIN}/html/inc/classes/Vlc.php"

Fluxd

Cet outil permet à Torrentflux d'effectuer des actions même lorsque vous n'êtes pas connecté. N'ayant pas trouvé de script init.d pour ce daemon, et n'en ayant pas l'utilité personnellement, je ne fait que le mentionner. Cependant, je vous conseille de lire la description de toutes les fonctions dans la page de configuration de cet outil. Certaines peuvent vous être utiles.

Remerciements