[MAJ] – La seedbox facile sous Debian, avec Transmission

Je crois que je vais me lancer dans la photographie...

Maintenant que je dispose d’un serveur dédié dans un datacenter d’OVH avec une bande passante de 100Mbps assurée, il serait dommage de ne pas en profiter, et de ne pas en faire profiter la communauté Linux par exemple, en partageant mes distributions favorites sur les réseaux Peer to Peer, comme Bittorrent.

Oui mais voilà, nous sommes sur un serveur, et pas d’interface graphique pour nous aider à configurer cela. Heureusement, il existe un client Bittorent très performant et très simple d’utilisation sous Linux : Transmission.

Disponible sous Mac OS, GTK+, QT, via une interface web ou en ligne de commande, Transmission est ultra souple et saura répondre à tous nos / vos besoins en matière de Peer to Peer. Voyons donc comment mettre en place une seedbox, sur notre dédié, sous Debian, et avec Transmission.

Vous avez dit seedbox ?!
Mais d’abord une seedbox, c’est quoi ?

Seedbox est un terme anglais qui désigne un serveur privé dédié au téléchargement et à l’émission de données. Ces serveurs dédiés sont généralement connectés au net via une connexion symétrique 100Mbps et utilisent le protocole d’échange Bittorent pour faire transiter les données. Pour faire simple, j’ai atteint une pointe de 12Mo/s en download, et de 5Mo/s en upload… Pour plus d’information, vous connaissez le chemin !

De quoi ai-je besoin ?
  • D’un serveur. Dans mon cas un kimsufi chez OVH. Mais ça peut très bien être une machine chez vous si vous disposez d’une connexion fibre optique…
  • Une bonne connexion, car la seedbox est une grande consommatrice de bande passante.
  • Un client torrent : Transmission.

Installation et configuration de Transmission

Installation des paquets

C’est la partie la plus facile, il suffit d’installer le paquet transmission-daemon :

Note : vous pouvez aussi compiler les sources si vous souhaitez avoir la dernière version, celle des dépôts accusant un léger retard…

sudo apt-get install transmission-daemon

Et voilà, votre seedbox est prête ! Enfin presque… Il nous reste un peu de configuration afin de la moduler à nos besoins.

Configuration de la seedbox

Avant de commencer à mettre les mains dans le cambouis, quelques petites choses à savoir :

  • Le seul fichier de configuration que vous aurez à modifier est /etc/transmission-daemon/settings.json

Aperçu settings

  • Avant de modifier ce fichier, pensez à arrêter le service transmission-daemon :
    sudo service transmission-daemon stop

    Vous pouvez aussi modifier la configuration de Transmission alors que celui-ci est démarré, mais ne faites surtout pas un sudo service transmission-daemon restart car vous perdrez toutes vos modifications (l’expérience parle…). Pour charger votre configuration, faites :

    sudo service transmission-daemon reload

Maintenant on peut y aller 🙂 On édite donc le fichier /etc/transmission-daemon/settings.json. Ce fichier de configuration est formaté en JSON et se découpe en plusieurs parties. Vous pouvez trouver la documentation dudit fichier par ici car je ne vais pas tout reprendre en détail.

Gestion de la bande passante

Comme je ne veux pas que Transmission consomme toute la bande passante du serveur (on a d’autres services qui tournent), j’ai choisi de brider sa bande passante à 7Mo/s de 8h à minuit, tous les jours. Voici la configuration que j’utilise :

{
    "alt-speed-down": 7000,            // Limite à 7000Ko/s en download
    "alt-speed-enabled": true,         // Limite activée
    "alt-speed-time-begin": 480,       // Le bridage commande à 8h, soit 480min après minuit
    "alt-speed-time-day": 127,         // 127 en binaire = 1111111 (sept 1 pour sept jours, voir doc.)
    "alt-speed-time-enabled": true,    // On active la planification
    "alt-speed-time-end": 1439,        // Heure de fin, 1439 min après minuit, soit 23h59
    "alt-speed-up": 7000              // Limite à 7000Ko/s en upload
}

Gestion des fichiers et répertoires

Ici, le plus simple est de créer un utilisateur système, utilisé par Transmission, pour qu’il puisse disposer d’un dossier où déposer les téléchargements. Je vous propose les commandes suivantes. Elles créent un utilisateur downloader dans le groupe debian-transmission avec son home (/home/downloader) dans lequel nous créons un dossier incomplete/ :

sudo useradd -d /home/downloader -m downloader
sudo usermod -a -G debian-transmission downloader
sudo passwd downloader
sudo mkdir /home/downloader/incomplete
sudo chown -R downloader:debian-transmission /home/downloader

Au niveau de la configuration, voici ce que cela donne chez moi :

{
    "download-dir": "/home/downloader",              // Dossier de destination des téléchargements
    "incomplete-dir": "/home/downloader/incomplete", // Le dossier incomplete/ contient tous les téléchargements en cours
    "incomplete-dir-enabled": true,                  // ils sont déplacés dans download-dir lorsqu'ils sont terminés.
}

Configuration de l’interface web

C’est là que ça devient intéressant. Cette interface web (dite RPC) sera un moyen facile de contrôler Transmission à distance, on va donc faire cela aux petits oignons :). Voici ce que je vous propose :

{
    "rpc-authentication-required": true, // On l'authentification par mot de passe
    "rpc-enabled": true,                 // On active l'interface
    "rpc-password": "Password",          // Tapez votre mot de passe en clair, il sera chiffré à l'enregistrement
    "rpc-port": 9091,                    // Port d'accès à l'interface
    "rpc-url": "/",                      // Url d'accès à l'interface
    "rpc-username": "Utilisateur",       // Le nom d'utilisateur pour l'authentification
}

Autres petites choses utiles

Quelques petits autres paramètres que j’ai modifié. Là, c’est à vous de voir…

{
    "ratio-limit": 5,            // Le partage est arrêté au bout de 5 partages
    "ratio-limit-enabled": true, // La limite de ratio est activée
}

En fait cette option me permet de plus ou moins bien gérer ma bande passante et mon ratio de partage.

Toutes les autres options ont été laissées par défaut car je n’en ai pas eu besoin, n’hésitez pas à aller faire un tour sur la documentation de Transmission pour plus d’informations, ou laissez un commentaire 😉

Il ne vous reste plus qu’à enregistrer votre fichier et à recharger le daemon :

sudo service transmission-daemon reload

Vous devriez maintenant pouvoir accéder à l’interface web de transmission, à l’adresse et au port préalablement défini. Pour nous c’était http://mon.nomdedomaine.com:9091/. On s’authentifie et on atterri sur une page comme celle-là :

RPC Transmission

Je pense que les icônes sont assez explicites… En haut vous avez, de gauche à droite :

  • Ajouter un torrent en envoyant directement une URL ou un .torrent
  • Supprimer un torrent de la liste (il ne sera pas supprimé du dossier /home/downloader/)
  • Démarrer le torrent sélectionné
  • Suspendre le torrent sélectionné
  • Démarrer tous les torrents
  • Suspendre tous les torrents
  • Obtenir des informations sur le torrent sélectionné.

Dans la barre d’outil en bas, toujours de gauche à droite, on a :

  • Deux premiers boutons de paramètres que je vous déconseille d’utiliser car j’ai rencontré quelques souci avec. Préférez modifier directement le fichier de configuration.
  • Un bouton pour activer le bridage
  • Un bouton pour modifier l’affichage parmi les différentes listes disponibles

Voilà, avec ça on commence à avoir quelque chose d’intéressant et de bons moments de partage en perspective. Maintenant, je vous propose de peaufiner la gestion des URLs de notre interface car devoir ajouter le port 9091 à la fin de notre adresse n’est pas très joli. De plus, il nous contraint d’ouvrir un port de plus sur le pare feu, ce que je n’aime pas trop alors qu’Apache gère très bien la redirection de port. Sans parler de la sécurité : plus notre interface est cachée mieux c’est.

Nous allons donc créer un vhost Apache qui nous permettra d’accéder à l’interface de Transmission via l’url http://torrent.mondomaine.com.

Configuration d’un vhost Apache pour Transmission

On commence par activer les modules Apache dont nous allons avoir besoin :

sudo a2enmod  rewrite proxy proxy_http

On crée le vhost :

sudo vim /etc/apache2/sites-available/transmission

Pour lequel je vous propose le contenu suivant :

<VirtualHost *:80>
        ServerName torrent.mondomaine.com
 
        RewriteEngine On
        RewriteRule ^/$ /web/ [L,R=301]
 
        ProxyPass / http://127.0.0.1:9091/
        ProxyPassReverse / http://127.0.0.1:9091/
</VirtualHost>

Il ne reste plus qu’à redémarrer tout ça :

sudo service apache2 restart

Vous devriez maintenant pourvoir accéder à Transmission via la nouvelle URL, http://torrent.mondomaine.com.

Configuration d’un server block Nginx

Cette configuration a fait l’objet d’un article ! C’est par ici que ça se passe 🙂

Pour aller plus loin…

On peut en effet pousser la chose plus loin en forçant l’utilisation de HTTPS par exemple. Cela rajouterait une couche de sécurité en chiffrant tous nos échanges avec le serveur, notamment au moment de l’authentification. Je ne vais pas le détailler ici mais vous pouvez vous inspirer de mon tutoriel sur phpMyAdmin si ça vous tente.

Vous voilà maintenant avec une seedbox prête à télécharger et partager du contenu à la vitesse de l’éclair. Si vous utilisez un pare feu, pensez à ouvrir les ports spécifiés dans settings.json (51413 par défaut) et à fermer le 9091, qui ne vous servira plus.

Je pense que j’ai fait le tour de la question, si malgré tout vous en avez, n’hésitez pas à utiliser les commentaires, ou la page de contact 😉

MAJ – suite du tutoriel : découvrez différentes méthodes pour récupérer vers votre PC les fichiers téléchargés avec votre Seedbox !

Cet article vous a plu ? Partagez-le sur les réseaux sociaux !

Twitter Facebook Google Plus email