Auto installation de ruTorrent avec rTorrent. Version "Seedbox-Manager Workflow"

Salut à tous,

Voici un "fork" (une copie) de notre ami Ex_Rat du célèbre script Bonobox que par plaisir j’ai ajouté des fonctionnalités,

  • Medusa multi-users

  • CouchPotato multi-users

  • Plex ou emby + icône dans ruTorrent "dans options"

  • ****

  • ******

  • Syncthing "dans options"

  • Filebot "dans options"

  • Openvpn "dans options"

  • eZ Server Monitor

  • Thème QuickBox-Dark par défaut

  • Un sous-domain ****.ratxabox.ovh (sur demande)

1) Préambule :

Bien lire le tuto de Ex_Rat : https://mondedie.fr/d/5399 (juste le lire, ne pas exécuter script de ex_rat)

Dépot RatXaBox : https://github.com/xavier84/RatXaBox

2) Installation :

Mise a jours + installation de Git

apt-get update && apt-get upgrade -y
apt-get install git lsb-release -y

on clone est lance le script

cd /tmp
git clone https://github.com/xavier84/RatXaBox ratxabox
cd ratxabox
chmod a+x bonobox.sh && ./bonobox.sh

il vous suffira de suivre les indications affichées.

3) Les Options :

Pour installé les options:
après le redémarrage du serveur relancé le script et prendre le choix numéro : 10

4) Les liens :

  • SickRage :
    IPserveur/medusa

  • CouchPotato :
    IPserveur/couchpotato

  • Plex :
    IPserveur:32400/web

  • Emby :
    IPserveur:8096

  • Esm :
    IPserveur/esm

  • Syncthing :
    IPserveur/syncthing

5) Partie technique :

-

PS: si vous avez des bugs ou autres problèmes n'hésitez pas à me contacter !

La discussion se passe la https://mondedie.fr/d/8717-Discussion-RatXaBox-ruTorrent-avec-rTorrent-Version-Workflow
ou
Telegram : https://t.me/joinchat/FOYiwAyLMDNsobkZ10p0mw

cordialement
Xavier

C'est un script ou un tuto ?
C'est juste un script et qui aura des explications sur le fonctionnement.
Je ne vois aucun ajout par rapport à la version d'origne ?!!
OMG qu'est-ce que j'ai foutu... Désolé ^^
Très bonne idée !
Pour ma part je n'aime pas trop sickrage... mais les goûts et les couleurs...

si je peux me permettre tu aurais pu commenter un peu la config de nginx (on sait pas trop ou on en est avec les différents services lol) mais très bonne idée je garde ça dans un coin

Merci si j'arrive à le faire jusqu'à la fin!

Donc je vais essayer vous expliquer comment je fonctionne.

Déjà j'ai bien observé son script et j'essaye d'avoir la même architecture de dossiers et garder sa façon de coder (fonction,variable compteur de port,traduction de lang,le test update-rc.d en debian 7 ou 8 etc etc)(pour ça que j'ai pas mis tardistart dans base) car si quelqu'un suit le tuto Wordpress peu effacer tardistart.
Normale que dans RatXaBox a que 2 commits car si tu veux voir mes commits du script vas sur celui là de git https://github.com/xavier84/RatXaBox1

RatXaBox1 = dev
RatXaBox = officiel et fonctionnel

je débute en git, j'avais créé une branche dev et je sais pas comment j'ai fais (un merge je crois) adieu tout le travail effacé, du coup je le fais avec 2 dossiers git.

Sur le résultat il y a même pas la moitié du code https://github.com/xavier84/RatXaBox/search?utf8=%E2%9C%93&q=sickrage

MERCI

Ah oui je me doute qu'il y a plus de code que ça, je montrais simplement qu'en cherchant sickrage on voyait bien que c'était pas un fork nu
Je sais bien @DirtyGeek car c'est compliqué de choisir les bons logiciels .
En faite je me base ce qui ressort le plus sur Mondédié.

Oui oui tu peux le permettre car c'est le but de commenter ce qui va pas !
Là j'ai très peu commenté mais je vais en mettre et aussi des echo (tout en multi langage)
petite rectification "ton = le"
Car je disais ça pour @LetsGo67 qu'il n'y avait pas que ça comme code.
Mais maintenant c'est bon il a toute la liste des modif que j'ai faite.
Juste un petit soucis au passage
Enter email address which will appear in Seedbox-Manager:
XXX@protonmail.com

The email address is not valid, fix it or leave blank.
On dirait que ton email est pas bon..faut pas mettre de caractère spéciaux
xavier wrote:On dirait que ton email est pas bon..faut pas mettre de caractère spéciaux
Justement, il n'y a que des lettres hormis le '@' et le'.' de base.

Par ailleurs pour Tardis, je pense qu'il aurait été plus pratique de le mettre à la place de la page index Bonobox. M'enfin ce n'est que mon avis ..
Testé, ça tourne comme sur des roulettes cette affaire de RatXaBox !

Pour le soucis mail c'est curieux, le contrôle est assez passe partout:
89     if [[ "$INSTALLMAIL" =~ ^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]*$ ]]; then
Jamais eu de problème avec, coté utilisateur tu n'aurais pas un espace qui se balade, une boulette d'encodage ou truc du genre ?
Ex.
Pour le regex j'aurais plutot fait ça :

89     if [[ "$INSTALLMAIL" =~ ^[A-Za-z0-9._%+-]*+@[A-Za-z0-9.-]*+\.[A-Za-z]*$ ]]; then
Je rate peux etre un truc mais on dirait que seuelement le adresse avec un caractère avant le @ et un caractère après.
@setsuneh oui bizarre regarde dans /var/www/rutorrent/histo.log tu auras le mail que tu as renseigné au pire tu m’envois ton fichier par mp pour voir ce qui fait planter ton mail. sinon tu aurais du avoir celui la de message "L'adresse mail n'est pas valide, merci de corrigez ou laissez vide."
car là c'est une erreur qui vient du seedbox-manager car sur notre script ton mail a passé le test.
"._%+-"
tu as même le pourcentage qui est accepté,
et pour tardistart reste en sous dossier car au code de ex_rat je le modifie pas (aussi surtout la plupart des tuto son basé sur la config de ex_rat) mais dans mon tuto j'expliquerai comment la mettre en accueil .

@ex_rat Merci !! je pense que ce week end je mets CouchPotato en multi user car mes tests semble être concluant (installation+config des users) en plus il n'existe pas de tuto CouchPotato en multi users sur le net(enfin j'ai pas trouvé alors)mon problème cest que je peut pas vraiment finalisé mes test car j'ai aucun compte pour faire du torrents ni de serveur(j'ai un dédié mais pas pour faire une box) donc je fais tout en local avec des ISO dedian ubuntu .torrents ..donc les films et series peut pas tester vraiment .


@hydrog3n tu as peut être raison..suis nul en regex mais on dirait que ça accepte que tutu@tutu.fr mais si tu fais un tutu.tata@toto.fr ou tutu@toto.tata.fr ça doit pas passer ...c’est vrai que les 2 astérisques accepteraient plusieurs noms avec les sous domaine...... c'est a tester
J'ai longtemps testé le script sur vps ovh, c'est pratique et ça tourne très bien pour pas cher
https://www.ovh.com/fr/vps/vps-ssd.xml
Maintenant je n'utilise plus que virtualbox depuis que j'ai un pc qui tient un peu debout ^^
Ex.

edit
Pour le mail, vous m'avez mis le doute alors j'ai testé... Elle passe bien la commande quand même !
Entrez l'email de contact qui apparaîtra dans Seedbox-Manager: 
ex-rat_mondedie@sous.domaine.com

Voulez vous installer un serveur FTP (o/n): 
Sachant qu'elle n'a pas bougé depuis le tout début du script celle là.
oui un vps pour faire des tests plus réel, mais je suis comme toi ça fais des années que j'utilise virtualbox.. chaque appli je teste en local avant de mettre sur mon serveur.
Là j'ai un instantané d'une debian vierge que je restaure chaque fois que je lance le script .
merci mais là je me tâte pour prendre un dédié pour faire une box, car c'est un mon merveilleux !!!!! (et oui je suis un vieux de la vielle avec emule mais hadopi m'avait envoyé un jolie mail )
Super merci pour le test, justement j’allais le faire .
Exactement ce genre de bug serrait remonté rapidement ..

vu que le point est accepté du coup les tutu.tata@ sont autorisés, je viens de percuter maintenant
Nouvelle version avec CouchPotato en multi-users (si il y a des bêtas testeurs c'est avec plaisir )
Hello,

Je l'utilise pas sur ma box perso mais je viens de l installer pour une amie et pour l instant elle a l air ravie.
Perso, l'install se passe bien sur une dedibox 2016.
Je vais voir si je peux update.

++
Salut

Merci pour ton retour..super si tout c'est bien passé...j'ai pas fini le tuto.donc une fois couchpotato fini, se rendre sur la page pour finaliser installation..

Tu veux faire un update de ton serveur? ou une re installation?

install nickel sur une vm à la maison
merci c'est gentil d'avoir testé

Pour ceux qui l'ont installés avant maintenant 20h50 le 17/10/16
exécutez les 2 commandes
chown -R www-data:www-data /var/www/tartdistart
chmod 755 /var/www/tartdistart
problème de droit d'enregistrement des liens sur la partie admin de tardistart

le git est à jours avec la correction
Salut,

Je viens d'installer ton script tout à l'air de marcher rtorrent et sickrage.
Dois je aussi faire la manip que tu cites ci-dessus ? Installation faite ce matin à 08h00.
Pas encore testé couchpotato ni tardistart.
Salut.

Non si tu l'as installé ce matin la correction a été appliqué hier soir..

Ce soir (ou dans la semaine) sûrement je vais expliquer un peu mieux les étapes à faire..

Du Style configuration des liens de tardistart.. et aussi après installé il faut finaliser la config couchpotato : laisser le paramètres à défaut sauf mettre un mot de passe
10 jours plus tard

Salut

Voila encore une nouvelle version de RatXaBox avec plex ou emby ou rien (au choix) comme lecteur streaming

🙂

Petite suggestion (valable également pour l'originale), déplacer la vérification de l'OS avant de faire quoi que ce soit.

Merci du conseil..c’est vrai le deb.sh aurais du être en premier avec les autres includes

Salut
Non, le script charge en mémoire (et n'écrit rien nul part) les 3 fichiers essentiels pour pouvoir exécuter la détection du root qui serait impossible sans cela.
Les variables, la mécanique qui va déterminer le bon fichier de langues à utiliser et les functions dont FONCROOT.

#  includes
INCLUDES="includes"
# shellcheck source=/dev/null
. "$INCLUDES"/variables.sh
# shellcheck source=/dev/null
. "$INCLUDES"/langues.sh
# shellcheck source=/dev/null
. "$INCLUDES"/functions.sh

# contrôle droits utilisateur
FONCROOT

détail de la function FONCROOT

function FONCROOT ()
{
if [ "$(id -u)" -ne 0 ]; then
	echo "" ; set "100" ; FONCTXT "$1" ; echo -e "${CRED}$TXT1${CEND}" 1>&2 ; echo ""
	exit 1
fi
}

On y retrouve bien des variables, du texte et tout cela dans une function qui va elle même appeler une autre function aussi pleine de variables que la première et utilisant le retour de langues.sh pour te dire que "non t'es pas root et t'as des baskets et tu rentre pas" 😃

function FONCTXT ()
{
TXT1="$(grep "$1" "$BONOBOX"/lang/"$GENLANG".lang | cut -c5-)"
TXT2="$(grep "$2" "$BONOBOX"/lang/"$GENLANG".lang | cut -c5-)"
# shellcheck disable=SC2034
TXT3="$(grep "$3" "$BONOBOX"/lang/"$GENLANG".lang | cut -c5-)"
}

Au contraire, deb.sh commence lui sérieusement à taper partout dans les fichiers et donc ne doit pas être au début mais après la vérif' user
Ex.

Salut @ex_rat
Oui si utilisateur n'est pas root le script sort est il a rien écrit.et vide sa ram des 3 fichiers car cest juste des variables et des fonctions(car on fait pas "export" de variable)
il faut laisser c’est 3 fichiers sinon la première ne fonctionnera FONCROOT ne fonctionneras pas.car comme tu dis "appeler une autre function aussi pleine de variables etc etc etc"

mais enfaite @LetsGo67 veux un contrôle sur OS(si j'ai bien compris).(car dans deb.sh c'est la que sa fais un exit si c'est pas une debian 7 ou 8)(lignes 60)
ta raison je vais surtout pas mettre le deb.sh en premier car chaque fois on va lancer le script pour ajouté un user par exemple le deb.sh va exécuté le bout de code "#ajout dépôts"et j’aurais des doublons dans aptitude update

en gros ce qui faudrait faire (a mon idée @ex_rat )

#  includes
INCLUDES="includes"
. "$INCLUDES"/variables.sh
. "$INCLUDES"/langues.sh
. "$INCLUDES"/functions.sh
. "$INCLUDES"/checkversion.sh

# contrôle droits utilisateur
FONCROOT

puis dans checkversion.sh

#!/bin/bash

if [[ $VERSION =~ 7. ]] && [[ $VERSION =~ 8. ]]; then
        echo "Debian 7 ou 8 : ok"
else
        set "130" ; FONCTXT "$1" ; echo -e "${CRED}$TXT1${CEND}" ; echo ""
        exit 2
fi

et enlevé la partie else du deb.sh car maintenant il check au lancement ..

enfin si j'ai bien compris vos réponse. @ex_rat @ex_rat

Ouais j'étais parti sur le controle root au lieu de l'os, pour ça que je répond à coté 😉
Alors ouais pourquoi pas mais en plus simple parce que ça ne mérite pas un fichier à part.
Transformer FONCROOT en genre FONCCONTROL englobant les deux vérif.

Truc du genre:

function FONCCONTROL ()
{
if [ "$(id -u)" -ne 0 ]; then
	echo "" ; set "100" ; FONCTXT "$1" ; echo -e "${CRED}$TXT1${CEND}" 1>&2 ; echo ""
	exit
fi

if [[ $VERSION -ne 7. ]] || [[ $VERSION -ne 8. ]]; then
        set "130" ; FONCTXT "$1" ; echo -e "${CRED}$TXT1${CEND}" ; echo ""
        exit
fi
}

Je regarderai ça à l'occass.
Ex.

lol ce que je me suis dit(tu étais parti sur le contrôle root )
c'est vrai pas besoin d'un autre fichier.mais la fonction que tu a fais est au top.sinon plus simple

function FONCCONTROL ()
{
if [ "$(id -u)" -ne 0 ]; then
	echo "" ; set "100" ; FONCTXT "$1" ; echo -e "${CRED}$TXT1${CEND}" 1>&2 ; echo ""
	exit 1
fi

if [[ $VERSION !~ 7. ]] && [[ $VERSION !~ 8. ]]; then
        set "130" ; FONCTXT "$1" ; echo -e "${CRED}$TXT1${CEND}" ; echo ""
        exit 2
fi
}

car pas besoin echo.mais je connais pas inverse de =~ peut etre !~..il faudrais que je trouve enfaite un opérateur pour faire ça !=~ en gros.

J'ai pas testé, je verrai demain si j'ai le temps 😉

function FONCCONTROL ()
{
if [[ $VERSION -ne 7. ]] || [[ $VERSION -ne 8. ]]; then
        set "130" ; FONCTXT "$1" ; echo -e "${CRED}$TXT1${CEND}" ; echo ""
        exit
fi

if [ "$(id -u)" -ne 0 ]; then
	echo "" ; set "100" ; FONCTXT "$1" ; echo -e "${CRED}$TXT1${CEND}" 1>&2 ; echo ""
	exit
fi
}

edit: et peut-être plus logique de tester l'os avant le root aussi

oui ce que javais pensé mais -ne 7. je sais pas si il prend tout les chiffres âpres le point ou si il vas le considéré tel quel un 7 avec un point deriere..
"~" était bien a moins que -ne 7.* fonctionne.a tester.

merci pour les conseils

La nuit porte conseil 😃 Plutot que de chercher l'inverse pour $VERSION, faut contourner le problème en imbriquant les deux IF, c'est plus choupie ^ ^

function FONCCONTROL ()
{
if [[ "$VERSION" =~ 7.* ]] || [[ "$VERSION" =~ 8.* ]]; then
	if [ "$(id -u)" -ne 0 ]; then
		echo "" ; set "100" ; FONCTXT "$1" ; echo -e "${CRED}$TXT1${CEND}" 1>&2 ; echo ""
		exit 1
	fi
else
		echo "" ; set "130" ; FONCTXT "$1" ; echo -e "${CRED}$TXT1${CEND}" ; echo ""
	exit 1
fi
}

J'ai testé (avec en dessous) vraiment en vitesse mais ça a l'air de faire le boulot comme ça dans tous les cas de figure.

#!/bin/bash
#
VERSION=$(cat /etc/debian_version)

function FONCCONTROL ()
{
if [[ "$VERSION" =~ 7.* ]] || [[ "$VERSION" =~ 8.* ]]; then
        if [ "$(id -u)" -ne 0 ]; then
                echo "T'es pas root"
                exit 1
        fi
else
        echo "Pas une debian"
        exit 1
fi
}
echo "$VERSION"
FONCCONTROL
echo "le script continue bien..."

Pour mettre tout ça en route, je verrai un peu plus tard une fois bien testé
Ex.

edit: il y avait aussi la soluce d'ajouter un cut sur VERSION mais c'était jouer petit 😃 et ça coincera avec debian 10, les if avec du calcul aiment pas les "." donc avec 2 caractères on était cuit....

edit2: c’est sur github

    Salut,

    génial cette modification 🙂 encore une suggestion mais concernant ton fork, tu inclus tardistart mais pourquoi ne pas en faire la page d'accueil qui remplacerait celle de bonobox ?

    J'avais encore vue quelques trucs mais là, je m'en rappel plus

    Salut

    oui a la base je compté faire comme tu as dit page d'accueil.MAIS comme je veux resté au maximun dans la meme ligné du script de ex_rat.et aussi si je modifie tout les gens de mondedie vont etre perdu..
    Et beaucoup de tuto sont basé sur bonobo .par exemple si tu veut mettre WordPress avec ce tuto https://mondedie.fr/d/5443-Tuto-Installer-Wordpress-sur-son-serveur-nginx quand il vas arrivé sur la partie

    Et supprimez ceci:
    
        ## 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 ##
    
    On va supprimer le fichier base:
    
    rm -r /var/www/base

    ben utilisateur auras une belle surprise car il auras effacer sont tardistart ...

    tu vois ?mais dans mon tuto je mettrai comment faire tardistart en page d’accueil