Seedbox Plex et Flood avec Docker pas à pas

Après le succès du premier opus "Créer sa seedbox avec Plex et Flood", nous allons maintenant passer au niveau supérieur en créant une seedbox sous Docker.

Comment va fonctionner notre seedbox ? C'est très simple, nous aurons deux containers, 1 Plex et 1 Flood.

Plex
plexinc/pms-docker
https://hub.docker.com/r/plexinc/pms-docker
Flood
wonderfall/rtorrent-flood
https://hub.docker.com/r/wonderfall/rtorrent-flood

Pour rappel, Plex est un serveur multimédia, Flood est une interface web de rtorrent.

Pré requis : vous devez installer Docker : documentation ici.

Création du Network

Nous allons anticiper la création future d'un reverse proxy sur le serveur ainsi que la fermeture des ports. Pour cela les IPs de nos containers doivent être fixes. Si on utilise le réseau "bridge" existant, nos containers auront une nouvelle IP à chaque redémarrage. Nous allons donc commencer par créer un nouveau réseau de type bridge.

$ docker network create \    
--driver=bridge \
  --subnet=172.18.0.0/16 \
  nomDeMonReseau

Nous pouvons maintenant créer nos containers et les associer à ce réseau tout en leur donnant une IP fixe. Cette IP sera par exemple 172.18.0.2 ou bien 172.18.0.254.
Modifier nomDeMonReseau par le com que vous souhaitez.
Attention : Si vous avez une erreur enlevez les \ en fin de ligne.

Création du container Flood

Comme vous le savez, Flood est une application en NodeJS permettant de gérer des torrents en utilisant l'API de rtorrent. Il existe une image avec les composants pré-installés, voici celle que nous allons utiliser : https://hub.docker.com/r/wonderfall/rtorrent-flood.

On créer le container "seedbox".

$ docker run --detach\
    --name seedbox \
    --restart always \
    --volume /home/seedbox/data:/data \
    --volume /home/seedbox/db:/flood-db \
    --env FLOOD_SECRET=verysecret \
    --tty \
    --net nomDeMonReseau \
--publish 3000:3000 \
--publish 49184:49184 \
    --ip 172.18.0.2 \
--restart always \
    wonderfall/rtorrent-flood:latest

Changez la variable d'environnement FLOOD_SECRET par une chaîne de texte aléatoire. N'oubliez pas de modifier le le nom de votre réseau crée préalablement.

Les arguments --volume, permettent de créer un lien entre un dossier sur votre serveur et un dossier dans le container. L'image rtorrent-flood met à disposition 2 volumes : /data qui est le dossier où sont stockés les fichiers sauvegardée et /flood-db où sont notamment stockés les torrents. J'ai décidé de placer ces dossiers dans /home/seedbox. Le dossier /data sera également partagé avec le container Plex que nous créeront ensuite.

Je vous invite à regarder le readme de cette image pour voir les différents paramètres que vous pouvez spécifier. Je pense notament aux ports, deux sont utilisés par flood : le 49184, en interne utilisé pour la communication entre flood et rtorrent, et le 3000, celui-ci permet d'accéder à l'interface web de flood. Vous l'aurez compris, dans le cas d'un reverse-proxy, vous devrez rediriger votre sous-domaine vers ce port.

Maintenant il faut démarrer le serveur NodeJS pour pouvoir accéder à flood.

docker exec -i -t seedbox /bin/sh

Grâce à cette commande, vous entrez dans le container seedbox pour y lancer des commandes. Démarrez le serveur :

$ apk add screen
$ cd /usr/flood
$ screen -R flood
$ npm start

Vous pouvez maintenant quitter le screen avec CTRL+A puis D. Puis quittez le container. Le screen permet de lancer une tâche en parallèle sans bloquer votre ligne de commande. Si jamais votre serveur redémarre, vous devrez ré effectuer ces commandes pour redémarrer flood. Je vous invite à voir plus loin pour créer un script de redémarrage automatique pour flood.

Vous pouvez maintenant accéder à Flood via adresse_ip_du_serveur:3000

Je vous invite à tester l'ajout d'un torrent :

Si vous souhaitez créer d'autres dossiers pour ranger vos téléchargement, vous devez le créer dans /home/seedbox/data.

Création du container Plex

Nous allons utiliser l'image https://hub.docker.com/r/plexinc/pms-docker. Tout d'abord, veuillez récupérer votre "claim token" Plex : https://www.plex.tv/claim.

$ docker run \
    -d \
    --name plex \
    -p 32400:32400/tcp \
    -p 3005:3005/tcp \
    -p 8324:8324/tcp \
    -p 32469:32469/tcp \
    -p 1900:1900/udp \
    -p 32410:32410/udp \
    -p 32412:32412/udp \
    -p 32413:32413/udp \
    -p 32414:32414/udp \
    -e TZ="Europe/Paris" \
    -e PLEX_CLAIM="claimToken" \
    -e ADVERTISE_IP="http://IP_DU_SERVEUR:32400/" \
    -v /home/plex/database:/config \
    -v /home/plex/transcode/temp:/transcode \
    -v /home/seedbox/data:/data \
    --net nomDeMonReseau \
    --ip 172.18.0.3 \
    --restart always \     plexinc/pms-docker

Modifiez les variables en rouge pour correspondre à votre utilisation.

Si vous n'avez pas fait de bêtises, Plex devrait être accessible via adresse_ip_du_serveur:32400 ! Si ça n'est pas encore le cas, attendez quelques minutes le temps que l'installation se termine.

NB : Si vous ne voyez pas votre serveur dans la liste c'est qu'il n'est pas configuré pour un accès distant. Pour cela vous devez vous connecter via un tunnel SSH pour configurer cet accès.

Sur linux (ou git bash sur windows) :

ssh adresse_ip_du_serveur -L 8888:localhost:32400

Vous avez maintenant accès à Plex via http://localhost:8888/web. Activez l'accès distant :

Si tout est ok vous devez pouvoir accéder à Plex via votre.adresse.ip:32400/web !

N'hésitez pas à commenter si cet article vous à aidé dans votre installation ou si vous avez un problème !

Merci d'avoir suivi cet article jusqu'au bout !



Commentaires