Créer une Seedbox sur Raspberry Pi avec Transmission

Procédure pas à pas pour créer une Seedbox avec un Raspberry Pi, un disque dur USB et le logiciel Transmission.

Formater et monter le disque dur USB

Une fois le disque dur USB connecté au Raspberry, utiliser la commande suivante pour lister tous les disques et repérer le bon volume. 

sudo fdisk -l

Exemple de sortie de la commande fdisk -l

Disque /dev/sdb : 298,1 GiB, 320072933376 octets, 625142448 secteurs
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Type d'étiquette de disque : dos
Identifiant de disque : 0xf381da99
Périphérique Amorçage Début Fin Secteurs Taille Id Type
/dev/sdb1 2048 625119231 625117184 298,1G 7 HPFS/NTFS/exFAT

Dans ce cas le disque USB est /dev/sdb, sa première partition est /dev/sdb1 et son système de fichier NTFS.

Pour créer ou recréer une partition sur le disque /dev/sdb on utilise l’outil fdisk :

sudo fdisk /dev/sdb

Une fois fdisk lancé, commande ‘p’ pour lister les partitions du disque sélectionné et être sur qu’il s’agit du bon disque.

Exemple :

Commande (m pour l'aide) : p
Disque /dev/sdb : 298,1 GiB, 320072933376 octets, 625142448 secteurs
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Type d'étiquette de disque : dos
Identifiant de disque : 0xf381da99
Périphérique Amorçage Début Fin Secteurs Taille Id Type
/dev/sdb1 2048 625119231 625117184 298,1G 7 HPFS/NTFS/exFAT

Pour supprimer la partition, commande ‘d‘ :

Commande (m pour l'aide) : d
Partition 1 sélectionnée
La partition 1 a été supprimée.

Créer une nouvelle partition avec la commande ‘n‘. Choisir partition primaire ‘p‘, puis numéro de partition ‘1‘ et valider deux fois avec Entrer pour sélectionner le début et la fin par défaut de la partition. 

Commande (m pour l'aide) : n
Type de partition
   p   primaire (0 primaire, 0 étendue, 4 libre)
   e   étendue (conteneur pour partitions logiques)
Sélectionnez (p par défaut) : p
Numéro de partition (1-4, 1 par défaut) : 1
Premier secteur (2048-625142447, 2048 par défaut) :
Dernier secteur, +secteurs ou +taille{K,M,G,T,P} (2048-625142447, 625142447 par défaut) :

Une nouvelle partition 1 de type « Linux » et de taille 298,1 GiB a été créée.

Pour écrire les modifications sur le disque et quitter l’utilitaire fdisk, il faut utiliser la commande ‘w

Pour finir, il faut formater la partition en EXT4 :

sudo mkfs.ext4 -b 4096 /dev/sdb1

Pour monter la partition sur le Raspberry et pouvoir l’utiliser, il faut commencer par créer un point de montage dans /media.

sudo mkdir /media/disqueUSB

Pour monter la partition automatiquement au démarrage grâce à fstab, il faut connaître l’UUID de la partition. Lancer la commande :

sudo blkid /dev/sdb1

On obtient quelque chose comme

/dev/sdb1: LABEL="FreeAgent" UUID="8E7C36397C361C81" TYPE="ext4" PARTUUID="f381da99-01"

Ensuite éditer le fichier /etc/fstab

sudo nano /etc/fstab

Ajouter les lignes ci-dessous à la fin du fichier, renseigner l’UUID sans les guillemets. 

# disque usb /dev/sdb1
UUID=8E7C36397C361C81 /media/disqueUSB/ ext4    defaults    0    2

Le répertoire /dev/disk/by-uuid/ qui recense les disques par UUID n’est mis à jour que pendant le démarrage. Pour le mettre à jour manuellement :

sudo udevadm trigger

Monter la partition :

sudo mount /media/disqueUSB

Pour vérifier si la partition est bien montée :

mount | grep /media/

Retour de la commande :

/dev/sdb1 on /media/disqueUSB type fuseblk (rw,relatime,user_id=0,group_id=0,default_permissions,allow_other,blksize=4096)

La partition sdb1 est bien montée dans /media/disqueUSB. Elle sera montée automatiquement à chaque redémarrage. 

Changer le propriétaire du disque par l’utilisateur pi et régler les autorisations de lecture / écriture :

sudo chown pi:pi /media/disqueUSB
sudo chmod 755 /media/disqueUSB

Installer et configurer Transmission

Installer le daemon Transmission :

sudo apt-get install transmission-daemon

Créer un répertoire Telechargements dans /media/disqueUSB

mkdir /media/disqueUSB/Telechargements
sudo chown debian-transmission:debian-transmission /media/disqueUSB/Telechargements
sudo chmod 755 /media/disqueUSB/Telechargements

Stopper le daemon avant de modifier le fichier de configuration. 

sudo service transmission-daemon stop

Le fichier de configuration se trouve dans /etc/transmission-daemon, à modifier pour paramétrer le dossier des téléchargements et l’accès à l’interface web.

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

Chercher et modifier les lignes suivantes :

"download-dir": "/media/disqueUSB/Telechargements",
"port-forwarding-enabled": true,
"rpc-password": "mot_de_passe",
"rpc-username": "nom_d_utilisateur",
"rpc-whitelist-enabled": false,
"umask": 0,

Démarrer le daemon Transmission

sudo service transmission-daemon start

L’interface Web de Transmission devrait être accessible dans un navigateur sur le réseau local à l’adresse http://IP_RASPBERRY:9091.

Se connecter avec le username et le password définis dans le fichier de configuration.

Partage réseau avec Samba

Le logiciel Samba est un outil permettant de partager des dossiers et des imprimantes à travers un réseau local. Il permet de partager et d’accéder aux ressources d’autres ordinateurs fonctionnant sous Windows et GNU/Linux. Le but ici est de partager sur le réseau local le contenu du disque dur USB.

Installer samba :

sudo apt-get install samba

Le fichier de configuration de samba se trouve dans /etc/samba/. Ouvrir le fichier de configuration avec nano :

sudo nano /etc/samba/smb.conf

Ajouter la définition de partage suivante à la fin du fichier :

[disqueUSB]
   comment = Disque dur USB
   path = /media/disqueUSB
   browseable = yes
   guest ok = yes
   writeable = yes
   public = yes
   security = share
   create mask = 0777
   directory mask = 0777

Redémarrer le service samba :

sudo service smbd restart

Le disque dur monté dans /media/disqueUSB devrait être accessible sur le réseau. 

Ouverture et redirection des ports du routeur

Afin que Transmission fonctionne correctement et que l’interface Web soit accessible via internet, les port 51413 et 9091 doivent être ouverts et redirigés dans le routeur.

Sur une Livebox, ouvrir l’interface Web et se connecter, aller dans l’onglet « configuration avancée » puis dans l’onglet « DHCP« . Dans la section « Baux DHCP statiques« , choisir le nom du Raspberry et l’ajouter dans la liste pour fixer son adresse ip locale.

Toujours dans l’onglet « configuration avancée » puis dans l’onglet « NAT/PAT« , ajouter une règle de redirection, nom du service « Transmission« , port interne et externe 51413, protocole « les deux » et choisir le Raspberry dans la liste des appareils.

Ajouter une seconde règle, nom du service « Client Transmission« , port interne et externe 9091, protocole « les deux » et choisir le Raspberry dans la liste des appareils.

L’interface Web de Transmission devrait être accessible à partir d’une connexion 4G à l’adresse http://IP_BOX_INTERNET:9091.

Mise à jour DNS dynamique avec ddclient

ddclient permet d’automatiser la mise à jour d’une adresse IP dynamique reliée à un nom de domaine.

S’inscrire sur le service https://www.noip.com. Dans le dashboard, ajouter un hostname en choisissant l’un des domaines proposés. Exemple : choukahost.ddns.net

Installer ddclient et passer la configuration rapidement en choisissant n’importe quoi. 

sudo apt-get install ddclient

Éditer le fichier de configuration avec nano.

sudo nano /etc/ddclient.conf

Exemple de fichier de configuration :

daemon=600            # check every 600 seconds
protocol=noip
use=web, web=checkip.dyndns.com/, web-skip='IP Address'
server=dynupdate.no-ip.com
login=username
password='motdepasse'
choukahost.ddns.net

Redémarrer le daemon ddclient. 

sudo service ddclient restart

Pour faire un essai, modifier l’IP du hostname sur noip.com et mettre 0.0.0.0 puis redémarrer le daemon ddclient. L’adresse IP devrait être mise à jour automatiquement.

L’interface Web de Transmission devrait être accessible à l’adresse suivante http://choukahost.ddns.net:9091 depuis n’importe quelle connexion internet. Avec une Livebox, l’adresse ne fonctionne pas en local. 

Clients Linux, Windows et Android

TransGUI – Transmission Remote GUI :
Pour Windows et Linux
https://github.com/transmission-remote-gui/transgui/releases

Gearshift :
Pour Android
https://github.com/urandom/gearshift/releases

Transmission Remote :
Pour Android
https://play.google.com/store/apps/details?id=net.yupol.transmissionremote.app

Transmission easy client :
Extension Chrome
https://chrome.google.com/webstore/detail/transmission-easy-client/cmkphjiphbjkffbcbnjiaidnjhahnned

Transmission easy client :
Extension Firefox
https://addons.mozilla.org/fr/firefox/addon/transmission-easy-client/

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *