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

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 ?).

        j'ai acheté mon gsuite sur ebay a un ricain environ 20€ il y a quelques mois sans souçi, il en a tjrs si ca t'interesse

          allan84 Je veux bien 🙂 Puis-je utiliser le stockage interne de mon HDD sur le dédié + cloud pour Plex ? Que faut-il faire pour éviter de se faire ban le compte par Google ? 🙂
          Si quelqu'un veut bien m'expliquer le fonctionnement sur Discord ou ici, ce serait hyper cool 🙂

          donnes moi un mail. le script chiffre le contenu sur le drive, donc tu es tranquille coté ban, mais pour les questions techniques Laster te répondra mieux que moi

            @laster13 Ce serait possible de discuter sur Discord (Perso ou sur votre serveur) ? J'ai pas mal d’interrogation sur votre script

            4 jours plus tard

            drnara As-tu trouvé une solution pour les iframes avec Organizr ?

            8 jours plus tard
            laster13 a renommé le titre en [Script-Ansible] Install Seedbox docker avec rclone-plexdrive5-unionfs-mergerfs.

            Bonjour,

            J'ai basculé quasi l integralité du script avec ansible, moins de risque d'erreur dans l install (300 lignes de codes en moins) et une meilleure gestion des variables. Plus de stabilité egalement avec le choix d'installer "unionfs" ou "mergerfs".

            Pour avoir basculer avec mergerfs indeniablement ca marche mieux et je trouve que les films/series sont plus rapides a lancer, vous me direz ... aucun I/O WAITS, meme si j'en avais moins avec ubuntu.

            Un super motd egalement repris chez Cloudbox (je laisse leur signature dans mon script lorsque je leur prends des morceaux de code).

            Etant donné que jusqu'a present personne ne m'a parlé du multi user, j'ai viré cette possibilité. De toute facon nos serveurs sont loin d etre assez puissant pour gerer du multi user avec rclone. Donc ca allege le script et le rend plus sobre.

            Du coup dorenavant les containers n'auront plus l'extension avec le user, rclone.service et unionfs.service non plus. ca veut dire que pour lancer un container ca sera: docker restart plex au lieu de docker restart plex-user.

            Pour la mise a jour
            git pull
            choix 3/ choix 1
            Pour ceux qui ont un soucis avec git pull --> rm -rf /opt/seedbox-compose et git clone https://github.com/laster13/patxav.git /opt/seedbox-compose

            Important
            une chose que je ne peux pas faire a votre place avec ce script de mise a jour, c est modifier vos config sonarr/radarr. dans indexeur et downloader il faut virer l'extension user. par exemple la ou il y a rutorrent-user, mettre rutorrent. Modifier les remote mapping, et le fichier config.json dans plexautoscan, mettre plex a la place de plex-user, pas grand chose a faire en fait.

            Mon script de mise a jour recupere toutes les variables importantes dans des fichiers, modifie le nom des containers, installe megerfs, reinstalle rclone et installe le motd