• Archive
  • [Discussion] Installer ruTorrent sur Debian 9 {nginx & php-fpm}

zorrax
Hello, les fichiers exécutables comme "pgrep" ou "php" doivent avoir les droits "644" ( comme n'importe quels autres fichiers ) et aussi avoir l'attribut "+x" ( avec chmod +x /chemin/fichier ) tout simplement.

Pour savoir le chemin des fichiers exécutables, on peut utiliser la commande whereis nom_du_fichier

Inutile de modifier le fichier "conf.php" du plugin 'filemanager', tu n'as aucun problème avec ce plugin.

Perso, au lieu de rajouter des lignes au fichier '/var/www/rutorrent/conf/users/<username>/config.php', modifie le fichier "conf.php" des plugins '_task' et '_cloudflare' pour y mettre respectivement le bon chemin de "pgrep" et "python".

Après, le plugin '_task' semble aussi avoir un souci pour trouver l'exécutable "php" donc, pour ce cas-ci, il faut mieux rajouter cette ligne dans le fichier '/var/www/rutorrent/conf/users/<username>/config.php' :

$pathToExternals['php'] = '/chemin/vers/ton/php';

Voilà 🙂

EDIT: Changement basé sur le tuto ^^

    il n'y a pas de soucis avec filemanager mais tu obtiens le même résultat pour les chemins en éditant conf.php à la suite de:

    // set with fullpath to binary or leave empty
    $pathToExternals['rar'] = '/usr/bin/rar';
    $pathToExternals['zip'] = '/usr/bin/zip';
    $pathToExternals['unzip'] = '/usr/bin/unzip';
    $pathToExternals['tar'] = '/bin/tar';
    $pathToExternals['gzip'] = '/bin/gzip';
    $pathToExternals['bzip2'] = '/bin/bzip2';
    $pathToExternals['php'] = 'usr/bin/php7.3';
    $pathToExternals['pgrep'] = 'usr/bin/pgrep';
    $pathToExternals['python2.7'] = 'usr/bin/python2.7';
    

    Pour le script, je préfère config.php:

    <?php
    $pathToExternals = array(
        "curl"  => '/usr/bin/curl',
        "stat"  => '/usr/bin/stat',
        "php"    => '/usr/bin/php7.3',
        "pgrep"  => '/usr/bin/pgrep',
        "python" => '/usr/bin/python2.7'
        );
    $topDirectory = '/home/exrat';
    $scgi_port = 5001;
    $scgi_host = '127.0.0.1';
    $XMLRPCMountPoint = '/EXRAT';
    

    Salut @ex_rat et merci pour le tuto.

    J'ai déjà une seedbox mais là je migre de serveur et passe en Debian 9.
    J'utilise déjà le même workflow basé sur le tuto de Debian 9, mais problème : avec un seul dossier torrent, tout se mélange à l'arrivée dans Plex, et la séparation des bibliothèques par genre (film, série, etc) n'est pas possible.

    J'ai déjà lu pas mal de trucs, donc je sais que l'idée c'est de faire plusieurs dossiers d'arrivée et de faire des liens vers les dossiers surveillé par Plex, et globalement je vois deux approches, mais pour chacune quelque-chose ne va pas, je comprends pas. Je m'explique...

    Approche 1 : Filebot
    1 seul dossier watch
    plusieurs dossiers de destination torrent : Films/Series/Musique par exemple
    plusieurs dossiers pour les liens Plex : Films/Series/Musique par exemple
    Filebot se lance à la fin d'un DL, choppe les infos sur des API (imDB etc) et crée des liens vers les sous-dossiers Plex en fonction de ce qu'il pense que c'est.
    Problème : Filebot est devenu payant, semble poser problème sur Debian 9, et tout le monde utilise de vieilles versions basée sur le JDK8. Pas glop.

    Approche 2 : Autowatch, avec ou sans Autotools
    Plusieurs dossiers watch, un par catégorie : Films/Series/Musique par exemple
    Plusieurs dossier torrent, un par catégorie : Films/Series/Musique par exemple
    En fonction du dossier watch où je dépose mon torrent, il sera plaçé dans le bon dossier de destination
    Problème : si je veux juste drag&drop des torrent, ou encore que je veux utiliser un module dans mon browser pour "aspirer" les torrents vers ma seedbox automatiquement, comment je fais pour lui dire à partir de quel dossier watch je le charge sans me faire chier? La seule solution que je vois à l'heure actuelle c'est d'y aller "à la main" et de faire "Ajouter un torrent", choisir un répertoire... bref hyper chiant. Niveau module browser j'arrive pas non plus à mettre en place plusieurs watch. L'idée ce serait qu'il me demande de choisir mon répertoire en fait.

    Approche 3 : Autolabel, avec ou sans autotools
    Même problèmes.

    Y a un truc que j'ai raté? Tu me conseilles quoi stp?

    Merci d'avance.

    Merci Aerya.

    Pour le download RSS j'ai bien compris, mais ma question en fait c'est comment, par exemple via ton fameux plugin, faire pour qu'il me demande un label ou un dossier watch, avec un prompt, que je choisis au moment de lancer le torrent... J'ai déjà testé pas mal de modules navigateurs dont celui que tu proposes. Certains comportent un champ multiple label ou dossier watch, mais ça n'a pas l'air de marcher...

      Johnson j'utilise l'approche 2 et j'avais utilisé une extension chrome qui permettait d'up ds des dossiers differents

      Micdu70 merci bien pour ces explications
      les chemins sont corrects mais je vais changer les droits
      car tout le reste est correct

      Salut !

      Moi j’ai fait un peut différemment.
      J’ai deux dossiers differents dans mon /var/www.
      Un upload_films, l’autre upload_series.
      Les deux sont des scripts d’upload.
      Je deplace mes .torrent dans le script php de la page upload_films, ça upload le fichier. Jusque la, ok.
      Ensuite, dans mon dossier watch, je pointe en simlink le dossier qui réceptionne le .torrent
      ex : /home/user/watch/films
      Tout est automatisé, et c’est pas trop mal. Surement un peut mal fait car j’suis pas au top, mais ça fonctionne au poil !
      https://ibb.co/s5FgvBz

      @Aerya @zorrax @CLusmi

      Alors merci, je pense que je m'approche de mon but mais c'est pas encore parfait. J'ai fait pas mal de tests.

      J'ai une install qui correspond à celle du tuto.

      Mon orga est celle-ci
      Un dossier incoming, pour dl en cours
      Un dossier watch pour surveiller les .torrent qui y arrivent et les lancer
      Un dossier torrents pour les dl terminés

      Je précise que je ne souhaite pas automatiser mes dl.

      Avec autotools, j'ai mis en place cette config là (en mode graphique)
      Activer automove en fonction du label (je prends tout avec /.*/ vers mon dossier torrents, et je coche "ajouter le label du torrent au chemin" et choisis déplacer comme type d'action
      Je me sers juste de ça. Ca fait que quand je drag&drop un torrent, je lui fous un label dans l'interface, et quand il est terminé il part au bon endroit. Par exemple torrents/Anime/monfichierterminé

      Ca marche bien sauf que j'ai besoin d'ajouter les torrent en pause, sinon j'ai pas le temps!!
      Via le module FF Torrent Control, j'arrive à envoyer mon torrent en pause puisque l'option est disponible
      Via mon rutorrent, au drag&drop, il me le démarre systématiquement. De ce que je vois dans la doc, il faut mettre load.normal au lieu de load.start, eh ben ça marche pas. Même sans les directives schedule il démarre tout seul...

      schedule2 = watch_directory,1,1,load.normal=/home/bidul/downloads/watch/.torrent
      schedule2 = untied_directory,5,5,stop_untied=/home/bidul/downloads/watch/
      .torrent

      C'est un énorme bug ou c'est moi qui déconne? Le module ça marche bien mais j'aimerais bien ne pas être dépendant de ce truc et pouvoir aussi le faire en drag&drop, par exemple sur un pc qui n'est pas à moi...

      Edit
      En fait le module FF permet aussi de définir soit un dossier watch, soit un label au clic droit.
      Je viens seulement de comprendre ou est la liste, elle apparaît au clic droit sur un torrent.
      Je crois donc que je vais rester là-dessus, ça me paraît pas mal!

      12 jours plus tard

      [ATTENTION PAVé] J'ai trouvé la cause, cf le post suivant, c'est pas indispensable de lire ce pavé.

      Salut à tous, bravo à la communauté pour la qualité du contenu et de l'entraide. Je débarque ici à contre coeur, j'aurais aimé me tirer seul de la galère. J'ai quelques années de vol en dev et admin système sous windows, par contre sous linux je rame un peu.
      J'ai pris en début de mois un dédié Online sur lequel j'ai une une debian + le script auto de ex_rat (merci pour la qualité du script, par ailleurs). J'ai essayé de la laisser aussi vanilla que possible, je me suis contenté de :

      • Installer le plugin "rumobile" qui n'a jamais voulu fonctionner. La page s'affiche, les menus et labels aussi, mais pas de contenu central. Dans la console réseau tout le XML se charge bien, dans la console pas d'erreurs, mais voilà. Bref, j'ai abandonné, ce n'était pas bloquant.
      • Mettre en place un certificat sur le ssh de mon compte principal pour me connecter automatiquement depuis mes machines locales.
      • Sur mon premier compte rutorrent j'ai configuré le plugin "automachin" pour copier les fichiers dans un dossier une fois téléchargés (pas bien méchant).

      Le problème :
      J'ai deux utilisateurs rutorrent : us1 et us2. us1 ne fonctionne plus alors que us2 fonctionne. Quand je dis qu'il ne fonctionne plus, c'est assez tordu. rtorrent fonctionne parfaitement, j'y accède depuis transdroid. Du côté rutorrent , le service semble en état correct :

      `us1-rtorrent.service - LSB: Start daemon at boot time
      Loaded: loaded (/etc/init.d/us1-rtorrent; generated; vendor preset: enabled)
      Active: active (exited) since Thu 2019-05-02 15:54:05 CEST; 32min ago
      Docs: man:systemd-sysv-generator(8)
      Process: 23197 ExecStop=/etc/init.d/us1-rtorrent stop (code=exited, status=0/SUCCESS)
      Process: 23200 ExecStart=/etc/init.d/us1-rtorrent start (code=exited, status=0/SUCCESS)
      Tasks: 0 (limit: 4915)
      CGroup: /system.slice/us1-rtorrent.service

      May 02 15:54:05 serv1 systemd[1]: Starting LSB: Start daemon at boot time...
      May 02 15:54:05 serv1 us1-rtorrent[23200]: Starting rtorrent...
      May 02 15:54:05 serv1 su[23203]: Successful su for us1 by root
      May 02 15:54:05 serv1 su[23203]: + ??? root:us1
      May 02 15:54:05 serv1 su[23203]: pam_unix(su:session): session opened for user us1 by (uid=0)
      May 02 15:54:05 serv1 systemd[1]: Started LSB: Start daemon at boot time.
      `

      La page charge un moment et m'affiche le mot "téléchargement" en noir sur fond blanc. La console dev indique que toutes les ressources XML ont été chargées, j'y vois la liste des torrents, des fichiers, etc. Et pas d'erreur particulière.

      La console JS est vierge, c'en est même frustrant. J'ai rebooté le serveur plusieurs fois, testé depuis plusieurs pc, téléphone 4g, etc, toujours la même chose. j'ai comparé tous mes fichiers de paramétrage avec ceux de l'utilisateur usr2, j'ai contrôlé tous mes fichiers de config en faisant le tuto d'installation manuelle pas à pas trois fois , vérifié les chmods, les logs, et j'ai rien trouvé d'explicite. Dans le log rutorrent j'ai

      [...]rutorrent "(111: Connection refused) " [...]

      Le souci c'est que tiens pas à tout réinstaller, il y a deux sessions rtorrent bien réglées qui tournent, je suis un peu coincé. J'ai passé une dizaine d'heures dessus, je suis sec. A la rigueur je pourrais créer un nouveau user via la script et basculer ma sessions rtorrent dessus (possible via les ports SCGI?), je ne sais pas si ça a une chance de résoudre mes soucis.

      Je vous mets les logs nginx/rutorrent-error.log et nginx/rutorrent-access.log dans le post suivant.

      Merci d'avance pour votre aide.

      Bon, j'ai trouvé, je viens de reproduire exactement le bug sur un nouveau compte. C'est le paramétrage que je fais dans autotools, mais attention, ça ne plante pas immédiatement. Ensuite je télécharge un torrent lambda, et ......BAM! la page devient blanche indéfiniment. Une histoire de fou. J'ai plus qu'à trouver comment vider les paramètres autotools via le shell.

      L'emplacement du paramétrage d'autotools est là : /var/www/rutorrent/share/users/<user>/settings/autotools.dat

      Voici le paramétrage coupable :

      O:10:"rAutoTools":13:{s:4:"hash";
      s:13:"autotools.dat";
      s:12:"enable_label";
      s:1:"1";
      s:14:"label_template";
      s:5:"{DIR}";
      s:11:"enable_move";
      s:1:"1";
      s:16:"path_to_finished";
      s:21:"/home/us1/torrents/ok";
      s:19:"skip_move_for_files";
      s:0:"";
      s:11:"fileop_type";
      s:4:"Copy";
      s:12:"enable_watch";
      s:1:"0";
      s:13:"path_to_watch";
      s:18:"/home/us1/torrents";
      s:11:"watch_start";
      s:1:"0";
      s:15:"automove_filter";
      s:16:"/^(?!seed.*$).*/";
      s:7:"addName";
      s:1:"0";
      s:8:"addLabel";
      s:1:"0";
      }

      Nouvelles du front, j'ai eu beau remettre des paramètres par défaut dans autotools.bat, redémarrer user-rtorrent et nginx plusieurs fois, je ne parviens pas à remettre rutorrent en état de marche sur les deux utilisateurs impactés. Est-ce qu'il existe une méthode pour faire un reset du paramétrage utilisateur Rutorrent? Sachant que Rtorrent est toujours fonctionnel chez les deux utilisateurs. Suffit-il supprimer le contenu de :

      • /share/users/<user>/ ?
      • /share/users/<user>/settings/ ?

      Désolé de poster pour ça mais je pense qu'on est nombreux à te lire mais ne pas savoir t'aider... Du coup je suis intéressé par la solution ^^

      Salut
      Il y a eu une modif sur ruTorrent pour le plugin, je viens de mettre le script à jour

      Tu peux installer cloudscraper comme ça:

      pip install cloudscraper

      Ça devrait rentrer dans l'ordre après
      Ex.

        Bonjour à tous,
        Tout d'abord merci @ex_rat pour ce script d'installation (l'utilisation avec arguments est top 🙂 ) !
        Pour ma configuration je souhaiterai modifier le script avant de le lancer.
        J'ai besoin de faire un montage NFS dans lequel il y aura mon arbo et que l'user puisse se connecter en ssh (en vue d'une future installation d'IG).
        Pour ce faire j'ai ajouté dans bonobox.sh :
        nfs-common dans la liste des apt-get install

        à la ligne 324 :

                # création du dossier de montage
        	su "$USER" -c 'mkdir -p ~/DATA'
        	
        	# montage dans DATA
        	mount -t nfs -o rw IPServeurNFS:/home/user/DATA /home/"$USER"/DATA
        	
                # modif du fstab
                cat <<- EOF >> /etc/fstab
                        IPServer:/home/user/DATA /home/"$USER"/DATA     nfs     defaults,user,auto,noatime,bg   0 0
                EOF
        	
        	# création des dossiers
        	su "$USER" -c 'mkdir -p ~/DATA/watch ~/DATA/torrents ~/DATA/.session ~/DATA/.backup-session'
        	
        	# création de l'arbo
        	cd ~/DATA/torrents/
        	su "$USER" -c 'mkdir -p 0Autres riri fifi loulou'
        	cd ~/DATA/watch/
        	su "$USER" -c 'mkdir -p 0Autres riri fifi loulou'

        Pour le ssh j'ai commenté les lignes 488 à 491.
        J'ai commenté la ligne 502 afin que /home/"$USER" soit en "$USER":"$USER"

        Pour le fichier vsftpd.conf : J'ai ajouté à la fin allow_writeable_chroot=YES

        Dans backup-session.sh : J'ai remplacé les /home/"$1" par /home/"$1"/DATA

        Mon fichier rtorrent.rc ressemble à cela :

        directory.default.set = /home/@USER@/DATA/torrents/0Autres
        session.path.set = /home/@USER@/DATA/.session
        protocol.encryption.set = allow_incoming, try_outgoing, enable_retry
        schedule2 = watch_directory_1,1,10,"load.start=/home/@USER@/DATA/watch/0Autres/*.torrent,d.directory.set=/home/@USER@/DATA/torrents/0Autres"
        schedule2 = watch_directory_2,1,10,"load.start=/home/@USER@/DATA/watch/riri/*.torrent,d.directory.set=/home/@USER@/DATA/torrents/riri"
        schedule2 = watch_directory_3,1,10,"load.start=/home/@USER@/DATA/watch/fifi/*.torrent,d.directory.set=/home/@USER@/DATA/torrents/fifi"
        schedule2 = watch_directory_4,1,10,"load.start=/home/@USER@/DATA/watch/loulou/*.torrent,d.directory.set=/home/@USER@/DATA/torrents/loulou"

        Coté server NFS mon /etc/exports ressemble à

        /home/user/DATA/   IPClient(rw,sync,no_root_squash,no_subtree_check)

        Voilà je voulais savoir si un œil avisé pouvait me dire si j'avais oublié des trucs et si mes modifs sont correctes ?

        Merci à la communauté.

        Hello les grands Manitou 🙂

        je rencontre un soucis avec un beau Python Not Found au lancement de rutorrent... pas de mise a jour recente... et aucune piste dans les logs...

        Une idée ? ( Et oui python est bien installé )
        [EDIT] Bon quand il faut il faut : apt-get remove python* suivi d'un apt-get install python python-pip et tout est revenu a la normale [/EDIT]

        17 jours plus tard

        Hello tout le monde,

        Bon l'erreur Python Not Found est de retour, la désinstallation et la réinstallation ne change rien... et je vois pas vraiment où chercher exactement ?

        Merci

          MattProd Hey, à tu vérifié que python était bien présent ?
          pip3 --version
          Normalement il devrait être dans /usr/local/lib/python3.X/