Bienvenue sur ce site internet auto-hébergé. Il est conforme au règlement général européen sur la protection des données (RGPD). Aucun cookie de traçage, aucune bannière et aucune publicité ne sont présents. Son contenu est mis à disposition selon les termes de la licence Creative Commons BY-NC-SA. Toute utilisation à des fins commerciales est strictement interdite et toute reproduction ou partage, même partiel, doivent respecter ces termes. Pour en savoir plus...
On peut faire une multitude de choses avec une carte Raspberry Pi comme par exemple : une console de jeu rétro, un petit serveur web, une station météo familiale, de la programmation, de la domotique.... Comme le matériel est robuste, l'encombrement minimal et la consommation électrique très faible, pourquoi alors ne pas pas s'en servir pour créer un petit serveur de téléchargements et de partage de fichiers ?
Je vais donc vous expliquer ci-dessous :
Pour cela, nous allons utiliser le logiciel de téléchargement BitTorrent Open Source Transmission.
Avant de rentrer dans le vif du sujet, il vous faut quelques pré-requis indispensables à savoir :
Première étape :
Installer le client et le daemon transmission :
On ouvre donc une session SSH (ex: avec Putty) et on se connecte en Root sur le Rasberry Pi.
Et on commence d'abord par mettre à jour le système avec les commandes :
sudo apt-get update
sudo apt-get upgrade
Puis on installe le Daemon Transmission :
sudo apt-get install transmission-daemon
Deuxième étape :
On branche son disque USB sur le Raspberry Pi, on configure un point de montage automatique au démarrage du Raspberry Pi et on crée les répertoires qui seront utilisé par Transmission.
NB* : afin de faciliter le partage de fichiers et la compatibilité avec Windows, j'ai choisi le système de fichiers NTFS.
Il vous faudra donc formater votre support de stockage USB en NTFS, un format propre aux systèmes Microsoft. (Profitez-en pour lui donner un nom évocateur ex: USBDisk). Comme c'est un format propriétaire, il faut installer un paquet spécifique pour que notre distribution Linux puisse écrire sur ce format :
Pour gérer l'écriture en NTFS, on installe le paquet ntfs-3g :
sudo apt-get install ntfs-3g
On branche notre support de stockage sur un port USB et on lance la détection des disques avec la commande :
sudo fdisk - l
Notre support externe apparaît normalement sous la forme : /dev/sda1
On crée donc un répertoire dédié qui servira de point de montage :
sudo mkdir /media/USBDisk
Il est ensuite possible de monter manuellement notre disque USB :
sudo mount -t ntfs-3g /dev/sda1 /media/USBDisk
Mais, il est préférable de configurer un montage automatique du support à chaque démarrage du Raspberry Pi. Pour cela, on édite avec Nano le fichier fstab :
sudo nano /etc/fstab
et on y ajoute la ligne suivante :
/dev/sda1 /media/usb ntfs-3g rw, auto 0 0
On enregistre
CTRL+O
et on quitte l'éditeur Nano
CTRL+X
Puis on redémarre le Raspberry Pi pour activer le montage automatique
sudo reboot
Pour terminer on crée sur notre support USB les répertoires dédiés à Transmission :
sudo mkdir /media/USBDisk/downloads
sudo mkdir /media/USBDisk/downloads/complete
sudo mkdir /media/USBDisk/downloads/incomplete
Troisième étape :
Nous allons maintenant paramétrer Transmission, notre client BitTorrent en déclarant certaines directives dans le fichier de configuration "settings.json" comme : le port d'écoute BiTorrent, l'accès distant à l’interface web, les préférences de cryptage, le login et le mot de passe de connexion.
Première chose, on arrête le service Transmission :
sudo /etc/init.d/transmission-daemon stop
Et on édite le fichier de configuration avec Nano :
sudo nano /etc/transmission-daemon/settings.json
Modification du fichier de configuration de Transmission :
{
"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, # (peut être activé avec "true")
"blocklist-url": "http://www.example.com/blocklist", # (renseigner sa liste noire)
"cache-size-mb": 16, # (ajuster la mémoire cahe selon sa convenance ; ici : 16 Mo. (NB* : plus le cache est grand, plus on diminue les lectures/écritures sur le disque)
"dht-enabled": true,
"download-dir": "/media/USBDisk/downloads/complete", # (adapter selon son support USB)
"download-limit": 100,
"download-limit-enabled": 0,
"download-queue-enabled": true,
"download-queue-size": 5,
"encryption": 1, # (cryptage : 0=aucun, 1=si possible, 2=obligatoire)
"idle-seeding-limit": 2,
"idle-seeding-limit-enabled": true,
"incomplete-dir": "/media/USBDisk/downloads/incomplete", # (adapter selon son support USB)
"incomplete-dir-enabled": true,
"lpd-enabled": false,
"max-peers-global": 200,
"message-level": 1,
"peer-congestion-algorithm": "",
"peer-id-ttl-hours": 6,
"peer-limit-global": 200,
"peer-limit-per-torrent": 50,
"peer-port": 51413, # (port Torrent à configurer dans votre Box, routeur ou pare-feu)
"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": true,
"queue-stalled-enabled": true,
"queue-stalled-minutes": 30,
"ratio-limit": 2,
"ratio-limit-enabled": false,
"rename-partial-files": true,
"rpc-authentication-required": true,
"rpc-bind-address": "0.0.0.0",
"rpc-enabled": true,
"rpc-host-whitelist": "",
"rpc-host-whitelist-enabled": true,
"rpc-password": "mot de passe", # (saisir son mot de passe en clair. Il sera crypté ("hashé") dès le redémarrage de Transmission)
"rpc-port": 9091, # (choisir le port de connexion à l'interface web de Transmission)
"rpc-url": "/transmission/",
"rpc-username": "Login", # (choisir son login)
"rpc-whitelist": "127.0.0.1,192.168.*.*", # (renseigner les adresses IP autorisées à accéder à l'interface web de Transmission)
"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": false,
"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
}
Enregistrement des modifications et redémarrage du service Transmission :
On enregistre nos paramètres
CTRL+O
On quitte l'éditeur Nano
CTRL+X
Et on relance Transmission
sudo /etc/init.d/transmission-daemon start
Désormais, vous pouvez accéder à l’interface web de Transmission à partir des machines aux adresses IP déclarées dans la section "rpc-whitelist" du fichier précédemment configuré.
Pour cela, vous avez juste besoin d'un navigateur internet.
Ainsi, vous pourrez facilement gérer vos téléchargements à distance (ex : à partir de votre Smartphone en sirotant une limonade au bord de la piscine). 8-)
L'adresse à renseigner est la suivante : http://IP_De_Votre_RaspberryPi:9091 (exemple : http://192.168.0.200:9091).
Quatrième et dernière étape :
Créer un partage de notre support de stockage USB avec Samba pour que l'on puisse accéder aux fichiers téléchargés à partir d'autres postes.
On installe donc samba avec les commandes suivantes :
sudo apt-get install samba samba-common-bin
Puis on édite le fichier de configuration de samba :
sudo nano /etc/samba/smb.conf
Dans le fichier de configuration de Samba, on rajoute tout à la fin les lignes suivantes :
[RASP_TORRENT_BOX] # (Nom de votre partage sur le réseau)
comment = Public Shares
path = /media/USBDisk/downloads # (chemin du dossier partagé sur votre support USB)
writeable = Yes
only guest = Yes
create mask = 0777
directory mask = 0777
browseable = Yes
public = yes
On enregistre les modifications et on relance le service Samba
CTRL+O
On quitte l'éditeur Nano
CTRL+X
Et on redémarre Samba
sudo /etc/init.d/smbd restart
Maintenant, pour accéder à vos fichiers téléchargés, rien de plus simple, il vous suffit de parcourir le voisinage réseau de Windows pour faire apparaître votre répertoire partagé ou d'exécuter une recherche sur l'adresse réseau : \\IP_ou_Nom_de_votre_Raspberry (ex: \\RASPBIAN\RASP_TORRENT_BOX).
Voilà, vous possédez maintenant une petite SeedBox économique que vous pouvez piloter à distance et qui, une fois les téléchargements lancés vous permettra de vaquer à d'autres occupations.
Pour finir, un petit mot pour préciser que même si le protocole BitTorrent est parfaitement légal, tous les téléchargements eux, ne le sont pas. Merci donc de rester dans la légalité et de respecter les droits des auteurs, chanteurs, cinéastes, programmeurs, créateurs et autres pour qui le téléchargement illégal est une vraie plaie.