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/