Seedbox "complète" sous Debian 10 avec Rtorrent, Rutorrent, Emby, Couchpotato

SEEDBOX COMPLETE SOUS DEBIAN 10

Pourquoi créer une seedbox ?
- partager facilement les médias libres (films, animés, OS, etc.)

Cette seedbox sera composée de :
- Debian 10
- Rtorrent
- Rutorrent
- Emby
- Couchpotato
- phpsysinfo


Il reprend l'installation sur un serveur de type VPS Hetzner (https://hetzner.com/ ) + un volume monté en /home


Serveur VPS Hetzner CX21 (2 cpu, 4 GB RAM, 40 GB SSD, 1 Gbps): 5.88 €/M
+ volume supplémentaire de 200 GB monté en /home/seedbox pour fichiers médias : 9,60 €/M

AVANTAGES
- proc performant
- connexion 1 Gbps
- volume à la dimension voulue
- payable à l'heure

INCONVÉNIENTS
- VPS (ressource théoriquement partagées)
- Petit espace de stockage
- Trafic (Out) limité à... 20 TB
- Plus cher qu'un "petit" serveur Dédié Kimsufi ou Online

Postulats de départ :
- J'utilise la même annotation que le tuto de ex-rat : <username> signifie qu'il faut remplacer par son véritable nom d'utilisateur, <votre.domaine.com> signifie qu'il faut remplacer par son véritable nom de domaine, etc.
- Installation "fraîche" d'une Debian 10.
- Le Volume de 200 GB est monté en /home/<username>

--------------------------------------------
AVERTISSSEMENT :
Cet article n'a pas pour but de décrire la mise en place d'un "système" servant à "pirater" des oeuvre sous droit(s) d'auteur.
La seedbox devra être utilisée à des fins de test ou de partage de médias sous licences libres ou licences de libre diffusion (GPL, Creative commons, etc.).
--------------------------------------------


TUTORIEL : Go !
Une fois le serveur installé avec une Debian 10, on met à jour et on installe quelques applis :
sudo apt update && apt upgrade -y
sudo apt install -y sudo nano vim-nox htop git mc screen ntp rkhunter fail2ban ufw curl


On crée un utilisateur qui aura les droits sudo (il ne s'agit pas de l'utilisateur de la seedbox. Il s'agit d'un "vrai" utilisateur avec les droits sudo) :
sudo adduser citizenz
sudo adduser citizenz sudo


On crée le /home de l'utilisateur <username> (fichiers multimédia) :
sudo mkdir /home/<username>

On configure le fstab pour "monter" le volume à chaque redémarrage.
Pour trouver la config exacte de ce volume, dans votre Panel Hetzner, pour votre serveur :
- menu Volumes
- Trois petits points au bout de la ligne de votre volume puis Configuration

Sur mon serveur, ça donne ça :
sudo echo "/dev/disk/by-id/scsi-0HC_Volume_2942248 /home/<username> ext4 discard,nofail,defaults 0 0" >> /etc/fstab

Redémarrage nécessaire :
sudo reboot

L'essentielle de la config de base du système est prête, on va désormais suivre le tutoriel de ex_rat :
https://mondedie.fr/d/10831-tuto-installer-rutorrent-sur-debian-10-nginx-php-fpm


Après un reboot, on a accès à :
ruTorrent Webui
URL : XXX.XXX.XXX.XXX/rutorrent

SFTP
IP : XXX.XXX.XXX.XXX
Port : 22

Pour obtenir de l'aide plus facilement, un script de debug est dispo, qui permet d'obtenir un lien vers un récap' complet de vos fichiers de conf en rapport avec le tuto.
cd /tmp
git clone https://github.com/exrat/Script-Debug-MonDedie
cd Script-Debug-MonDedie
chmod a+x Script-Debug-Mondedie.sh && ./Script-Debug-Mondedie.sh


Vous aurez accès à un lien sur Pastebin. En ouvrant le lien dans votre navigateur vous verrez une "copie" des infos de votre système concernant votre seedbox.
En fin de fichier, il peut y avoir des erreurs qui s'affichent. Elles permettront certainement de voir où se situe votre problème de config et cela permettra d'y remédier rapidement.

#########################################
AJOUTS PERSOS
#########################################

-----------------------------------------
1/ Letsencrypt (HTTPS)
-----------------------------------------
Votre fichier Nginx de configuration pour votre seedbox (vhost) ne comporte pas de nom de domaine.
Si vous souhaitez en configurer un, il va falloir légèrement modifier le fichier.
Par contre, même si la connexion sur l’adresse IP + SSL restera possible, votre seedbox sera associée à un nom de domaine. A vous de voir si vous voulez faire ça (anonymat, etc.).

sudo nano /etc/nginx/sites-enable/seedbox.conf

Début du fichier :
server {   
listen 80 default_server;   
server_name _;

On va remplacer par : <votre.domaine.com> à remplacer par votre vrai nom de domaine ou sous-domaine... par exemple : seedbox.mondmaine.com
server {   
listen 80;   
server_name <votre.domaine.com>;

Vérifiez toujours que votre configuration Nginx ne comporte pas d'erreur - avant de relancer Nginx - avec la commande :
sudo nginx -t

Vous devriez avoir quelque chose comme ça si tout va bien :
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

On va ajouter le plugin Nginx de Letsencrypt (certbot). Très pratique pour Nginx, cela permettra de générer "tout ce qu'il faut" et de configurer automatiquement votre fichier Nginx vhost pour HTTPS.
On installe quelques dépendances :
sudo apt install python3-acme python3-certbot python3-mock python3-openssl python3-pkg-resources python3-pyparsing python3-zope.interface

Puis on installe le plugin Nginx pour certbot (letsencrypt) :
sudo apt install python3-certbot-nginx

On va demander un certificat SSL Letsencrypt avec la commande suivante :
* évidemment <www.your_domain> et <your_domain> sont à adapter avec votre VRAI domaine
** vous n'êtes pas obligé de déclarer un www. et vous pouvez juste faire : certbot --nginx -d <your_domain>
sudo certbot --nginx -d www.<votre.domaine.com>-d <votre.domaine.com>

1/ Vous devrez ensuite rentrer une adresse E-mail qui servira à vous envoyer des infos de renouvellement du certificat - valable 90 jours mais renouvelable - ou des infos de sécurité.
2/ Acceptez les termes du service.
3/ Vous pouvez répondre non à la question d'après qui consiste à donner votre e-mail.
4/ Enfin vous choisirez la manière dont le HTTPS sera configuré :
- soit en entrant l'URL HTTPS directement dans le navigateur, à savoir que vous aurez aussi le choix de rester en HTTP (choix 1)
- soit en redirigeant toutes les demandes sur HTTPS (choix 2)
Moi je prends le 2ème choix.

Une fois fait, vous aurez votre certificat Letsencrypt installé pour votre domaine et votre fichier vhost Nginx aura été reconfiguré automatiquement pour tenir compte de la nouvelle configuration.
En vous reconnectant sur votre seedbox, vous pourrez voir que le cadenas vert est apparu (sous Firefox). Votre seedbox est désormais accessible en HTTPS.

Petit ajout pour HTTP2 :
Vers la fin du fichier vhost Nginx seedbox.conf, vous verrez cette ligne :
listen 443 ssl; # managed by Certbot

Ajoutez http2 en fin de ligne, juste avant le point-virgule :
listen 443 ssl http2; # managed by Certbot

Redémarrez Nginx :
sudo /etc/init.d/nginx restart

HTTP2 va permettre d'apporter certaines fonctionnalités. Vous retrouvez toutes les infos ici : https://blog.eleven-labs.com/fr/http2-nest-pas-le-futur-cest-le-present/


-----------------------------------------------
2/ Emby
-----------------------------------------------
Emby (anciennement Media Browser) est un serveur multimédia conçu pour organiser, lire et diffuser du contenu audio et vidéo sur une variété de périphériques.
Très pratique (à mon goût...), il va permettre d'organiser tous les fichiers multimédia, les lire, etc.

On va prendre le lien pour Debian 9, Debian 10 n'existe pas... encore :
wget -nv http://download.opensuse.org/repositories/home:emby/Debian_9.0/Release.key -O Release.key
sudo apt-key add - < Release.key
sudo apt-get update
sudo echo 'deb http://download.opensuse.org/repositories/home:/emby/Debian_9.0/ /' > /etc/apt/sources.list.d/emby-server.list
sudo apt-get update
sudo apt-get install emby-server

Pour permettre à Emby de démarrer automatiquement à chaque reboot :
systemctl enable embyserver.service
systemctl start emby-server.service

Vous devriez pourvoir accéder à Emby sur le port 8096 de votre serveur/seedbox.
Exemple : http://<your_domain>:8096

(Attention pas d'accès en HTTPS, ca ne fonctionne pas chez moi...)
Lors de votre première connexion, plusieurs options de configuration vous seront proposées. Rien de compliqué.


--------------------------------------------
3/ Couchpotato
--------------------------------------------
CouchPotato est un téléchargeur automatique NZB et torrent.
Vous pouvez garder une liste de "films que je veux" et il recherchera les NZBs/torrents de ces films toutes les X heures.
Une fois qu'un film est trouvé, il téléchargera le torrent dans un répertoire spécifié.
Il correspond à la version "films" de SickRage.

J'ai choisi de mettre les fichier de Couchpotato dans /opt

sudo apt install git-core python python-cheetah
cd /opt
sudo git clone https://github.com/CouchPotato/CouchPotatoServer.git couchpotato
sudo cp couchpotato/init/ubuntu.default /etc/default/couchpotato
sudo nano /etc/default/couchpotato

Adaptez le fichier /etc/default/couchpotato comme ceci :
CP_USER=<username>
CP_HOME=/opt/couchpotato
CP_DATA=/opt/couchpotato
CP_PIDFILE=/var/run/couchpotato/couchpotato.pid
PYTHON_BIN=/usr/bin/python

Création d'un fichier service systemd :
sudo cp couchpotato/init/couchpotato.service /etc/systemd/system/couchpotato.service
sudo nano /etc/systemd/system/couchpotato.service

On adapte le path du ExecStart dans /etc/systemd/system/couchpotato.service :
ExecStart=/opt/couchpotato/CouchPotato.py

Pour permettre à Couchpotato de démarrer automatiquement à chaque reboot :
sudo systemctl enable couchpotato
sudo systemctl start couchpotato

Vous devriez pourvoir accéder à Couchpotato sur le port 5050 de votre serveur/seedbox.
Exemple : http://<your_domain>:5050

P.S. : Couchpotato c'est bien, mais on y trouve surtout des médias en langue anglaise (GB/US)... Il y a peu de médias FR.
La faute au "Searchers", c'est à dire aux sites de torrents référencés. Dommage qu'il ne soit pas possible d'en ajouter.

--------------------------------------------
4/ phpsysinfo
--------------------------------------------
PhpSysInfo (PSI) est une interface web, écrite avec le langage PHP, qui permet d'afficher des informations concernant le système et le matériel sur lequel elle est installée.
phpSysInfo est distribué sous GNU GPL version 2.

On télécharge la dernière version de phpsysinfo dans /var/www :
cd /var/www
wget https://github.com/phpsysinfo/phpsysinfo/archive/v3.3.1.tar.gz
tar xvfz v3.3.1.tar.gz
mv phpsysinfo-3.3.1/ phpsysinfo
chown -R www-data:www-data phpsysinfo
cd phpsysinfo
cp phpsysinfo.ini.new phpsysinfo.ini

Tout devrait fonctionner "tel quel".
Si vous voulez mettre phpsysinfo en FR :
nano phpsysinfo.ini
DEFAULT_LANG="fr"

--------------------------------------------
Résumé des accès :
--------------------------------------------
PAGE D'ACCUEIL : https://<your_domain> : y'a rien ! A vous de voir pour y mettre une page d'accueil, une "plateforme" type muximux (https://github.com/mescon/Muximux), etc.

RUTORRENT : https://<your_domain>/rutorrent - Connectez vous avec votre nom d’utilisateur <username> + mot de passe créés grâce au tuto de ex_rat

EMBY :  http://<your_domain>:8096 - Connectez vous avec votre nom d’utilisateur <username> + mot de passe créés grâce au tuto de ex_rat

COUCHPOTATO : http://<your_domain>:5050 - Connectez vous avec votre nom d’utilisateur <username> + mot de passe créés grâce au tuto de ex_rat

PHPSYSINFO : http://<your_domain>/phpsysinfo

PS : si vous avez installé un firewall (type UFW), pensez à ouvrir les ports suivants :
80 + 443 : HTTP + HTTPS
5050 : Couchpotato
8096 : Emby
Pensez aussi à SSH (généralement sur le port 22) et votre ou vos port(s) Rtorrent !
Vus : 420
Publié par citizenz7 : 68