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

Installer le client BitTorrent wTorrent sur Debian

Par Pierre-Yves Landuré Dernière modification 29/04/2015 22:30

wTorrent est une interface Web pour le client BitTorrent rTorrent. Ce guide vous aide à l'installer sur Debian.

Ce guide est testé sur:

  • Debian 6.0 Squeeze

Ce guide est testé avec ces versions de wTorrent:

  • Clone git du 25 Juin 2012.

Prérequis

Ce guide nécessite :

Ce guide nécessite l'un des outils ci-dessous, suivant le serveur HTTP choisi:

Ce guide recommande l'installation de la protection Peer 2 Peer PeerGuardian sur Debian.

Paramètres

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

DOMAIN="bt.domaine-exemple.fr"

Installation

Déterminez le chemin d'installation:

INSTALL_PATH="/opt/wtorrent/${DOMAIN}"

Assurez-vous que le dossier parent existe:

PARENT_PATH="$(command dirname "${INSTALL_PATH}")"
if [ ! -e "${PARENT_PATH}" ]; then
command mkdir --parent "${PARENT_PATH}"
fi

Préparation de l'environnement

Installez les logiciels nécessaires:

command apt-get install php5-sqlite git \
apache2-utils apg

Adaptez la configuration PHP aux besoins de l'outil:

command php-tools --for="wtorrent" --set "suhosin.get.max_value_length" 4000

Rechargez la configuration de PHP:

test -x /etc/init.d/php5-fpm && /etc/init.d/php5-fpm force-reload
test -x /etc/init.d/apache2 && /etc/init.d/apache2 force-reload
test -x /etc/init.d/lighttpd && /etc/init.d/lighttpd force-reload
test -x /etc/init.d/nginx && /etc/init.d/nginx force-reload

Mise en place de l'application

Téléchargez les sources de l'application:

command git clone "https://github.com/749/wtorrent" "${INSTALL_PATH}"

Créez les dossiers destinés à contenir les fichiers créés par l'application:

command mkdir --parent "/var/lib/wtorrent/${DOMAIN}/data"
command mkdir --parent "/var/lib/wtorrent/${DOMAIN}/db"
command mv "${INSTALL_PATH}/wtorrent/tpl_c" "/var/lib/wtorrent/${DOMAIN}/tpl_c"
command mv "${INSTALL_PATH}/wtorrent/torrents" "/var/lib/wtorrent/${DOMAIN}/torrents"
command chown -R www-data:www-data "/var/lib/wtorrent/${DOMAIN}"

Créez les liens symboliques associés à ces dossiers:

command ln -s "/var/lib/wtorrent/${DOMAIN}/tpl_c" "${INSTALL_PATH}/wtorrent/tpl_c"
command ln -s "/var/lib/wtorrent/${DOMAIN}/torrents" "${INSTALL_PATH}/wtorrent/torrents"

Autorisez le serveur HTTP à ajouter des fichiers dans le dossier de configuration :

command chown www-data:www-data "${INSTALL_PATH}/wtorrent/conf/"

Configurez l'application:

command sed -i -e "/\$defaults/,/\$user_options/s|^\(.*db_file.*=>\).*$|\1 '../../../../var/lib/wtorrent/${DOMAIN}/db/database.db',|" \
            -e "/\$defaults/,/\$user_options/s|^\(.*dir_torrents.*=>\).*$|\1 'torrents/',|" \
            -e "/\$defaults/,/\$user_options/s|^\(.*dir_exec.*=>\).*$|\1 '${INSTALL_PATH}/wtorrent/',|" \
            -e "/\$defaults/,/\$user_options/s|^\(.*dir_download.*=>\).*$|\1 '/var/lib/wtorrent/${DOMAIN}/data/',|" \
    "${INSTALL_PATH}/wtorrent/cls/install.cls.php"

Créez le fichier de configuration:

command cp "${INSTALL_PATH}/wtorrent/conf/sample.user.conf.php" "${INSTALL_PATH}/wtorrent/conf/user.conf.php"
command chown www-data:www-data "${INSTALL_PATH}/wtorrent/conf/user.conf.php"

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

if [ -x "/usr/local/bin/a2tools" ]; then
  command a2tools --overrides="All" "${DOMAIN}" "${INSTALL_PATH}/wtorrent/"
fi
if [ -x "/usr/local/bin/lighty-tools" ]; then
  command lighty-tools add-vhost "${DOMAIN}" "${INSTALL_PATH}/wtorrent/"
fi

Configuration du serveur SCGI

Créez un identifiant et mot de passe aléatoire pour l'accès au serveur SCGI:

SCGI_LOGIN="$(command apg -q -a 0 -n 1 -M NCL)"
SCGI_PASSWORD="$(command apg -q -a 0 -n 1 -M NCL)"

Créez le fichier mot de passe pour le serveur HTTP:

command htpasswd -cb "/var/lib/wtorrent/scgi.pwd" "${SCGI_LOGIN}" "${SCGI_PASSWORD}"

Mettez à jour la configuration de l'application avec les informations d'identification:

command sed -i -e "/\$defaults/,/\$user_options/s|^\(.*rt_user.*=>\).*$|\1 '${SCGI_LOGIN}',|" \
            -e "/\$defaults/,/\$user_options/s|^\(.*rt_passwd.*=>\).*$|\1 '${SCGI_PASSWORD}',|" \
            -e "/\$defaults/,/\$user_options/s|^\(.*rt_auth.*=>\).*$|\1 true,|" \
    "${INSTALL_PATH}/wtorrent/cls/install.cls.php"

Configurez le serveur Apache 2 pour officier comme serveur SCGI pour rTorrent, si il est installé:

if [ -x "/usr/local/bin/a2tools" ]; then
command apt-get -y install libapache2-mod-scgi
command a2enmod scgi rewrite
if [ -z "$(command grep 'NameVirtualHost 127.0.0.1:80' /etc/apache2/ports.conf)" ]; then
command sed -i -e '/Listen[\t ]*80/i\
NameVirtualHost 127.0.0.1:80' '/etc/apache2/ports.conf'
fi
command echo "<VirtualHost 127.0.0.1:80>
ServerName localhost

<IfModule mod_scgi.c>
SCGIMount /RPC2 127.0.0.1:5000
</IfModule>

<Location /RPC2>
Order deny,allow
Allow from all

# We enable password authentication
AuthType Basic
AuthName \"rTorrent SCGI\"
AuthUserFile /var/lib/wtorrent/scgi.pwd
Require valid-user
</Location>

<Location />
Order deny,allow
Allow from all
</Location>

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} "\!"^/RPC2
RewriteCond %{REQUEST_URI} "\!"^/server-status
RewriteCond %{REQUEST_URI} "\!"^/php-fpm-status
RewriteCond %{REQUEST_URI} "\!"^(/php5.fastcgi)?/apc-info
RewriteRule ^/(.*) http://${DOMAIN}/\$1 [R=301,L]
</IfModule>
</VirtualHost>" \
> '/etc/apache2/sites-available/http-localhost-rtorrent'
command a2ensite http-localhost-rtorrent
/etc/init.d/apache2 force-reload
fi

Configurez le serveur LigHTTPd pour officier comme serveur SCGI pour rTorrent, si il est installé:

if [ -x "/usr/local/bin/lighty-tools" ]; then
command echo '# rTorrent SCGI configuration. server.modules += ( "mod_scgi", "mod_auth" ) scgi.server = ( "/RPC2" => # RT_DIR ( "127.0.0.1" => ( "host" => "127.0.0.1", # Ip where rtorrent is listening "port" => 5000, # Port specified in .rtorrent.rc "check-local" => "disable" ) ) ) auth.backend = "htpasswd" auth.backend.htpasswd.userfile = "/var/lib/wtorrent/scgi.pwd" auth.require = ( "/RPC2" => ( "method" => "basic", "realm" => "XML-RPC", "require" => "valid-user" ) ) ' > '/etc/lighttpd/conf-available/10-rtorrent.conf'
  command lighty-enable-mod rtorrent
/etc/init.d/lighttpd force-reload
fi

Initialisation de wTorrent

AVANT TOUTE AUTRE ACTION, accédez au script d'installation de wTorrent pour créer votre compte administrateur. Utilisez l'URL affichée par:

command echo "http://${DOMAIN}/install.php"

Ignorez le test de configuration. Il ne fonctionne pas (il signale que la création de la base de données est impossible).

Une fois votre configuration terminée, effacez le fichier d'installation et protégez la configuration:

command rm "${INSTALL_PATH}/wtorrent/install.php"
command chown -R root:root "${INSTALL_PATH}/wtorrent/conf/"

wTorrent est maintenant accessible depuis l'URL fournie par:

command echo "http://${DOMAIN}/"

Mise à jour automatique

Mettez en place un script de mise à jour automatique quotidienne du code de l'outil:

echo "#"'!'"/bin/bash
# Update ${PROTOCOL}://${DOMAIN}/ source code from Git.
test -x '/usr/bin/git' -a -d '${INSTALL_PATH}' && {
pushd '${INSTALL_PATH}' > '/dev/null'
/usr/bin/git pull --quiet > '/dev/null'
popd > '/dev/null'
}" \
  > "/etc/cron.daily/${DOMAIN}-update"
command chmod +x "/etc/cron.daily/${DOMAIN}-update"

Sauvegardes

Sauvegardez l'installation avec Backup Manager (voir Installer et configurer Backup Manager sur Debian):

command backup-manager-tools add "${INSTALL_PATH}"
command backup-manager-tools add "/var/lib/wtorrent"

Résolution des problèmes

Si le processus d'installation vous informe que la base de données est déjà créée, exécutez la commande suivante et relancez l'installation:

command rm "/var/lib/wtorrent/${DOMAIN}/db/database.db"

Si le démon rtorrent ne se lance plus, essayez d'effacer le fichier verrou :

command rm '/var/lib/rtorrent/sessions/rtorrent.lock'

Remerciements