• Ressources Scripts
  • [Script-Ansible] Install Seedbox docker avec rclone-plexdrive5-unionfs-mergerfs

Bonjour à tous

Pour mes besoins personnels je me suis fait un script pour restaurer rapidement ma Seedbox en cas de crash. Du coup je vous le fais partager.

Avant d'aller plus loin, je souhaite remercier @xavier pour sa collaboration de tous les instants, ses conseils sur la manière d'organiser le script, le partage de ses connaissances et de son serveur de test.

Un grand merci également à @Joris94 (merci également pour le prêt de ton serveur) et @Cognotte qui se sont proposés pour tester le script et enrichir le wiki

Je me suis appuyé sur le travail de @martinbouillaud que je remercie au passage de son accord

Cette Seedbox est complètement orientée rclone crypté, plexdrive et unionfs/mergerfs, et utilise des outils tels que plex_autoscan cloudplow et plex_dupefinder. Niveau appli, pour l'instant j'ai intégré plex, emby, radarr, watcher, medusa, sonarr, rtorrent, jackett, portainer, watchtower, fail2ban, flood, nextcloud, pyload, subsonic premium, traefik. La liste n'est pas exhaustive, du coup il y aura probablement des rajouts ou des modifs.

Vous trouverez un support complet à cette adresse puisque mon script reprend l'essentiel des outils utilisés par cloudbox/PGBlitz. J'ai voulu garder l'essentiel de ce que proposent Cloudbox ou encore PGBlitz qui selon moi ont un coté usine à gaz et pas forcement abordable par l'utilisateur débutant.

Il est également possible d'installer la Seedbox sans rclone/plexdrivre. une version classique est proposée.

Installation:

apt update && apt upgrade -y
apt install git
git clone https://github.com/laster13/patxav.git /opt/seedbox-compose
cd /opt/seedbox-compose
./seedbox.sh

Le script est testé fonctionnel sur Ubuntu 18.04 TLS et Debian 10 Buster

Installation et wiki en cours d'écriture
https://github.com/laster13/patxav/wiki

Toute proposition d'amélioration est la bienvenue
https://discord.gg/v5dZHB5

    moi qui vais rendre mon serveur chez online pour hetzner sera l'occasion d'essayer ton script, merci

    étant débutant j'ai du mal avec ton script pourrai tu détailler un peu plus sa mise en oeuvre?
    merci.

    À la base ce script s'adresse aux personnes qui ont déjà une expérience de stockage sur Google drive en utilisant rclone, plexdrive et unionfs. Est ce que tu as un compte illimité gdrive ?

    non je n'ai pas de compte illimité google drive par contre je voulais essayé ton script car j'ai essayé d'installer cloudbox mais je bloc a un moment lors de l’édition de Ansible vault je n'arrive pas a quitter en sauvegardant une fois l'édition terminée.

    Que ce soit Cloudbox, Plexguide ou mon script, ils n'ont d'intérêts que si tu souhaites stocker tes media sur un compte Gdrive illimité. Du coup pour ton test tu utilises quoi comme espace de stockage .. si tu peux me donner plus de précisions sur ce que tu souhaites faire.

    pour faire simple j'aimerai monter une seedbox entièrement en docker je ne pensait pas qu'il fallait avoir un compte gdrive illimité.

      XxS3BxX Il n'y a pas besoin d'un gdrive illimité, mais comme @laster13 a dit, son script, celui de cloudbox et plexguide n'ont d'utiliter que si tu utilises un compte gdrive illimité. Si tu en as pas et n'en veut pas, il y a d'autres scripts pour monter une seedbox entièrement dockeriser. Tu peux chercher du côté de docker-compose + l'application que tu veux installer, et traefik.

      Merci laster13, je préfère mon architecture de dossier, mais merci pour la découverte de uninonfs_cleaner. Je vais me pencher sur plex_autoscan, mais ça m'a l'air un poil plus complexe.

        zorgade merci zorgade je vais d'abord commencé par me documenter sur docker car je l'avoue j'ai quelques trains de retards encore merci de vos réponses à tous les deux.

        Tu peux par exemple t'orienter vers le post de @zer qui te permettra très rapidement de monter une Seedbox docker, en quelques minutes. Par contre je te recommande de potasser le sujet pour au moins comprendre ce que tu mets en place sinon ca n'a guère d'intérêt.
        https://mondedie.fr/d/10278-docker-recette-seedbox-for-dummies-emby-medusa-watcher

        @zorgade Si tu as quelques minutes pour me décrire ton architecture perso, ca m'intéresse😉

        C'est surtout la structure des dossiers qui diffèrent, avec plexdrive et rclone, il y en a tellement que je préfère utiliser le mien vu que je le connais, entre le dossier google de rclone, celui de plexdrive chiffré, celui de plexdrive déchiffré avec rclone, le dossier Pre, et le Union, ça fait pas mal mine de rien. J'ai tout mis dans le dossier home de l'utilisateur dans un dossier Media, c'est suite à mon problème de ce mois avec le serveur que j'ai déplacé dans /home, ça m'évite de réflechir où c'est '.
        Sinon, j'ai tout dockerisé, sauf rclone-plexdrive-filebot, je préfère quand même avoir un contrôle physique et non émulé de ces applications, juste une préférence.
        J'ai deux serveurs plex, un sur la seedbox pour moi et un autre pour la famille à ma compagne. J'utilise filebot pour rappatrier les fichiers de la seedbox chez moi "au cas où" il y a un souci avec Gsuite par la suite, comme c'était le cas avec Amazon.
        Sonarr et Radarr sont connectés à Plex et update la bibliothèque dans Union, ça m'évite d'utiliser plex_autoscan. Ca marche bien, les fichiers sont mis à jour par plex automatiquement. Je sasi juste pas si ça fait un scan complet de la bibliothèque ou juste de la série. Dans tous les cas, des gens avec 20TB font des scans complets tous les 15min et ils n'ont jamais eu de problèmes 🙂
        D'ailleurs je me demande si on ne peut pas tout simplement activer la mise à jour de plex lorsqu'il découvre une nouvelle série (ça marche si les fichiers sont sur le disque, mais pas si c'est un disque monté). Vu qu'au tout début, Suitarr copie les fichiers dans Union qui sont en fait dans le dossier Pre, sur le disque donc. Ca fonctionne peut-être, je n'ai pas testé.
        Et aussi, j'ai pas mal d'application, et en ajoute/supprime aussi beaucoup, et ne pas utiliser de scripts, ça permet de connaitre la gestion des ports utilisés/libres. Par exemple, j'ai installé hier Airsonic, mais soit j'ai mal rédigé le fichier compose, soit il est lent...

        Il se passe quoi si on est en train de regarder un fichier après que unionfs_cleaner commence l'upload? J'ai vu que tu as mis à 1GB la taille du dossier et le check toutes les minutes.

          hello

          pas de risque de voir son compte illimité disparaître du jour au lendemain ?

            zorgade De ce qu'il me semble avoir lu est

            zorgade Sonarr et Radarr sont connectés à Plex et update la bibliothèque dans Union, ça m'évite d'utiliser plex_autoscan. Ca marche bien, les fichiers sont mis à jour par plex automatiquement. Je sasi juste pas si ça fait un scan complet de la bibliothèque ou juste de la série. Dans tous les cas, des gens avec 20TB font des scans complets tous les 15min et ils n'ont jamais eu de problèmes 🙂

            De mémoire je crois que concernant Sonarr, Plex scanne uniquement la série concernée, par contre pour radarr il semble que ce soit la bibliothèque entière qui soit scannée, c'est un vague souvenir de ce que j'ai pu lire mais je peux me tromper, à vérifier.

            Scanner une bibliothèque de 20T, juste pour rajouter un média, reste pour moi risqué, quand bien même certain le fasse sans problèmes. En considérant qu'il aient plusieurs téléchargements à des heures différentes de la journée, cela signifie que Plex peut être amené à scanner tous ces Tera à plusieurs reprises. Perso je ne serai pas serein 😋 mais bon pourquoi pas.

            Plex_autoscan a le mérite d'exister et fonctionne super bien, alors pourquoi ne pas l'utiliser.

            zorgade Il se passe quoi si on est en train de regarder un fichier après que unionfs_cleaner commence l'upload? J'ai vu que tu as mis à 1GB la taille du dossier et le check toutes les minutes.

            Si tu lances le media avant que unionfs_cleaner démarre , le fichier est mis en stand bye par unionfs_cleaner. même chose si le fichier est en cours de postprocess par radarr ou sonarr ou que le fichier est en cours de scan par plex_autoscan.

            A l'inverse si le fichier est en cours d'upload par unionfs_cleaner je ne sais pas s'il reste lisible par plex mais c'est pareil si tu lances un rclone move classique je pense.

            pour Unionfs_cleaner J'ai mis 1mn et 1Go juste pour les tests de manière à vérifier rapidement que cela fonctionne, par défault @l3uddz a mis 30mn et 450go, tu règles comme tu veux. Pour plex_autoscan le déclenchement par défault est 180 mn, pareil tu mets ce que tu veux.

            Cognotte C'est déja arrivé pour des comptes achetés sur ebay (l'année dernière) par contre les comptes officiels n'ont pas été impactés. Après oui le risque est présent, l'idée étant de multiplier les sauvegardes amazon ou autre mais ça fini par couter. Ces données restent de toute façon volatiles, en ce qui me concerne je l'accepte et j'en profite tant que ça fonctionne.

            @zorgade, j'ai compris que ta structure est personnalisée et complexe en mme temps, par contre mon script te permet de tout mettre également dans le dossier home rclone en clair, crypté, union et pre. tu peux meme utiliser des sous dossiers.. juste pour infos 🙃

            16 jours plus tard
            • [supprimé]

            • Modifié

            Salut, ayant voulu essayer ton script et n'ayant pas été tourner vers plexdrive mais par rclone cache je suis bloqué à des étapes
            Il faut lancer le script en root? Pas obligé d'utiliser un utilisateur?
            Pour la config du docker-compose, je ne sais pas quoi mettre pour ces étapes:

            Remote crypté, doit pointer vers /home/plexdrive dans votre fichier rclone.conf (Modifier le fichier rclone.conf en conséquence) :
            Remote crypté dans rclone.conf, celui qui est solicité pour les transferts:

            Je ne sais pas quoi mettre vu que je n'utilise pas plexdrive.
            Voici mon fichier rclone.conf (y a des remotes qui servent à rien) :

            Pour l'organisation des dossiers en local j'ai pas trop compris, sur mon drive la structure est la suivante:
            Un dossier 'Medias' (nom en clair) avec comme sous-dossiers Animes, Shows, Movies (noms des dossiers cryptés)
            C'est par rapport à cette explication que j'avais pas compris:

            exemple: Films ou Media/Films (sans "/" devant Media) et sans ACCENTS

            Merci beaucoup!

            Bonjour,

            Oui tu lances le script en root
            Voila à quoi doit ressembler ton rclone.conf

            [gdrive]
            type = drive
            token = {"access_token":"ya29.Glw9BnGvfv1Wr_lcILNhDc8rZXMr82dyGwycf7aQ_C-X55KDcQrQqW4zJ-qzuNuZAAQBqaikwGP_o63NiJHVqcAORdwxOUB6c9wFYehwfP7Mr8Ei5Ie_PiZQSIVLCQ","token_type":"Bearer","refresh_token":"1/3YslciiODxqP34ivoswKdYmL420642mjawIkn95bzBAxYbBl5pfIT_WGc139SZiT","expiry":"2018-10-21T23:13:33.801063865+02:00"}
            client_id = 
            client_secret = 
            
            [gcrypt]
            type = crypt
            remote = gdrive:Medias
            filename_encryption = standard
            directory_name_encryption = true
            password = XXXX
            password2 = XXXX
            
            [google]
            type = crypt
            remote = /home/plexdrive/Medias
            filename_encryption = standard
            directory_name_encryption = true
            password = XXXX
            password2 = XXXX

            Essaye cette config en sauvegardant au préalable ton ancien rclone.conf. Tu fais un simple copier/coller de mon exemple dans ton fichier. Avant de poursuivre plus loin, vérifie que ce rclone.conf te donne bien accès a tes données.

            Je t'invite pour ta compréhension à consulter l'article de @Aerya sur la création de remote crypté
            https://upandclear.org/2016/11/16/rclone-stockage-chiffre-amazon-cloud-drive-pour-embyplexkodicloud/
            En considérant que la version actuelle rclone diffère de celle que @Aerya a utlisé mais dans l'esprit ca reste pareil.

            Je me suis complètement inspiré de son article pour mon script notamment la config rclone.conf et les dossiers utilisés
            https://upandclear.org/2017/01/19/rclone-utiliser-unionfs-fuse-pour-permettre-a-couchpotato-et-sickrage-de-lireecrire-sur-un-cloud-amazon/

            Dans cet exemple :
            - RemotePath = google:/
            - RemoteLocal = gcrypt:/ (c'est ce remote qui sera utilisé pour rclone move par unionfs_cleaner)

            Donc vu ton organisation en Local, lorsque le script te demande de définir tes dossiers tu tapes Animes, Shows, Movies. Appuie sur Entrer après chaque saisie de dossier.

            Quoiqu'il en soit si tu veux recommencer le script, tu supprimes simplement les containers avec
            docker-compose rm -fs plexdrive torrent ... en te posistionnant dans /mnt
            Et tu supprimes également les volumes créés précédemment.

            Apres on voit pour la config de plexdrive, commence deja par ca 😉

            Je n'ai pas discord 😗 , mais je reste dispo

              • [supprimé]

              laster13 Merci pour ton aide, pour la configuration de rclone quand je copie colle le fichier conf j'ai plein de messages qui apparaissent:
              capture

              Du coup je ne peux pas lancer les applications vu que rclone n'est pas monté

              Tu as lancé la config rclone avant de configurer le docker-compose ? si c est le cas le dossier rclone n'etait pas crée. Soit tu procèdes dans l'ordre du script soit tu crees le chemin du dossier rclone
              mkdir -p /mnt/docker/plexdrive/config/.config/rclone et tu colles ton rclone.conf dedans.

              Je modifierai le script de manière a faire face a cette éventualité bien que la logique serait d'abord de commencer par le choix 2 du menu principal

                • [supprimé]

                laster13 Justement j'ai fais étape par étape même à la configuration du docker-compose j'ai eu le message comme quoi tout c'était bien déroulé.
                En sortant du script et en tapant juste docker il dit que la command docker n'existe pas.
                J'ai bien créer le chemin pour le rclone.conf:image

                2

                Je te propose de reprendre choix 1 menu principal pour l installation Docker qui visiblement ne s est pas déroulé correctement.

                Si message d erreur tu peux les poster?

                Ce que tu me montres sur ton screen, c est qu il n'a pas trouvé de fichier rclone.conf dans '/root/.config/rclone' donc rien de forcément anormal si tu n avais pas d installation rclone antérieure, le script recherche uniquement dans '/root/.config/rclone' pour le choix 1 mais il ne vérifie pas effectivement que tu as un rclone.conf déjà présent dans /mnt/Docker/plexdrive/config/.config/rclone.
                Le déroulé logique du script est d abord de créer le docker-compose, le dossier rclone est créé a ce moment la et ensuite faire la config rclone

                Après ton expérience me servira pour améliorer la gestion des erreurs😉

                  Si tu veux on peut passer sur le Tchat.