Tout d’abord expliquons précisément ce qu’est une seedbox. « seedbox » est un mot anglais qui désigne un serveur dédié à la réception et à l’envoi de fichiers en utilisant le protocole peer to peer et donc en utilisant des torrent.
Généralement, l’installation est réalisée sur un système autonome qui reste allumé 24/7 (notamment pour des raisons de ratio chez certain indexeurs). Nous pourrions réaliser l’installation sur une veille machine sur notre réseau local, mais ce n’est pas le top en matière de consommation électrique, et surtout c’est notre IP qui serait exposée (et utilisée pour le peer to peer).
Nous pencherons donc pour la location et l’utilisation d’un serveur chez un hébergeur.
Niveau performance un VPS de la gamme OVH pourrait suffire, mais si nous souhaitons réaliser une médiathèque conséquente il vas nous falloir de l’espace de stockage et c’est donc les offres Kimsufi qui paraissent plus intéressantes (sauf si vous ne souhaitez pas conserver sur votre serveur vos téléchargement bien sûr).
L’utilisation de Docker
Docker permet en quelques commandes d’installer et d’exécuter tous les outils dont vous aurez besoin. Chaque outil est isolé et possède son propre container Docker. Chaque container contient toutes les dépendances (librairies, démons, configurations, etc.) nécessaires à son exécution sans interférer avec les autres outils ou d’autres services installés sur votre serveur.
Pour en savoir plus sur l’utilisation de Docker vous pouvez visionnez cette vidéo.
Liste des outils utilisés pour la seedbox
Afin de vous constituer une véritable seedbox le plus automatisée possible, voici la liste des outils que nous allons installer :
- Un client de torrent (ici QBitorrent)
- Les Raddars à contenus (Sonnar, Radarr,Lidarr)
- Un agrégateurs d’indexeur (vos sites de torrents) ici Jackett
- Un lecteur multimédia pour lire vos contenus (ici jellyfin)
Installations
Prérequis
- Vous devez disposer d’Ubuntu 20.04 en version Desktop, Server
- Votre utilisateur doit avoir accès à sudo.
- Les paquets curl et software-properties-common doivent être installés sur votre système. Dans le doute, tapez la commande suivante :
sudo apt-get install -y curl software-properties-common
- Vos dépôts APT doivent être à jour. Dans le doute, tapez la commande suivante :
sudo apt-get update
Installation de Docker
Installez Docker :
sudo apt-get install -y docker.io
Vérifiez que Docker est correctement installé avec la commande :
docker -v
La commande doit retourner la version installée de Docker.
Passons à présent à Docker Compose (un outil pour déployer des containers depuis un ficher YAML).
Téléchargez Docker Compose avec la commande suivante en modifiant la version si besoin avec la dernière release du repository officiel de Docker :
sudo curl -L https://github.com/docker/compose/releases/download/1.29.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
Ajoutez les droits d’exécution sur le binaire de Docker Compose :
sudo chmod +x /usr/local/bin/docker-compose
Vérifiez l’installation de Docker Compose avec la commande :
docker-compose -v
Si l’installation s’est correctement effectuée, cette commande doit vous renvoyer la version de Docker Compose.
Utilisateur et droits
Nous allons créer un utilisateur qui aura pour rôle de gérer les containers docker et aura accès à leur volumes.
Créer un utilisateur (avec le nom de votre choix), ici media
sudo adduser media
Ajouter le au groupe docker
sudo adduser media docker
Nous allons maintenant créer une arborescence de dossier pour stocker nos données
sudo mkdir -p /data/torrents /data/movies /data/music /data/tv /data/downloads
Vous l’aurez compris, chaque bibliothèque aura son répertoire dédié.
Ajoutons les droits sur ses dossiers à notre utilisateur,
sudo chown -R media:media /data/torrents /data/movies /data/music /data/tv /data/downloads
Installation des outils seedbox
Nous allons installer les différents outils à l’aide d’un fichier YAML appelé docker-compose.yml.
Celui-ci sera stocker à la racine de l’utilisateur précédemment créer (ici media).
Il sera aussi accompagner d’un fichier .env qui servira à stocker les valeurs communes à tous nos containers.
Connectez-vous sous l’utilisateur media
su media
Déplacez-vous dans le répertoire personnel de cet utilisateur
cd
Fichier de variables d’environnement
Créez le fichier /home/media/.env et modifiez les valeurs en fonction de votre configuration
PUID=1001
PGID=1001
PATH_MEDIA=/data
- PUID et GUID : ces deux variables représentent respectivement l’identifiant et le groupe de votre utilisateur media. Ces valeurs peuvent être différentes d’un système à l’autre. Tapez la commande suivante pour obtenir le PUID et GUID de votre utilisateur media
id media
- PATH_MEDIA : chemin absolu du dossier parent des dossiers /data/torrents, /data/movies, /data/music et /data/tv où seront stockés vos médias.
Fichier docker-compose.yml
Ce fichier vas regrouper la configuration de l’ensembles de nos containers, pour vous le procurer vous pouvez le créer manuellement puis l’éditer pour vous conformer à la configuration que je vous propose Sur cette page Github.
Mais vu que le tout est déjà sur Github, n’hésiter pas à faire un Git Clone directement dans le répertoire de votre utilisateur (media).
git clone https://github.com/vernayloic/seedbox.git
Au même emplacement que le fichier docker-compose.yml entrer cette commande pour lancer la création des containers :
docker-compose up -d
La commande vas rechercher un fichier de configuration dans l’emplacement courant et l’exécuter, n’oublier pas le « -d » pour vous détacher de l’exécution de vos containers une fois lancés.
Utilisation de Portainer (facultatif)
Si vous avez choisis d’utiliser mon fichier docker-compose.yml, j’ai inclus une interface de gestion des containers en interface web ; Portainer, il ne vous reste plus qu’a vous connecter sur l’IP de votre machine sur le port 9000 pour voir le résultat de votre travail jusqu’ici.
Configuration des éléments
Les différents containers de votre seedbox sont à présent déployés et utilisables. Il est grand temps de passer à la configuration de chacun d’entre eux pour faire fonctionner tout ce petit monde en parfaite harmonie.
Configurations et paramétrages des différents services (à paraitre)