Installer le client BitTorrent ruTorrent sur Debian
ruTorrent est une interface Web au client BitTorrent rTorrent inspirée du client Windows µTorrent. Bien que pouvant gérer plusieurs utilisateurs, il n'y a pas de séparation des téléchargements.
Ce guide est testé sur:
- Debian 6.0 Squeeze
- Debian 7.0 Wheezy
Pré-requis
Ce guide nécessite:
- a2tools, l'outil d'administration simplifiée d'Apache 2
- un serveur HTTP avec support du PHP, comme décrit par Installer PHP-FPM sur Debian.
- le démon du client BitTorrent rTorrent, comme décrit par Installer la dernière version de rTorrent sur Debian.
Ce guide recommande l'installation de la protection Peer 2 Peer PeerGuardian sur Debian.
Paramètres
Renseignez le nom de domaine ou sera disponible l'application :
DOMAIN="bt.domaine-exemple.fr"
Installation
Déterminez le chemin d'installation:
INSTALL_PATH="/opt/rutorrent/${DOMAIN}"
Déterminez le chemin des données:
DATA_PATH="/var/lib/rutorrent/${DOMAIN}"
Assurez-vous que les dossiers existent:
command mkdir -p "$(command dirname "${INSTALL_PATH}")"
command mkdir -p "${DATA_PATH}"
Préparation de l'environnement
Installez les logiciels nécessaires:
command apt-get install php-cli curl libapache2-mod-scgi apache2-utils apg \
git unrar unzip mediainfo ffmpeg php-geoip curl sox python
Mise en place de l'application
Téléchargez les sources de l'application:
command git clone "https://github.com/Novik/ruTorrent" "${INSTALL_PATH}"
Supprimez le fichier .htaccess:
command rm "${INSTALL_PATH}/.htaccess"
Adaptation à la LSB
Adaptez l'application aux recommandations de la Linux Standard Base:
unset DATA_PATHS
declare -a DATA_PATHS
DATA_PATHS[0]="share/torrents"
DATA_PATHS[1]="share/settings"
DATA_PATHS[2]="share/users"
command mkdir --parent "${DATA_PATH}/share"
for CURRENT_PATH in ${DATA_PATHS[@]}; do
COMPLETE_PATH="${INSTALL_PATH}/${CURRENT_PATH}"
LSB_PATH="${DATA_PATH}/${CURRENT_PATH}"
if [ -e "${COMPLETE_PATH}" -a ! -h "${COMPLETE_PATH}" ]; then
command mv "${COMPLETE_PATH}" "${LSB_PATH}"
command ln -s "${LSB_PATH}" "${COMPLETE_PATH}"
command chown -R www-data:www-data "${LSB_PATH}"
fi
done
Mise en place de l'hôte virtuel
Activez le module scgi d'Apache:
command a2enmod scgi
Créez le fichier des mots de passes:
command touch "${DATA_PATH}/${DOMAIN}.pwd"
Créez la configuration du serveur HTTP pour votre domaine:
command a2tools add-custom "${DOMAIN}" "
# The root folder of this virtual host.
DocumentRoot ${INSTALL_PATH}
<IfModule mod_scgi.c>
SCGIMount /RPC2 127.0.0.1:5000
</IfModule>
# Some options for the root folder.
# Read Apache 2 documentation to know exactly what is done.
<Directory ${INSTALL_PATH}>
Options Indexes FollowSymLinks MultiViews
# If you want to enable overrides, you should read:
# http://httpd.apache.org/docs/2.0/mod/core.html#allowoverride
AllowOverride Limit
Order deny,allow
Allow from all
</Directory>
<Location />
Order deny,allow
Allow from all
# We enable password authentication
AuthType Basic
AuthName \"ruTorrent on ${DOMAIN}\"
AuthUserFile ${DATA_PATH}/${DOMAIN}.pwd
Require valid-user
</Location>"
L'application devrait maintenant être disponible sur le nom de domaine spécifié.
Création des utilisateurs
Pour ajouter un utilisateur, renseignez son identifiant:
USERNAME='pierre-yves'
Générez un mot de passe:
PASSWORD="$(command apg -q -a 0 -n 1 -M NCL)"
Créez le dossier approprié, et initialisez sa configuration:
command mkdir --parent "${INSTALL_PATH}/users/${USERNAME}"
command cp "${INSTALL_PATH}/conf/config.php" "${INSTALL_PATH}/users/${USERNAME}/config.php"
Ajoutez l'utilisateur au fichier des mots de passes du domaine:
command htpasswd -b "${DATA_PATH}/${DOMAIN}.pwd" "${USERNAME}" "${PASSWORD}"
Affichez les informations pour le nouvel utilisateur:
command echo "Le mot de passe de l'utilisateur '${USERNAME}' est '${PASSWORD}'."
Mise à jour automatique
Mettez en place un script de mise à jour automatique quotidienne du code de l'outil:
echo "#"'!'"/bin/bash
# Update ${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/rutorrent-${DOMAIN//./-}-update"
command chmod +x "/etc/cron.daily/rutorrent-${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 "${DATA_PATH}"
Remerciements
- Merci aux développeurs de ruTorrent.