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

Slt, oui un dossier par utilisateur dans le home.

Salut,

Merci pour ton travail.

Par contre filebot ne s'installe pas. Peut-être du fait que l'image de @xataz est conçue pour Alpine Linux et que du coup il arrive pas à installer les dépendances Java et ne fait du coup plus rien sur la partie filebot ?

Salut

J'ai un peu bossé sur le script cet aprem, tu as du être bloqué au niveau ansible, si c'est la cas ca devrait être bon maintenant. Concernant filebot, il est intégré dans l image docker de @xataz donc l'environnement java est bien en place , mais dans le container. Quoiqu'il en soit filebot fonctionne.

    7 jours plus tard

    Bonjour,

    Comme j'ai pu l'expliquer dans d'autres posts l'utilisation de rutorrent docker en overlay (comme me l'expliquait @xataz dans un autre post) me provoquait des iowait en pagaille jusqu'à faire monter l indicateur CPU de rutorrent à 100% ainsi qu'une explosion du load average montant parfois jusqu'à 12 voir plus avant de paralyser complètement le système.

    Je pense avoir testé pas mal de possibilités et à chaque fois sur un serveur fraichement formaté. Du coup j'ai testé l'image de @xataz, celle de linuxserver, parfois ca donne l 'impression de tenir mais des qu on charge rutorrent ca finit par exploser.

    En creusant un peu notamment en me servant d outils comme iotop ou glances j'ai pu mesurer, détecter les applis responsables et donc celle avec le plus d'iowait soit rutorrent. Des processus comme [kworker/u8:1] et [jbd2/xvda1-8] provoquaient des poussées de iowait et bloquaient le processeur à 100%. Ce sont des processus directement liés au kernel ce qui me conforte dans l'idée que soit Debian n'est pas top avec docker, soit c'est moi qui manque de connaissances pour régler le problème (ce qui est fort probable 🙂 ) ou bien peu être des modif à faire au niveau du kernel.

    Je me suis demandé comment faisait cloubox ou bien même PGBlitz pour contourner le problème, et j'ai compris pourquoi il avait choisi ubuntu car là par miracle plus d iowait.

    Du coup j'en viens au sujet principal du post qui concerne mon script pour vous informer d'une mise à jour radicale en utilisant l'organisation de cloudbox/PGBlitz et au passage (je sais c est pas beau) je me suis fortement imprégné de leur script d'installation avec Ansible.

    Mission accomplie puisque il n'ya plus aucune montée en charge avec cette version. En attendant d utiliser Btrfs au lieu d'overlay pour docker.

    Toujours en quête de testeurs

    Merci de m'avoir lu

      Bonsoir,

      Effectivement dans mon post précédent j explique les raisons pour lesquelles je ne maintiendrai pas ce script sous debian, à moins que je n' arrive a trouver une solution pour ne plus avoir d iowait.

      On est un groupe a avoir testé sous debian, tous avec les mêmes problèmes de montée en charge. Tous sont passés sur Ubuntu et s'accordent unanimement a dire que c est plus le même serveur.

      5 jours plus tard

      Bonjour,
      j'essaye d'installer ton script sur un petit VPS Faut-il obligatoirement avoir un nom de domaine?

      Merci

      Bonjour,

      Tu as des noms de domaine à 0.99 euros la 1ere année chez gandi que tu n'es pas obligé de renouveler. Pour des tests c'est plutôt pas mal. Par contre pour la plupart, pas de DNSSEC.

      Est-ce qu'il y a un moyen de le changer par après?

      Oui en mettant un peu les mains dans les docker-compose, à condition d'avoir quelques notions de docker. En tout cas cela ne nécessite pas de réinstallation.

      5 jours plus tard

      Bonjour,

      Quelques mises à jour

      1) traktarr
      asciicast

      2) Une sauvegarde de la seedbox complète avec toutes les config sonarr, radarr, plex et sa base de donnée, etc .. avec l utilitaire pigz qui permet de créer une archive en exploitant la vitesse maximale des cores du processeur ce qui accélère considérablement le processus. Par ailleurs l'archive est ensuite envoyée sur le drive cryptée.
      Pour exemple une archive de 2 gigas + lenvoie sur le drive prend 5 mn.

      3) restauration

      La restauration reinstalle completement la seedbox, rclone plexdrive unionfs et tout le reste

      4) Réglage du processeur (piqué sur PGBlitz, pas de mérite


      Permet d'optimiser les cores processeur

      Lors de ma prochaine migration de serveur, je vais définitivement utiliser ton script 😃

      On est un petit groupe sympa, grâce à eux j'ai énormément de retours qui m ont permis d'avancer dans le script, je les remercie au passage, si tu veux le discord dis le moi

      A force de citer PGBlitz, j'ai fini par tester, c'est plutôt complet

      salut
      dans la configuration de sabnzbd il n'est pas possible de créer les répertoires de téléchargement dans le /home. comment dois-je procéder ?
      merci

        Nono Bonjour,
        ca se passe dans la rubrique catégorie, par exemple tu crée une catégorie Films à coté tu définies le chemin des downloads.
        Par ailleurs dans le compose rajoute le volume suivant
        - /home/user:/home/user
        Ca te permettra de créer les dossiers dans home

        OK merci je te tiens au courant. Sinon le script est sympa j'ai installé toutes les applications car il y a beaucoup que je ne connaissais pas ça me permets de les tester

        Alors je viens de faire un test sur un serveur chez Digital Ocean. Après 30 fautes de frappes, désinstallation-réinstallation, c'est arrivé au bout. J'ai eu le message de succès, mais juste avant j'ai eu pas mal de message, un pour chaque container je pense:
        ERROR! the playbook: rutorrent.yml could not be found
        Et rien ne fonctionne.

        T as installé sur quel os?

        ubuntu, comme tu l'as mentioné. Mais je vais recommencer, j'ai eu quelques bugs lors de la désinstallation-réinstallation au moment d'installer docker-compose notamment. Je vais recréer le serveur.

        EDIT: Après une réinstalle, tout s'installe, mais j'ai une erreur "Bad gateway" sur les différents containers ou ils s'affichent pas du tout. Mais bon, tester le script sur un serveur avec 1Go de RAM... pas top non plus. Je reteste sur le nouveau d'ici deux semaines.
        J'ai aussi un petit souci avec le rclone de plexdrive déchiffré.
        Je veux bien le discord. Si tu veux pas le mettre ici, tu dois avoir mon mail dans ta boite mail 🙂

        Alors j'ai essayé d'installer sur un vrai serveur et j'ai eu deux soucis:

        1. à la toute fin, j'ai eu une erreur avec le Backup, mais j'ai pas noté le message
        2. Il faut modifier comment le fichier rclone.conf pour que ça fonctionne, parce que le dossier /mnt/rclone/<user>/ et toujours vide.
          Voici le mien avec mes chemins:
          [GDrive]
          type = drive
          scope = drive
          token = {"access_token":"token"}
          
          [GDriveEnc]
          type = crypt
          remote = GDrive:Enc
          filename_encryption = standard
          directory_name_encryption = true
          password = GDriveEncPasswd1
          password2 = GDriveEncPasswd2
          
          [PlexMedia]
          type = crypt
          remote = /home/<user>/Media/PlexDrive/Enc
          filename_encryption = standard
          directory_name_encryption = true
          password = PlexMediaPasswd1
          password2 = PlexMediaPasswd2
          et j'ai modifié comme cela pour rendre opréationnel avec ton script:
          [remote non chiffré]
          type = drive
          token = {access_token:token}
          
          [remote_chiffré_plexdrive]
          type = crypt
          remote = /mnt/plexdrive/Medias
          filename_encryption = standard
          password = PlexMediaPasswd1
          password2 = PlexMediaPasswd2
          
          [remote_chiffré_rclone]
          type = crypt
          remote = <remote non chiffré>:Medias **(j'ai essayé de modifier mon dossier Enc en Medias ainsi que les sous-dossiers Movies -> Films, etc, mais toujours vide...)**
          filename_encryption = standard
          password = GDriveEncPasswd1
          password2 = GDriveEncPasswd2

        Bonsoir,

        @zorgade Volia comment j 'ai procédé pour modifier la structure de ton Drive. Dans un 1er temps tu renommes directement le dossier racine Enc à partir de ton interface google drive en Medias
        Ensuite tu crées ton dossier utilisateur avec la commande

        rclone mkdir GDrive:zorgade

        tu crées egalement les dossiers Films Series etc.. avec

        rclone mkdir GDrive:zorgade/Films  mkdir GDrive:zorgade/Series

        etc
        et enfin tu copies tes medias dans les nouveaux dossiers

        rclone moveto GDrive:Ancien_Dossier_Film GDrive:zorgade/Films

        Ta structure devient ainsi compatible avec mon script :wink:, par contre selon la quantité de medias que tu as je pense que la commande rclone moveto peut prendre du temps.

        Concernant ton rclone.conf il faut que tu integres l id client et l id secret et que tu repondes "n" pour le scope, ca doit ressembler à ca

        [GDrive]
        type = drive
        client_id = 373362285-iggkvqj0n2ec2r3slvqmuh.googleusercontent.com
        client_secret = U-uUe4KGWpajU1M
        token = {"access_token":"token"}
        
        [GDriveEnc]
        type = crypt
        remote = GDrive:Medias
        filename_encryption = standard
        directory_name_encryption = true
        password = GDriveEncPasswd1
        password2 = GDriveEncPasswd2
        
        [PlexMedia]
        type = crypt
        remote = /mnt/plexdrive/Medias
        filename_encryption = standard
        directory_name_encryption = true
        password = PlexMediaPasswd1
        password2 = PlexMediaPasswd2
        9 jours plus tard

        hello @laster13 , je vais tester sur mon serveur ta CloudBox demain, par contre j'ai vu des versions de rtorrent ou le flux de téléchargement est pris en charge par un VPN, penses tu que ce soit compliqué à implementer à ton script? 🙂

        Bonsoir,

        C'est surtout que j'en vois pas le réel intérêt, pourquoi souhaites tu faire passer ton traffic torrent dans le vpn?

          laster13 j ai un serveur dedié et un serveur test a la maison et disons que recevoir des petits courriers hadopi... je m en lasse 🙂

          et plus serieusement je pense que c est la derniere chose qui fait que j ai encore un serveur en location 🙂

          laster13 ouaip j'ai mon drive illim 🙂
          j'ai test cette image oui et ca fait le job, après ta solution tout en un est vraiment bien.

          Apres je peux prendre ta solution et installer le docker de binhex pour voir

          a ce propos, ton script est toujours compatible pour ubuntu seulement ou il passe sous debian?

          20 jours plus tard

          Bonjour !

          Je travail depuis 2 mois au déploiement d'une "box".
          J'ai un serveur dédié avec lequel je fais des essais et j'apprends.
          Pour l'instant j'ai fait tourné tous les containers que je souhaitais via un docker-compose, sauf fail2ban je crois. Mais tout cela est plus une forme de test afin de déterminer ensuite une façon plus définitive de faire tourner tout cela.

          Sachant que l'élaboration d'un script est la "next-step" la plus bourrine qui soit quand on a déjà galéré à tout mettre en place à la main (et moi je n'ai même pas fini), et qu'on débarque totalement sur linux.
          Donc je pense bien installer ton script @laster13. Par lâcheté pure. Mais surtout car il reprend tout ce dont j'ai besoin.

          Je me permet quelques questions en attendant de l'installer :
          • Si j'ai bien compris je déploie le script avec les prérequis actifs (domaine, gcloud), ensuite j'applique les configurations recommandées dans le wiki et c'est bon ?
          • Je ne vois pas d'intégration de mariadb ou autre, ce qui implique que tu utilise la base de donnée par défaut de nextcloud, en quoi n'est-ce pas un problème ?
          • J'ai cru voir en parcourant le Git que les labels Traefik des docker-compose n'incluait pas les labels de sécurités style :
          labels:
          ...
          - "traefik.frontend.headers.SSLRedirect=true"
          - "traefik.frontend.headers.STSSeconds=315360000"
          - "traefik.frontend.headers.browserXSSFilter=true"
          - "traefik.frontend.headers.contentTypeNosniff=true"
          - "traefik.frontend.headers.forceSTSHeader=true"
          - "traefik.frontend.headers.SSLHost=${DOMAINNAME}"
          - "traefik.frontend.headers.STSIncludeSubdomains=true"
          - "traefik.frontend.headers.STSPreload=true"
          - "traefik.frontend.headers.frameDeny=true"

          Sachant qu'ils permettent l'obtention facile d'un A+ sur [https://www.ssllabs.com/ssltest/]. Cela n'est pas nécessaire d'après toi ? (Sachant par contre que le framedeny empêche les applications d'être casté dans Organizr en iFrame par exemple)
          • Comment se passe le back-up de la box ? Est-ce qu'il reprend tout le nécessaire au redéploiement identique ? (sauf les data évidemment). Cela se fait-il via Duplicati ? Y'a-t-il un script de restauration au cas où le serveur de restauration ne serait pas le même ?
          • Si on a pas une box clean avant le déploiement j'ai lu dans ce topic (j'ai tout lu 😅 ) quelques commandes afin de "nettoyer" le serveur, comment je fais si je veux les rajouter au wiki en étape pré-process à une installation ?

          Désolé cela fait beaucoup de questions, mais pour un pro elles doivent être faciles 😉
          Allez j'installe ça !

            Bonjour,

            Les pres-requis effectivement sont le domaine, un drive illimité et quelques connaissances en docker sont également les bienvenues 🙂.

            Concernant Nextcloud effectivement pas de mariadb pour l instant sachant que la base de donnée sqlite suffit pour une utilisation hors prod mais j'ai quand même en projet de l'intégrer.

            La sauvegarde est un script que j'ai élaboré et qui permet de sauvegarder toute la seedbox, base de donnée plex comprise, ce qui te permet de redéployer en 20 mn ta box à l'identique. Du coup je n'utilise pas duplicati mais libre à toi de le faire

            Un partitionnement spécifique est recommandé ainsi que Ubuntu pour l instant. Par ailleurs je viens de finir une mise à jour du script complète avec ansible et du coup j'abandonne complétement le docker-compose. Si tu veux tester c est encore sur la branche dev, pas encore merger sur le master.
            git clone -b dev https://github.com/laster13/patxav.git /opt/seedbox-compose

            Le wiki est un support qui t'aidera dans la config des applis

            Et enfin un groupe sympa qui ne demande qu'à t aider car comme ils n'ont plus d'erreur et que leur box fonctionne bien, ils s'ennuient 🙂

            Edit: Oui les label sécurité sont important, pas eu le temps pour l'instant de les integrer. Ca fait parti de mes prochaines mise à jour

              laster13 Ah interessant pourquoi ce choix d'abandon de la baleine?

              Je crois qu'il abandonne compose et non la baleine.

              laster13 Hey à titre informatif, quel est l'avantage d'utiliser Ansible comparé à compose ? Merci 🙂

              Entre autre chose, ansible permet non seulement de monter le container mais également de faire de la config dans le fichier yml;

              Si je prends l'exemple de Rutorrent je peux dans le fichier yml monter le container et configurer le fichier rtorrentr.rc

                  ....
              - name: 'Deploying {{pgrole}}'
                    docker_container:
                      name: '{{pgrole}}-%USER%'
                      image: '{{image}}'
                      pull: yes
                      published_ports:
                        - '{{extport2}}:{{intport2}}'
                        - '{{extport3}}:{{intport3}}/udp'
                      volumes: '{{pg_volumes}}'
                      env: '{{pg_env}}'
                      restart_policy: unless-stopped
                      networks:
                        - name: traefik_proxy
                      state: started
                      purge_networks: yes
                      stop_timeout: '240'
                      labels: '{{pg_labels}}'
              
                  # CONFIGURATION ####################################################
                  - name: 'Waiting for {{pgrole}} to initialize'
                    wait_for:
                      path: '/opt/seedbox/docker/%USER%/{{pgrole}}/rtorrent/rtorrent.rc'
                      state: present
                      msg: rtorrent.rc creation failed
              
                  - name: 'Stopping {{pgrole}}'
                    docker_container:
                      name: '{{pgrole}}-%USER%'
                      state: stopped
              
                  # This is needed for rutorrent b/c it's weird.
                  - name: 'Setting ownership on appdata recursivley (this can take a while!)'
                    shell: 'chown -R %UID%:%GID% /opt/seedbox/docker/%USER%/{{pgrole}}'
              
                  - name: 'Setting permissions on appdata recursivley (this can take a while!)'
                    shell: 'chmod -R 775 /opt/seedbox/docker/%USER%/{{pgrole}}'
              
                  - name: Set download location
                    lineinfile:
                      path: '/opt/seedbox/docker/%USER%/{{pgrole}}/rtorrent/rtorrent.rc'
                      regexp: '#*directory\s*=.*'
                      line: 'directory = /home/%USER%/local/{{pgrole}}'
                      state: present
                      ....
              

              Par ailleurs l'install est plus conviviale avec un suivi étape par étape du déroulement des commandes

                2 mois plus tard

                laster13 Je vais peut être paraître ignare mais avec la disparition d'ACD en illimité où puis-je trouver un cloud illimité ? Etant actuellement sur une CT Proxmox ainsi limité au stockage du dédié, je cherche une solution peu coûteuse et assez fiable pour le stockage des données mais j'ai l'impression que c'est assez compliqué de trouver un cloud illimité. J'ai regardé pour les compte GSuite revendu sur eBay, ça me semble très peu fiable (Sauf si vous connaissez un vendeur fiable ?).