Seedbox – Installation et mise en place – Partie 1 (Docker)

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)

dockerdownloadjellyfinqbittorentseedboxtorrentsupload