• Docker
  • Maintien d'une image docker rutorrent pour la communauté mondedie

Je plussoie, dans certains cas on ne veut pas de reverse proxy

    Magicalex Oui en effet c'est plus simple d'utiliser un reverse Proxy mais par exemple sur un Synology, si on veut utiliser le reverse proxy par défaut, on peut pas le faire directement via l'interface et on doit bidouiller dans les fichiers NGINX et lors d'une MAJ, je pense qu'ils sont écrasés.

    J'ai ajouté cette feature avec un .htpasswd sur mon github si tu veux voir: https://github.com/MisterCyp/docker-rutorrent

    Peut être qu'on peut faire plus propre, je ne suis pas du tout un pro sur Linux et Docker XD

      Cyprien Je vais considérer la question alors. Je vais réfléchir à une solution. @Cyprien je vais regarder ton travaille et voir comment l'intégrer à l'image.

      Coucou,

      J'ai voulu essayer de pull l image sur arm et j obtient le message suivant :
      $ docker pull mondedie/rutorrent:filebot
      filebot: Pulling from mondedie/rutorrent
      no matching manifest for linux/arm/v8 in the manifest list entries

      Si quelqu'un a une idée ?

        Hello
        Image en prod
        Filebot marche bien, grace au fichier args_amc.txt j ai pu personnaliser et recevoir mes notifications mail>
        bref que du bonheur.
        Je voulais personaliser les scripts postdl et postrm mais je viens de voir qu ils ne sont pas dans des repertoires accessibles. pourquoi les avoir mis dans /usr/local et pas dans /config ? y a des contraintes ?
        je voulais juste les adapter, du coup je vais modifier .rtorrent.rc pour pointer vers d autres scripts, c est pas l ideal

        en tout cas gros merci pour l image

          hello
          de nouveau moi apres quelques tests supplementaires
          je vous partage ce que j ai constaste (qui est peut etre normal mais j en doute)
          lors de tests et toujours pour personnaliser mon container, j ai a un moment donne efface le fichier amc.excludes.
          Jusque la rien de grave me direz vous.
          La ou j ai ete surpris c est lorsque j ai relance un DL et que ce dernier s est termine : filebot a procede a tout le renommage de mes fichiers dans downloads et non uniquement le torrent qui venait de se finir. Comme si les parametres de postdl n etaient pas pris en compte.
          Bref normal ou petit souci?
          En soit c est pas genant dans le sens ou en theorie tu n effaces pas ce ficher mais je me dis que lorsque le fichier comportera des cetaines de lignes ca va commencer a ralentir le traitement, non?

          a+

            Magicalex
            du coup je suis un peu perdu sur le role de --def ut_dir="${TORRENT_PATH}" et --def ut_title="${TORRENT_NAME}"
            Le but de ces options n est il pas de traiter le fichier renseigne par ${TORRENT_PATH} et ${TORRENT_NAME} ???

            Je prends en exemple ce petit script que je me suis fait:

            #!/bin/bash
            echo "chemin du fichier à renommer:"
            read TORRENT_PATH
            /home/.filebot/filebot.sh --lang fr -script fn:amc --output "/home/Media" --action symlink --conflict override -non-strict --def tmdbTV=y unsorted=y "ut_dir=$TORRENT_PATH"

            La variable $TORRENT_PATH renseigne bien filebot sur le fichier a traiter et il ne traite que celui la et aucunement les autres du repertoire ( et pas de fichier qui inventorie les fichiers a exclure).

              christophebe Pour que le script soit dans un PATH et que l'on puisse exécuter le script comme une commande normale.

              Je vois pas trop ce que tu veux personnaliser dans les deux scripts.

              christophebe du coup je suis un peu perdu sur le role de --def ut_dir="${TORRENT_PATH}" et --def ut_title="${TORRENT_NAME}"
              Le but de ces options n est il pas de traiter le fichier renseigne par ${TORRENT_PATH} et ${TORRENT_NAME} ???

              Non, je t'invite à lire le script pour plus d'info sur comment fonctionne le script de filebot. Il semblerait que ut_title ne soit là que pour les notifications.

              christophebe La variable $TORRENT_PATH renseigne bien filebot sur le fichier a traiter et il ne traite que celui la et aucunement les autres du repertoire ( et pas de fichier qui inventorie les fichiers a exclure).

              Non plus, elle renseigne sur le dossier à traiter.

                Magicalex
                Desole, j insiste mais apres tests (via mon petit script, via le container de xataz):
                la variable $TORRENT_PATH renseigne bien filebot sur le fichier a traiter (que ce soit un fichier ou un repertoire) et il ne traite que celui la et aucunement les autres du repertoires ou fichiers.
                Donc dans ton script postdl, tes variables ne sont pas interpretees et donc ne sont pas utiles.

                  christophebe Et bien non. Ce n'est que des dossiers qui sont passés en paramètre. Le nom de la variable est très explicite. ut_dir dir pour directory

                  Si tu lances le script
                  docker exec -it rutorrent postdl /data/downloads nimportequoi.mkv

                  Tu verras que le script amc va check tous les fichiers si tu as supprimé le cache avant.

                  Hello,
                  Aller on poursuit le sujet de bon matin et de bonne humeur.
                  Etant arrivé tôt au boulot, j'ai fouiné sur le site de filebot et suis allé à la pêche aux infos.
                  J'ai trouvé un topic qui aborde le point ut_dir et surtout avec une réponse de Rednoah le concepteur de filebot:
                  Discussion sur le forum filebot

                  qBT will replace %F with the input folder/file of the completed download and call FileBot on that:

                  --def "ut_dir=%F"_

                  If you pass your entire Downloads folder as input folder every time, then you will end up processing incomplete downloads A, B and C after D is finished and triggers filebot.

                  Du coup voilà ce que je comprends:
                  rtorrent renvoie le nom du torrent que l'on stocke dans la variable TORRENT_PATH
                  ensuite on lance filebot avec en paramètre ut_dir=$TORRENT_PATH
                  Alors filebot est censé traiter uniquement le torrent qui vient de se terminer.
                  Cela permet d'éviter le traitement de fichiers qui seraient encore en cours de téléchargement.

                  Ce que j'ai pu retester ce matin sur le container de la communauté, c'est que le paramètre ut_dir ne s'applique pas et donc systématiquement tout le répertoire downloads est retraité (en excluant tous les torrents référencés dans le fichier amc_exclude).
                  En soit ce n'est pas bien grave, même dans le cas suivant:
                  imaginons que l'on lance 2 downloads, 1 se finit rapidement , le 2ieme prend 1 journée
                  lorsque le 1ier se finit, filebot traite alors le torrent 1 (celui fini) et le torrent 2 (celui en cours de download)
                  et il vient ensuite renseigné ces 2 torrents dans le fichier amc_exclude.
                  Le 2ieme torrent se finit plus tard, filebot se lance mais comme le torrent 2 est référencé dans amc_exclude , aucune action n'est effectuée.
                  la problématique que je vois c'est que l'on crée un symlink sur un fichier non fini et donc si tu es un peu impatient et que tu veux accéder au fichier via ton symlink tu vas avoir une mauvaise surprise.

                  Du coup j'ai regardé le script postdl (je suis très loin d'être un expert et mes compétences en scripting sont très limitées) pour essayer de voir pourquoi le paramètre ut_dir ne s'applique pas.

                  le début me semble bon:

                  TORRENT_PATH="$1"

                  par contre ici j'ai quelques doutes:

                  --def ut_dir="${TORRENT_PATH}"

                  est ce que ce ne devrait pas plutot être:

                  --def ut_dir=$TORRENT_PATH
                  ou

                  --def "ut_dir=$TORRENT_PATH"

                  Après comme je le disais je ne suis pas très doué et ne sais pas si les {....} ou mettre les "..." à cet endroit impactent ou pas. Mais c'est la seule dfférence que je vois avec le script de xataz (pour lequel je trouve le résultat souhaité et expliqué par Rednoah).

                  a+

                    christophebe alors "${TORRENT_PATH}" passe bien. C'est la syntaxe qui est recommandé.

                    Tu accordes trop de valeur à la variable TORRENT_PATH. Cette variable provient de la commande $d.directory= via xmlrpc.
                    Et la commande d.directory me renvoie la plupart du temps le dossier /data/downloads

                    Pour faire ce que tu veux il faudrait concaténer les variables et donc avoir le dossier du torrent en particulier, il faudrait faire ça.

                    FULL_PATH="${TORRENT_PATH}/${TORRENT_NAME}"

                    Le problème avec cette solution c'est que ça ne renvoie pas toujours un dossier mais aussi parfois un fichier.
                    Et si on donne un fichier à filebot il plante. Donc on revient au problème initiale.

                    Donc le mieux que l'on pourrait éventuellement faire serait de passer le dossier du torrent quand il existe.

                    #!/usr/bin/env sh
                    
                    TORRENT_PATH="${1}"
                    TORRENT_NAME="${2}"
                    
                    if [ -d "${TORRENT_PATH}/${TORRENT_NAME}" ]; then
                      FULL_PATH="${TORRENT_PATH}/${TORRENT_NAME}"
                    else
                      FULL_PATH="${TORRENT_PATH}"
                    fi
                    
                    /filebot/filebot.sh \
                      --lang "${FILEBOT_LANG}" \
                      -script fn:amc \
                      --output "/data/media" \
                      --action "${FILEBOT_RENAME_METHOD}" \
                      --conflict "${FILEBOT_CONFLICT}" \
                      -non-strict \
                      --log-file /tmp/filebot-amc.log \
                      --def @/filebot/args_amc.txt \
                      --def ut_dir="${FULL_PATH}" \
                      --def ut_title="${TORRENT_NAME}" 2>> /tmp/filebot-error.log

                    Mais sinon mon script fonctionne exactement de la même manière que celui de xataz.

                    Ok, j'ai bien pris note.
                    Un grand merci d'avoir creusé le sujet et d'avoir pris le temps de éclairer.

                    a+

                    Chris.

                      christophebe Donc au final ça ne change pas grand chose si on passe que cette variable à filebot TORRENT_PATH
                      Le principale c'est que avec cette variable filebot se débrouille toujours.

                      popov_2 Je demandais sur quel machine tu veux l'installer pas l'architecture. je me doute bien que c'est aarch64. C'est pas grave normalement tu peux réessayer ça fonctionne.

                      spider1163 Cyprien J'ai poussé une modification. Maintenant on peut ajouter une authentification basic.
                      Je vous invite à lire le readme pour mettre en place l'authentification. https://github.com/mondediefr/docker-rutorrent#add-http-authentication
                      J'ai mis dans l'image un petit utilitaire pour générer un fichier avec le mot de passe gen-http-passwd

                      Parfait @Magicalex ! Merci ! Par contre c'est possible de faire un ajout de ligne avec ">>" au lieu de ">" lors de l'ajout d'un utilisateur via openssl ?
                      echo "${username}:${passwd}" >> /config/nginx/passwd/rutorrent_passwd

                      Ça permet d'avoir plusieurs accès pour la même instance: ça peut paraître inutile mais j'ai pas forcément envie de partager mon mot de passe avec quelqu'un d'autre XD.