vendredi, 03 janvier 2014

Raspberry-pi : Serveur Torrent

transmission-02-535x535.pngJe vais surement me faire détester ou huer, mais je ne connaissais pas le fonctionnement des torrents il y a encore 2 semaines! Je suis un pur adepte du direct download, mais a l'heure actuelle les débits de ces services ralentissent plus vite que freine une Ferrari!

Certes tout le monde n'est pas logé a la même enseigne, surtout en France avec la hadopi ^^, mais après avoir testé, je me suis rendu compte que les torrents pouvaient être plus avantageux que les DD.

Vu que mon NAS possède 2 emplacements ethernet et que mon frère lui ne DL que par des Torrents, je me suis dit que vu que je me sers déjà de mon PI comme serveur JD, Dlna, Web autant en profiter pour en faire un serveur Torrent et pouvoir pomper les DL de mon frère (avec qui je partage souvent mes films ou vice versa).

L'avantage de Transmission, c'est qu'il est gérable en ligne de commande ou via une interface web que l'on accède par http://adressedupi:9091 .


Installation

Pour commencer, je sais que certain ne le font pas souvent, donc on va commencer par mettre a jour le pi, on sais jamais :)

sudo apt-get update && sudo apt-get upgrade

Bon, passons aux choses sérieuses. Certes il existe plusieurs Clients torrents ou serveurs possédant une interface web, mais pour ma part je vais utiliser Transmission qui est un des plus connu, donc pour installer le serveur torrent en mode console on va prendre la version sans interface Gui et faire ceci

sudo apt-get install transmission-daemon

 L'avantage de transmission-daemon, c'est qu'il intègre le Transmission remote aussi, donc vous pouvez par exemple en mode console faire ceci pour obtenir toute la liste des torrents 

transmission-remote --auth viskor:mdpviskor -l

Bien-sur, vous pouvez avoir accès a toute la liste des possibilités via un simple

transmission-remote 

 

Configuration

Donc maintenant pour la configuration de Transmission, on va fermer transmission puis éditer le fichier des configurations

sudo service transmission-daemon stop
sudo nano /etc/transmission-daemon/settings.json 

 Maintenant, voici mon Fichier settings, ce que vous voyez en gras est ce que j'ai modifié.

{
    "alt-speed-down": 50, 
    "alt-speed-enabled": false, 
    "alt-speed-time-begin": 540, 
    "alt-speed-time-day": 127, 
    "alt-speed-time-enabled": false, 
    "alt-speed-time-end": 1020, 
    "alt-speed-up": 50, 
    "bind-address-ipv4": "0.0.0.0", 
    "bind-address-ipv6": "::", 
    "blocklist-enabled": false, 
    "blocklist-url": "http://www.example.com/blocklist", 
    "cache-size-mb": 4, 
    "dht-enabled": true, 
    "download-dir": "/mnt/Downloads/Torrent", 
    "download-limit": 100, 
    "download-limit-enabled": 0, 
    "download-queue-enabled": true, 
    "download-queue-size": 5, 
    "encryption": 1, 
    "idle-seeding-limit": 30, 
    "idle-seeding-limit-enabled": true, 
    "incomplete-dir": "/mnt/Downloads/Temp",    "incomplete-dir-enabled": true, 
    "lpd-enabled": false, 
    "max-peers-global": 200, 
    "message-level": 2, 
    "peer-congestion-algorithm": "", 
    "peer-limit-global": 240, 
    "peer-limit-per-torrent": 60, 
    "peer-port": 51413, 
    "peer-port-random-high": 65535, 
    "peer-port-random-low": 49152, 
    "peer-port-random-on-start": false, 
    "peer-socket-tos": "default", 
    "pex-enabled": true, 
    "port-forwarding-enabled": false, 
    "preallocation": 1, 
    "prefetch-enabled": 1, 
    "queue-stalled-enabled": true, 
    "queue-stalled-minutes": 30, 
    "ratio-limit": 1, 
    "ratio-limit-enabled": true, 
    "rename-partial-files": true, 
    "rpc-authentication-required": true, 
    "rpc-bind-address": "0.0.0.0", 
    "rpc-enabled": true, 
    "rpc-password": "mdpviskor", 
    "rpc-port": 9091, 
    "rpc-url": "/transmission/", 
    "rpc-username": "viskor", 
    "rpc-whitelist": "127.0.0.1", 
    "rpc-whitelist-enabled": false, 
    "scrape-paused-torrents-enabled": true, 
    "script-torrent-done-enabled": false, 
    "script-torrent-done-filename": "", 
    "seed-queue-enabled": false, 
    "seed-queue-size": 10, 
    "speed-limit-down": 100, 
    "speed-limit-down-enabled": false, 
    "speed-limit-up": 100, 
    "speed-limit-up-enabled": true, 
    "start-added-torrents": true, 
    "trash-original-torrent-files": false, 
    "umask": 18, 
    "upload-limit": 100, 
    "upload-limit-enabled": 0, 
    "upload-slots-per-torrent": 14, 
    "utp-enabled": true
}

Ce que vous mettez dans password deviendra automatiquement crypter par la suite, pour ma part j'ai crée un dossier sur mon nas (qui est monter sur /mnt/Downloads) et sur celui ci j'ai crée 2 dossiers: Temp et Torrent, je vous conseille également de désactiver la whiteliste au sinon vous ne pourrez pas accédé via un autre pc non ajouter a la liste blanche ou encore depuis une autre connexion. Maintenant rien ne vous empêche de faire ce que vous voulez comme autre paramètre. Une fois le fichier de config sauvé et fermé, on relance transmission.

sudo service transmission-daemon start

 

Erreur permission denied 

Pour ma part, une fois qu'un torrent commence a DL, il me mettait un joli Permission denied, j'ai donc du lancé transmission sur l'utilisateur pi au lieu de l'utilisateur spécifique a transmission pour corriger le problème, maintenant essayez toujours de lancer un torrent, si il n'y a pas de problème, vous pouvez laisser comme c'est!

sudo service transmission-daemon stop 
sudo usermod -a -G debian-transmission pi
sudo adduser pi debian-transmission
sudo chown pi -R /etc/transmission-daemon/settings.json
sudo nano /etc/init.d/transmission-daemon

Dans le fichier transmission-daemon, il suffit de changer le USER et de mettre

USER=pi

Ensuite on relance le serveur transmission

sudo service transmission-daemon start

 Pour ceux chez qui le problème ne serais pas résolu, je vous invite a aller sur le forum de transmission, voici le post pour les erreurs permission denied

Interface Web

Une fois tout configuré et installé, il suffira de vous rendre sur l'interface web, pour ce faire http://ipduraspberrypi:9091, il vous demandera le login et mdp que vous avez mentionner dans le fichier config.

Capture d'écran 2014-01-03 16.30.57.png

 

L'interface de base n'est pas top top, elle permet juste de rajouter les liens et les stopper, en Cherchant un peu, je suis tombé sur une interface plus jolie et surtout avec plus de fonction.

L'interface que l'on va installer s'appel Shift! Malheureusement pour le moment elle est uniquement disponible en anglais. Pour la présenter, rien de tel que des images, voici la vue principale , au chargement de Shift il n'affiche que les DL en cours, si on souhaite voir ce qui est fini, on dois allez dans Status et ensuite on choisit all

Capture d'écran 2014-01-03 16.19.54.png

L'on peut cliquer sur la boule bleu devant le torrent pour avoir accès au menu des options, celui qui m'a intéressé c'est l'onglet détail, sur la prochaine screen vous verrez qu'on peut voir les fichiers présents dans le torrent ainsi que les Peers, details du torrent et les trackers, avec la possibilité d'ajouter de nouveaux trackers ou d'en supprimer.

Capture d'écran 2014-01-03 16.20.20.png

 Pour installer la nouvelle interface, c'est pas très compliquer, il m'a juste fallu renommer l'interface Web d'origine et de copier shift en mettant comme nom le nom de l'ancienne interface, pas de commande difficile ou de bidouilles, d’ailleurs pour faire les photos qui sont plus haut, j'ai juste renommer mon interface shift et l'ancienne!

cd /usr/share/transmission/
sudo mv web web_save
sudo git clone https://github.com/killemov/Shift.git web

Voila le tour est jouer! De plus vous pouvez repassé sur l'ancienne interface si ça vous plait pas via cette commande tout simple

cd /usr/share/transmission/
sudo mv web web_shift
sudo mv web_save web

J'espère que ce tuto vous aura plu, d'autre part j'ai intégré les commentaires FB qui sont plus simple a lire que les anciens, bien a vous!

Écrit par Viskor dans Astuces, Raspberry-Pi, Serveur |  Facebook | |