Seedbox
Ce chapitre décrit comment mettre en place une seedbox, afin de partager et télécharger des fichiers torrent.
seedboxSeedbox avec rtorrent
rtorrent est un client efficace et très léger. Il dispose d'une interface en console pour le contrôler, que certains préfèrent à l'interface web de transmission. En effet, seul un accès SSH est nécessaire pour l'utiliser.
rtorrentOn commence par installer l'excellent rtorrent :
# pkg_add rtorrent
Ajoutez ensuite un utilisateur _rtorrent dont l'unique tâche sera de faire tourner rtorrent (ce n'est pas obligé, mais j'aime bien séparer les processus 😊 ).
Nous pouvons maintenant nous connecter en tant qu'utilisateur _rtorrent :
# su _rtorrent
Nous allons créer les dossiers qui serviront à télécharger les torrents, ainsi qu'un dossier dans lequel tous les fichiers .torrent ajoutés seront directement pris en charge par rtorrent :
$ mkdir -p Telechargements/{download,session,torrents}
On crée maintenant le fichier ~/.rtorrent.rc. Vous pouvez copier l'exemple fourni avec le paquet :
$ cp /usr/local/share/examples/rtorrent ~/.rtorrent.rc
On modifie la configuration selon nos besoins. Seules les lignes ne commençant pas par # sont prises en comptes. Les autres correspondent souvent aux valeurs par défaut.
# Global upload and download rate in KiB. "0" for unlimited. download_rate = 0 upload_rate = 20 directory = ~/Telechargements/download session = ~/Telechargements/session # Ajoute ou supprime les fichiers torrents present schedule = watch_directory,5,5,load_start=~/Telechargements/torrents/*.torrent schedule = untied_directory,5,5,stop_untied=~/Telechargements/torrents/*.torrent # Pour utiliser les magnets, il est parfois necessaire d'ouvrir le port d'ecoute # en tcp seulement #port_range = 6890-6999 #port_random = no check_hash = yes use_udp_trackers = yes # Ces options permettent l'utilisation des magnets encryption = allow_incoming,try_outgoing,enable_retry # Important pour ne pas necessiter le besoin de trackers dht = auto # dht_port = 6881 peer_exchange = yes # Avertissement des chargements termines system.method.set_key = event.download.finished,notify_me,"execute=~/.rtorrent_mail.sh,$d.get_name=" # Ajout de noeuds dht si besoin après un délai : schedule2 = dht_node_1, 5, 0, "dht.add_node=router.utorrent.com:6881" schedule2 = dht_node_2, 5, 0, "dht.add_node=dht.transmissionbt.com:6881" schedule2 = dht_node_3, 5, 0, "dht.add_node=router.bitcomet.com:6881" schedule2 = dht_node_4, 5, 0, "dht.add_node=dht.aelitis.com:6881"
Afin d'être averti lorsqu'un téléchargement est terminé, on crée le script ~/.rtorrent_mail.sh :
#!/bin/sh echo "$(date) : $1 - Download completed." | mail -s "[rtorrent] - Download completed : $1" root
Notez que tous les fichiers .torrents qui seront déposés dans le dossier watch seront directement téléchargés par rtorrent. Si vous voulez ajouter un fichier torrent à partir de votre ordinateur habituel, vous pouvez utiliser un client SFTP ou la commande scp :
$ scp -p <port_ssh> _rtorrent@chezmoi.tld:/home/_rtorrent/Telechargements/watch
Reste à lancer rtorrent en arrière-plan à chaque démarrage du serveur. Revenez sur le compte root (ctrl-D) puis ajoutez la commande suivante dans le fichier /etc/rc.local :
/usr/bin/su _rtorrent -c "/usr/bin/tmux new -s rtorrent -d /usr/local/bin/rtorrent"
On utilise tmux installé par défaut sur OpenBSD pour envoyer rtorrent en arrière-plan.
tmuxSi vous souhaitez administrer rtorrent par la suite, connectez-vous en SSH avec l'utilisateur _rtorrent, et affichez rtorrent avec la commande tmux a -t rtorrent. Appuyez successivement sur "ctrl-b" puis la touche d pour vous détacher de rtorrent.
Pour ajouter un lien magnet, vous pouvez appuyer sur "backspace" (effacer) puis collez le lien magnet (Shift-Inser). Il semble que certains ont besoin d'ouvrir le port d'écoute configuré dans rtorrent (en tcp) afin d'utiliser les magnets sans trackers. Avec la configuration en exemple ci-dessus, ça devrait fonctionner dans problèmes (en tout cas, chez moi ça marche bien 😁).
Si vous ne vous souvenez plus des touches permettant de contrôler rtorrent, saisissez cette commande :
$ rtorrent -h Rakshasa's BitTorrent client version 0.9.6. All value pairs (f.ex rate and queue size) will be in the UP/DOWN order. Use the up/down/left/right arrow keys to move between screens. Usage: rtorrent [OPTIONS]... [FILE]... [URL]... -h Display this very helpful text -n Don't try to load ~/.rtorrent.rc on startup -b <a.b.c.d> Bind the listening socket to this IP -i <a.b.c.d> Change the IP that is sent to the tracker -p <int>-<int> Set port range for incoming connections -d <directory> Save torrents to this directory by default -s <directory> Set the session directory -o key=opt,... Set options, see 'rtorrent.rc' file Main view keys: backspace Add a torrent url or path ^s Start torrent ^d Stop torrent or delete a stopped torrent ^r Manually initiate hash checking ^q Initiate shutdown or skip shutdown process a,s,d,z,x,c Adjust upload throttle A,S,D,Z,X,C Adjust download throttle I Toggle whether torrent ignores ratio settings right View torrent Download view keys: spacebar Depends on the current view 1,2 Adjust max uploads 3,4,5,6 Adjust min/max connected peers t/T Query tracker for more peers / Force query * Snub peer right View files p View peer information o View trackers Report bugs to <sundell.software@gmail.com>.
Notez que ^s correspond à Ctrl-s. 😉
Seedbox avec transmission
Transmission se montre très efficace et devrait convenir à la plupart de vos besoins. Il dispose d'interfaces graphiques ainsi que d'une interface dans un navigateur, ce qui le rend très facile à contrôler.
TransmissionNous configurerons transmission de façon à télécharger les torrents dans le dossier /mnt/transmission. Adaptez les chemins du tutoriel selon vos besoins.
La commande habituelle permet de l'installer :
# pkg_add transmission
On va ensuite activer le service. On le démarre puis l'arrête aussitôt afin de créer les fichiers de configurations dont on aura besoin :
# rcctl enable transmission_daemon # rcctl start transmission_daemon # rcctl stop transmission_daemon
Nous allons créer des dossiers spécifiques afin d'enregistrer les téléchargements effectués par transmission et stocker les fichiers .torrent :
# mkdir -p /mnt/transmission/{downloads,incomplete,torrents}
Modifiez les propriétaires de ces répertoires afin d'en autoriser l'accès à transmission :
# chown -R _transmission:_transmission /mnt/transmission
Si vous souhaitez que d'autres utilisateurs puissent consulter ces répertoires, modifiez les permissions sur ces derniers :
# chmod a+rX /mnt/transmission
Afin de configurer transmission, éditez le fichier suivant :
/var/transmission/.config/transmission-daemon/settings.json
À l'intérieur, vous pourrez adapter la configuration selon vos besoins. Voici les lignes que j'ai modifiées :
"download-dir": "/mnt/transmission/downloads", "incomplete-dir": "/mnt/transmission/incomplete", "incomplete-dir-enabled": true, "peer-port-random-on-start": true,
Je vous propose d'ajouter les lignes suivantes afin que chaque fichier .torrent ajouté dans le dossier /mnt/transmission/torrents (par SFTP par exemple) soit automatiquement téléchargé par transmission.
"watch-dir": "/mnt/transmission/torrents", "watch-dir-enabled": true
Afin de recevoir un mail lorsque le téléchargement d'un torrent est terminé, ajoutez ces lignes :
"script-torrent-done-enabled": true, "script-torrent-done-filename": "/var/transmission/dl-done.sh",
Ce script situé à /var/transmission/dl-done.sh peut par exemple contenir ceci :
#!/bin/sh echo "$(date) : $TR_TORRENT_NAME - Download completed." | mail -s "[transmission] - Download completed : $TR_TORRENT_NAME" toto@example.com
N'oubliez pas de rendre ce dernier éxécutable :
# chmod +x /var/transmission/dl-done.sh
Une fois vos modifications terminées, rechargez la configuration de transmission avec la commande suivante :
# rcctl start transmission_daemon
Transmission dispose d'une interface web. Le plus simple afin d'y accéder est d'utiliser un tunnel SSH. À partir de l'ordinateur avec lequel vous souhaitez consulter transmission, lancez la commande suivante :
ssh -N -L 9999:127.0.0.1:9091 -p 22222 utilisateurssh@chezmoi.tld
Une fois identifié, vous pouvez ouvrir un navigateur à l'adresse http://localhost:9999 afin d'accéder à transmission :
