• Applications
  • [App RuFy 2.0] Téléchargement des torrents T411 depuis une interface

#############################################################################
Edit du Mardi 9 Mai 2017

#############################################################################

Mises à jour :

ToDo :

  • Corriger le bug de tri sur la durée et la taille Merci à DariusMR

  • Corriger le bug d'affichage sur le topMonth, le topWeek et le topDay (liste des torrents incomplètes)

  • Possibilité de choisir les catégories à afficher

Salut tout le monde !

Je viens vous présenter mon nouveau projet pour seedbox.
Mon application RuFy ne marchant plus depuis qu'YIFY a arrêté son activité, j'ai décidé de la mettre à jour pour le tracker T411.

RuFy permet donc de télécharger les torrents de T411 depuis votre serveur en utilisant l'API de T411 et le dossier Watch de RuTorrent.
RuFy est multi-users dans le cas ou vous auriez plusieurs locataires sur votre seedBox.

Voici quelques images :

Pour l'installation :

RuFy peut être installé soit via docker soit en dur :

En dur :
Cloner mon projet github :

cd /var/www/
git clone https://github.com/MisterCyp/RuFy.git

Lancer le script d'installation :

chmod +x RuFy/install.sh
./RuFy/install.sh

Modifier le rutorrent.conf de nginx comme ci dessous :

upstream rufy_server {
  server unix:/var/www/RuFy/run/gunicorn.sock fail_timeout=0;
}

server {
    ## Votre config ##
    ## .....       ##
    ## Fin de votre config ##

location ^~/rufy/static {
    satisfy any;
    allow all;
    alias /var/www/RuFy/static/;
}

location ^~/rufy {
    satisfy any;
    allow all;

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_redirect off;
    if (!-f $request_filename) {
        proxy_pass http://127.0.0.1:8000;
        break;
    }
}
}

Remarque : Si le port 8000 est déjà utilisé sur votre machine, vous pouvez le changer avec la variable PORTNUMBER qui se trouve dans le dossier RuFy/gunicorn_start .

Lancer RuFy et redemarrer nginx :

supervisorctl start rufy
service nginx restart

RuFy est désormais accessible via IPSERVEUR_OU_NDD/rufy.

Via Docker
Voir https://github.com/MisterCyp/dockerfiles/tree/master/rufy

Pour la première connexion, il faut créer un compte utilisateur sous django :

Aller à cette adresse IPSERVEUR_OU_NDD/rufy/admin

Utiliser les accès suivant (Penser à changer le mot de passe par la suite) :

Pseudo : admin
Password : motdepasse

Créer un nouvel utilisateur comme sur l'image :

Il vous reste désormais à configurer votre compte T411 et votre dossier d'arrivée pour rutorrent dans l'onglet configuration.

Il faut penser à donner les droits d'écriture au groupe web (créer lors du script) pour le dossier Rutorrent :

Dans mon cas :

chown cyprien:web /home/cyprien/watch
chmod g+w /home/cyprien/watch 

Vous pouvez désormais accéder aux torrents de T411 sur votre seedbox.

Changer mot de passe admin
Allez sur la page admin->utilisateurs->admin puis cliquez ici :

Remarques :

Une erreur ? Activez le mode debug en modifiant cette ligne : https://github.com/MisterCyp/RuFy/blob/master/RuFy/settings.py#L26

En : DEBUG = True
Et relancez l'application :

supervisorctl stop rufy
supervisorctl start rufy
Pour faire une mise à jour :

en dur :

cd /var/www/RuFy
git pull origin
supervisorctl stop rufy
supervisorctl start rufy

Via Docker-compose :

docker-compose pull && docker-compose up -d

Vous pouvez désormais voir où est le problème.

[/quote]
Pour l'instant, on peut :

  • Voir les top100, top month, top week et topDay

  • Chercher un torrent par mot clés

A Venir :

  • J'attends vos retours

C'est une version Beta donc y aura peut être des erreurs

    Salut,

    Je viens de l'installer sur mon serveur c'est pas mal du tout.
    Néanmoins on ne peut pas faire de recherche a proprement parlé à part sur le contenu des tops ce qui est dommage parce que du coup j'ai fait trop recherche est j'ai rien trouvé alors que les séries que j'ai cherché sont bien présentes sur le site.
    Sinon c'est un très beau projet.
    Continue.

    [EDIT] je crois que la recherche fonctionne bien en fait.
    Wow alors là bravo, j'attendais cela avec impatience! Merci
    bonjour

    j'ai essayer ce plugin mai quelque soucis
    sudo supervisorctl start rufy
    rufy: ERROR (abnormal termination)
    
    mon fichier rutorrent nginx a bien été mis a jour, nginx redémarre bien

    sur mon ndd/rufy/admin j'ai une erreur 500
    *30 rewrite or internal redirection cycle while internally redirecting to "/index.php", client: xx.xxx.xxx.xxx, server: monNDD.fr, request: "GET /rufy/admin HTTP/1.1", host: "www.monNDD.fr" 
    ps: j'ai bien sur tronquer monNDD pour ne pas l'affichez ici ainsi que mon ip

    cordialement
    corentin80 wrote:Salut,

    Je viens de l'installer sur mon serveur c'est pas mal du tout.
    Néanmoins on ne peut pas faire de recherche a proprement parlé à part sur le contenu des tops ce qui est dommage parce que du coup j'ai fait trop recherche est j'ai rien trouvé alors que les séries que j'ai cherché sont bien présentes sur le site.
    Sinon c'est un très beau projet.
    Continue.

    [EDIT] je crois que la recherche fonctionne bien en fait.
    Merci pour ton retour.
    La recherche par catégorie ne se fait que parmi les résultats reçu. Pour une recherche sur T411, il faut utiliser le champs recherche dans le menu de l'application. Pour lancer la recherche la touche entrée ne fonctionne pas encore, il faut cliquer sur le bouton chercher 😀.
    bmth wrote:Wow alors là bravo, j'attendais cela avec impatience! Merci big_smile

    Diesel wrote:bonjour
    j'ai essayer ce plugin mai quelque soucis
    sudo supervisorctl start rufy
    rufy: ERROR (abnormal termination)
    mon fichier rutorrent nginx a bien été mis a jour, nginx redémarre bien
    sur mon ndd/rufy/admin j'ai une erreur 500
    *30 rewrite or internal redirection cycle while internally redirecting to "/index.php", client: xx.xxx.xxx.xxx, server: monNDD.fr, request: "GET /rufy/admin HTTP/1.1", host: "www.monNDD.fr" 
    ps: j'ai bien sur tronquer monNDD pour ne pas l'affichez ici ainsi que mon ip
    cordialement
    Je vois que tu utilises la commande sudo. As-tu lancé le script avec les droits root ?
    oui j'ai lancer avec droit root donc le soucis est regler !
    
    root@serv:/var/www# supervisorctl start rufy
    rufy: started
    root@serv:/var/www# service nginx restart
    [ ok ] Restarting nginx: nginx.
    
    je me tromper de lien car ma seedbox est en sous domaine pour l'erreur 500

    cordialement
    oui j'ai vu que la touche "entrée" ne fonctionnait pas
    upstream rufy_server {
      server unix:/var/www/RuFy/run/gunicorn.sock fail_timeout=0;
    }
    
    server {
        ## Votre config ##
        ## .....       ##
        ## Fin de votre config ##
    
        location ^~/rufy/static {
            satisfy any;
            allow all;
            alias /var/www/RuFy/static/
        }
    
        location ^~/rufy/media {
            satisfy any;
            allow all;
            alias    /var/www/RuFy/media/;
        }
    
        location ^~/rufy {
            satisfy any;
            allow all;
    
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $http_host;
            proxy_redirect off;
            if (!-f $request_filename) {
                proxy_pass http://127.0.0.1:8000;
                break;
            }
        }
    }
    
    Merci pour l'application, petite erreur de typo dans ce script, il manque un ";"
    location ^~/rufy/static {
            satisfy any;
            allow all;
            alias /var/www/RuFy/static/;
        }
    
    EDIT

    Pourrais-tu mettre en place dans le pannel de configuration la possibilité de pouvoir customiser les liens ? (ruTorrent, cakebox, ...)

    Tu as l'exemple avec Seedbox-Manager

    Merci pour cette appli

    EDIT 2 :

    Je pense que la fonction de tri sur les torrents est buggée (Age & Taille)
    Salut beau boulot pour ton app je l'attendais ! Petit bémol j'ai tous install en root, config nginx mais j'ai un problème

    2016/04/03 11:15:21 [error] 14269#0: *7 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: x.x.x.x, server: ndd.com, request: "GET /rufy/admin HTTP/1.1", upstream: "http://127.0.0.1:8000/rufy/admin", host: "ndd.com"
    
    Impossible d’accéder à Django
    Salut, merci pour cette appli qui peut être très pratique, j'ai essayé de l'installer sur mon dédié, cependant elle ne veut pas démarrer après la commande :
    supervisorctl start rufy
    Voici une copie du /var/www/RuFy/log/gunicorn_supervisor.log
    Starting RuFy as rufy
    /var/www/RuFy/gunicorn_start: ligne 22: venv/bin/activate: Aucun fichier ou dossier de ce type
    /var/www/RuFy/gunicorn_start: ligne 32: /var/www/RuFy/venv/bin/gunicorn: Aucun fichier ou dossier de ce type
    En regardant dans le dossier venv, j'ai constat" que celui-ci était vide, normal ou pas ?

    Merci d'avance

    Edit :

    Dans ton script ligne 107 tu as mis un sudo que j'ai supprimé (je n'ai pas sudo d'installé sur mon dédié).
    sudo su $USER -c "virtualenv -p /usr/bin/python2.7 $VIRTUALDIR"
    Zabie wrote:Merci pour l'application, petite erreur de typo dans ce script, il manque un ";" smile
    location ^~/rufy/static {
            satisfy any;
            allow all;
            alias /var/www/RuFy/static/;
        }
    Merci c'est corrigé !
    Zabie wrote: EDIT
    Pourrais-tu mettre en place dans le pannel de configuration la possibilité de pouvoir customiser les liens ? (ruTorrent, cakebox, ...)
    Tu as l'exemple avec Seedbox-Manager smile
    Merci pour cette appli smile
    Je vais voir ce que je peux faire
    Zabie wrote: EDIT 2 :
    Je pense que la fonction de tri sur les torrents est buggée (Age & Taille)
    Oui elle est buggée, j'avais pas fait gaffe. Le problème c'est ce que c'est pas un simple tri sur les nombres ...
    Sunrized wrote:Salut beau boulot pour ton app je l'attendais ! Petit bémol j'ai tous install en root, config nginx mais j'ai un problème

    2016/04/03 11:15:21 [error] 14269#0: *7 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: x.x.x.x, server: ndd.com, request: "GET /rufy/admin HTTP/1.1", upstream: "http://127.0.0.1:8000/rufy/admin", host: "ndd.com"
    
    Impossible d’accéder à Django :/
    A quel moment apparaît cette erreur ?
    kimu wrote:Dans ton script ligne 107 tu as mis un sudo que j'ai supprimé (je n'ai pas sudo d'installé sur mon dédié).
    sudo su $USER -c "virtualenv -p /usr/bin/python2.7 $VIRTUALDIR"
    Merci Kimu, je corrige ça sur le github !
    Une option pour récupérer tous les torrents à la manière d'un flux RSS serait le top !

    Mais c'est déjà super, je viens de l'installer et tout fonctionne du premier coup ! Merci !

    Edit : Il y a quelques soucis au niveau de la date : http://prntscr.com/ano5wq
    Aussi, le classement par taille ne fonctionne pas correctement : http://prntscr.com/ano6by
    Cyprien wrote:
    Sunrized wrote:Salut beau boulot pour ton app je l'attendais ! Petit bémol j'ai tous install en root, config nginx mais j'ai un problème

    2016/04/03 11:15:21 [error] 14269#0: *7 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: x.x.x.x, server: ndd.com, request: "GET /rufy/admin HTTP/1.1", upstream: "http://127.0.0.1:8000/rufy/admin", host: "ndd.com"
    
    Impossible d’accéder à Django :/
    A quel moment apparaît cette erreur ?

    C'est dans le log nginx au moment où je veux accéder à la page admin

    EDIT : Problème résolu, j'avais déjà le port 8000 en utilisation. J'ai changé le port dans
    gunicorn_start
    PORTNUMBER=XXXX
    et dans la config nginx :
    proxy_pass http://127.0.0.1:XXXX;
    

    ps : Petite suggestion, y-a-t'il moyen d'ajouter une colonne "Complété" à coté de "seeders" & "leechers" ?
    4 jours plus tard
    Sunrized wrote: EDIT : Problème résolu, j'avais déjà le port 8000 en utilisation. J'ai changé le port dans
    gunicorn_start
    PORTNUMBER=XXXX
    et dans la config nginx :
    proxy_pass http://127.0.0.1:XXXX;
    

    ps : Petite suggestion, y-a-t'il moyen d'ajouter une colonne "Complété" à coté de "seeders" & "leechers" ?
    Parfait !

    J'ai mis à jour l'application avec la colonne complété 😉.

    On peut également modifié le menu de l'application maintenant :



    Je vous conseille de refaire une install pour avoir la mise à jour.
    Faites :
    cd /var/www
    rm -r RuFy
    
    Puis refaites une installation.
    Pour les prochaines mises à jour, un git pull devrait suffire.

    Pour la suite, j'envisage de créer un historique des torrents téléchargés. Si vous avez d'autres idées, n'hésitez pas !

    PS : Je n'ai pas encore corrigé le bug du tri selon la taille et l'âge.
    Salut, j'ai voulu l'installé, et biensur j'ai du faire une coquille dans ma compréhension du tuto.
    Déjà, IP/rufy Ouverture de la page impossible
    Je vous poste l'erreur que j'ai eu au restart de nginx et mon rutorrent.conf
    root@nsxxxxxx:/var/www# supervisorctl start rufy
    rufy: started
    root@nsxxxxxx:/var/www# service nginx restart
    Job for nginx.service failed. See 'systemctl status nginx.service' and 'journalctl -xn' for details.
    J'ai mis rufy vers la fin de ma config
    upstream rufy_server {
      server unix:/var/www/RuFy/run/gunicorn.sock fail_timeout=0;
    }
    server {
    	listen 80 default_server;
    	listen 443 default_server ssl;
    	server_name _;
    
    	index index.html index.php;
    	charset utf-8;
    	client_max_body_size 10M;
    
    	ssl_certificate /etc/nginx/ssl/server.crt;
    	ssl_certificate_key /etc/nginx/ssl/server.key;
    
    	include /etc/nginx/conf.d/ciphers.conf;
    
    	access_log /var/log/nginx/rutorrent-access.log combined;
    	error_log /var/log/nginx/rutorrent-error.log error;
    
    	error_page 500 502 503 504 /50x.html;
    	location = /50x.html { root /usr/share/nginx/html; }
    
    	auth_basic "seedbox";
    	auth_basic_user_file "/etc/nginx/passwd/rutorrent_passwd";
    
    	location = /favicon.ico {
    		access_log off;
    		log_not_found off;
    	}
    
    	## début config accueil serveur ##
    
    	location ^~ / {
    	    root /var/www/base;
    	    include /etc/nginx/conf.d/php.conf;
    	    include /etc/nginx/conf.d/cache.conf;
    	    satisfy any;
    	    allow all;
    	}
    
    	## fin config accueil serveur ##
    
    	## début config proxy ##
    
    	location ^~ /proxy {
    	    root /var/www;
    	    include /etc/nginx/conf.d/php.conf;
    	    include /etc/nginx/conf.d/cache.conf;
    	}
    
    	## fin config proxy ##
    
    	## début config rutorrent ##
    
    	location ^~ /rutorrent {
    	    root /var/www;
    	    include /etc/nginx/conf.d/php.conf;
    	    include /etc/nginx/conf.d/cache.conf;
    
    	    location ~ /\.svn {
    		    deny all;
    	    }
    
    	    location ~ /\.ht {
    		    deny all;
    	    }
    	}
    
    	location ^~ /rutorrent/conf/ {
    		deny all;
    	}
    
    	location ^~ /rutorrent/share/ {
    		deny all;
    	}
    
    	## fin config rutorrent ##
    
    	## début config munin ##
    
    	location ^~ /graph {
    	    root /var/www;
    	    include /etc/nginx/conf.d/php.conf;
    	    include /etc/nginx/conf.d/cache.conf;	}
    
    	location ^~ /graph/img {
    	    root /var/www;
    	    include /etc/nginx/conf.d/php.conf;
    	    include /etc/nginx/conf.d/cache.conf;
    	    error_log /dev/null crit;
    	}
    
    	location ^~ /monitoring {
    	    root /var/www;
    	    include /etc/nginx/conf.d/php.conf;
    	    include /etc/nginx/conf.d/cache.conf;
    	}
    
    	## fin config munin ##
    
    	## début config seedbox-manager ##
    
    	location ^~ /seedbox-manager {
    	alias /var/www/seedbox-manager/public;
    	    include /etc/nginx/conf.d/php-manager.conf;
    	    include /etc/nginx/conf.d/cache.conf;
    	}
    
            ## fin config seedbox-manager ##
    
    	## début config rufy ##
    	
    	location ^~/rufy/static {
            satisfy any;
            allow all;
            alias /var/www/RuFy/static/;
       	 }
    
       	 location ^~/rufy/media {
            satisfy any;
            allow all;
            alias    /var/www/RuFy/media/;
      	  }
    
       	 location ^~/rufy {
            satisfy any;
            allow all;
    
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $http_host;
            proxy_redirect off;
            if (!-f $request_filename) {
                proxy_pass http://127.0.0.1:8000;
                break;
            }
        }
    }
    	## fin config rufy ##
    
            ## config utilisateurs  ##
    
            location /SEEDBOX {
                include scgi_params;
                scgi_pass 127.0.0.1:5001; #ou socket : unix:/home/username/.session/username.socket
                auth_basic "seedbox";
                auth_basic_user_file "/etc/nginx/passwd/rutorrent_passwd_seedbox";
            }
           
    }
    
    Merci
    Salut wla64,

    Fais :
    nginx -t
    Pour avoir un peu plus de détails.
    nginx -t
    nginx: [emerg] "location" directive is not allowed here in /etc/nginx/sites-enabled/rutorrent.conf:143
    nginx: configuration file /etc/nginx/nginx.conf test failed
    Y a une accolade en trop.
    Colle ça dans ton rutorrent.conf
    upstream rufy_server {
      server unix:/var/www/RuFy/run/gunicorn.sock fail_timeout=0;
    }
    server {
    	listen 80 default_server;
    	listen 443 default_server ssl;
    	server_name _;
    
    	index index.html index.php;
    	charset utf-8;
    	client_max_body_size 10M;
    
    	ssl_certificate /etc/nginx/ssl/server.crt;
    	ssl_certificate_key /etc/nginx/ssl/server.key;
    
    	include /etc/nginx/conf.d/ciphers.conf;
    
    	access_log /var/log/nginx/rutorrent-access.log combined;
    	error_log /var/log/nginx/rutorrent-error.log error;
    
    	error_page 500 502 503 504 /50x.html;
    	location = /50x.html { root /usr/share/nginx/html; }
    
    	auth_basic "seedbox";
    	auth_basic_user_file "/etc/nginx/passwd/rutorrent_passwd";
    
    	location = /favicon.ico {
    		access_log off;
    		log_not_found off;
    	}
    
    	## début config accueil serveur ##
    
    	location ^~ / {
    	    root /var/www/base;
    	    include /etc/nginx/conf.d/php.conf;
    	    include /etc/nginx/conf.d/cache.conf;
    	    satisfy any;
    	    allow all;
    	}
    
    	## fin config accueil serveur ##
    
    	## début config proxy ##
    
    	location ^~ /proxy {
    	    root /var/www;
    	    include /etc/nginx/conf.d/php.conf;
    	    include /etc/nginx/conf.d/cache.conf;
    	}
    
    	## fin config proxy ##
    
    	## début config rutorrent ##
    
    	location ^~ /rutorrent {
    	    root /var/www;
    	    include /etc/nginx/conf.d/php.conf;
    	    include /etc/nginx/conf.d/cache.conf;
    
    	    location ~ /\.svn {
    		    deny all;
    	    }
    
    	    location ~ /\.ht {
    		    deny all;
    	    }
    	}
    
    	location ^~ /rutorrent/conf/ {
    		deny all;
    	}
    
    	location ^~ /rutorrent/share/ {
    		deny all;
    	}
    
    	## fin config rutorrent ##
    
    	## début config munin ##
    
    	location ^~ /graph {
    	    root /var/www;
    	    include /etc/nginx/conf.d/php.conf;
    	    include /etc/nginx/conf.d/cache.conf;	}
    
    	location ^~ /graph/img {
    	    root /var/www;
    	    include /etc/nginx/conf.d/php.conf;
    	    include /etc/nginx/conf.d/cache.conf;
    	    error_log /dev/null crit;
    	}
    
    	location ^~ /monitoring {
    	    root /var/www;
    	    include /etc/nginx/conf.d/php.conf;
    	    include /etc/nginx/conf.d/cache.conf;
    	}
    
    	## fin config munin ##
    
    	## début config seedbox-manager ##
    
    	location ^~ /seedbox-manager {
    	alias /var/www/seedbox-manager/public;
    	    include /etc/nginx/conf.d/php-manager.conf;
    	    include /etc/nginx/conf.d/cache.conf;
    	}
    
            ## fin config seedbox-manager ##
    
    	## début config rufy ##
    	
    	location ^~/rufy/static {
            satisfy any;
            allow all;
            alias /var/www/RuFy/static/;
       	 }
    
       	 location ^~/rufy/media {
            satisfy any;
            allow all;
            alias    /var/www/RuFy/media/;
      	  }
    
       	 location ^~/rufy {
            satisfy any;
            allow all;
    
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $http_host;
            proxy_redirect off;
            if (!-f $request_filename) {
                proxy_pass http://127.0.0.1:8000;
                break;
            }
        }
        
    	## fin config rufy ##
    
            ## config utilisateurs  ##
    
            location /SEEDBOX {
                include scgi_params;
                scgi_pass 127.0.0.1:5001; #ou socket : unix:/home/username/.session/username.socket
                auth_basic "seedbox";
                auth_basic_user_file "/etc/nginx/passwd/rutorrent_passwd_seedbox";
            }
           
    }
    Réparé,
    merci beaucoup Cyprien je teste ça!!!
    Petit retour, juste Enorme
    Merci encore, je cherchais depuis longtemps comment prendre un fichier torrent depuis mon dédié et vraiment chapeau pour l'interface web.