Installation de la stack "Donwload-VPN"
Cette stack docker-compose contient les logiciels :
- OpenVPN Client
- Jackett
- Prowlarr
- rutorrent
- Qbittorrent
- Sonarr
- Radarr
Elle permet d'installer rapidement ces logiciels et de s'assurer que ces derniers ne communiquerons que à travers le Client VPN.
Disclamer : Ce tutoriel n'est pas là pour vous apprendre à télécharger des fichiers illégaux, tous messages à ce sujet seront supprimés.
Table des matières
- 
- Aller plus loin
 - 5.b Rajouter les chemins vers ces médias
- 5.c Mise à jour automatique ( watchtower )
- 5.d Reboot automatique en cas de soucis ( autoheal )
 
1. Prérequis
- Cette stack est concu pour fonctionner dans un dossier downloads-vpn, avec l'architecture suivante :
downloads-vpn ---- vpn ------------ config
               |                 |_ scripts
               |
               |-- rutorrent ------ data
               |                 |_ passwd
               |                 |_ downloads
               |
               |-- prowlarr ------- config
               |
               |-- sonarr --------- config
               |                 |_ downloads
               |
               |-- radarr --------- config
               |                 |_ downloads
               |
               |-- jackett -------- config
               |
               |-- qbittorrent ---- config
               |                 |_ downloads
- Dans le paragraphe 1.a nous allons les créer avec une ligne de commande, et dans le paragraphe 1.b nous allons modifier le .env afin qu'il utilise bien ces dossiers ( en fonction de leurs localisation sur votre machine ).
1.a. Création des dossiers
- 
Avec cdaller dans le dossier de votre choix, par exemple "docker". Exemple : Si votre dossier "docker" ce trouve dans /volume1, alors la commande sera :cd /volume1/docker
- 
Maintenant que nous sommes dans le bon dossier, nous allons executer la commande suivante pour créer d'un coup, toute l'architecture nécessaire : 
mkdir -p downloads-vpn/vpn/{config,scripts} downloads-vpn/rutorrent/{data,passwd,downloads} downloads-vpn/prowlarr/config downloads-vpn/sonarr/{config,downloads} downloads-vpn/radarr/{config,downloads} downloads-vpn/jackett/config downloads-vpn/qbitorrent/{config,downloads}
1.b. Modifications des .env
- 
Récupérer sur votre machine les fichiers .env,TUN.sh,docker-compose.ymletrtorrent-rutorrent.env.
- 
Par defaut, il n'y a rien a modifier dans rtorrent-rutorrent.env.
- 
Dans le fichier .envvous allez devoir modifier plusieurs chose :
PUID et PGID devront correspondre aux ID de votre utilisateurs, plus d'info ici : Connaitre le PUID / PGID d'un utilisateur
RACINE correspond au chemin vers le dossier downloads-vpn créé a l'étape 1.a.
Dans ce cas, c'est : /volume1/docker/downloads-vpn
1.c Transfert des fichiers dans /downloads-vpn
- Une fois les modifications effectuées, il faut transfert tous les fichiers dans le dossier /downloads-vpnprécédemment créé ! Par exemple, avec FileZilla.
1.d Mise en place de la config .opvn
- Dans notre dossier downloads-vpn/vpn/config, nous allons placer notre configuration .ovpn récupéré sur notre serveur OpenVPN.
Note : Si votre config VPN demande une identifications par mot de passe, alors il vous faudra modifier dans votre fichier .ovpn la ligne :
auth-user-passpar :
auth-user-pass /vpn/vpn.authDans le dossier
downloads-vpn/vpn/configen plus du fichier .ovpn, vous aller devoir créer un fichiervpn.authcontenant 2 lignes, sur la 1ere ligne, votre identifiant de connexion au VPN, et sur la 2eme ligne, votre mot de passe.Exemple :
votreidentifiantdeconnexion votremotdepasse
1.e Optionnel - Création et Execution de /tun
- 
Si vous êtes sur un NAS de type Synology par exemple, alors la création du TUN est obligatoire. 
- 
Pour cela : Recupérer le fichier TUN.shprésent, et placer le dans votre dossierdownloads-vpn.
Vous devez être "root" pour l'executer, pour cela, passer en root avec sudo :
sudo su -
Puis rendez-vous dans le dossier contenant TUN.sh, dans mon cas /volume1/docker/downloads-vpn
cd /volume1/docker/downloads-vpn
on chmod le script pour le rendre executable :
chmod 0755 TUN.sh
et executer le script :
./TUN.sh
2. Création des conteneurs
2.a Création du réseau
- On créé le reseau vpn-networknecesaire au fonctionnement du conteneurs VPN :
docker network create vpn-network
2.b Création des conteneurs
Maintenant que votre "stack" est prete rendez-vous dans le dossier downloads-vpn, dans mon cas /volume1/docker/downloads-vpn :
cd /volume1/docker/downloads-vpn
3. Les Bases
L'installation n'étant pas classique, si vous utilisez l'interface Docker de DSM par exemple, elle va refuser de démarrer les conteneurs rattachés au conteneur vpn ( car pour elle, il n'est relié a aucun réseau, et ne comprend pas que son réseau soit un conteneur.
Il faut donc obligatoirement utiliser les commandes en SSH ou autre logiciel de monitoring Docker compatible*. Voici quelques commandes de base :
*L'utilisation de Portainer est possible par exemple.
3.a Commandes de bases ( Docker )
- 
Arreter un conteneur : docker stop <nom_du_conteneur>Exemple pour le conteneur rutorrent :docker stop rutorrent
- 
Redémarrer un conteneur : docker restart <nom_du_conteneur>Exemple pour le conteneur rutorrent :docker restart rutorrent
- 
Démarrer un conteneur : docker start <nom_du_conteneur>Exemple pour le conteneur rutorrent :docker start rutorrent
- 
Supprimer un conteneur : docker rm <nom_du_conteneur>Exemple pour le conteneur rutorrent :docker rm rutorrent
- 
Créer / Mettre à jour la "stack" : docker-compose up -dCette commande permet de créer la stack présent dans le fichier docker-compose.yml, les conteneurs non-existant seront créés, les modifiés seront mis à jour.
Note : Vous devez etre dans la dossier contenant le fichier docker-compose.yml pour que cette commande fonctionne.
3.b Accès aux interfaces ( WebUI )
- 
L'acces à chaque service se fait via une WebUI ( Interface Web ), sur un port quil lui est propre. 
- 
Pour rutorrent, c'est le port 8080. Donc l'adresse sera sous la forme :http://IP_DE_LA_MACHINE:8080Exemple : Si l'adresse IP de votre machine est192.168.1.10, alors l'adresse d'accès sera :http://192.168.1.10:8080
- 
Ci-dessus la liste des ports des interfaces de chaque service : Service Port jackett 9117 prowlarr 9696 rutorrent 8080 sonarr 8989 radarr 7878 qbittorrent 8586 
4. Configuration de rutorrent
Depuis l'interface SSH, les commandes ci-dessous sont à executer en étant a la racine de votre dossier downloads-vpn.
4.a Réactiver la fonction Effacer / Effacer et Supprimer les données
- Par défaut dans l'image de crazymax, la fonction "Effacer et Supprimer les données" sur un torrent n'existe pas. Uniquement la fonction "Effacer", et celle-ci efface le torrent ET les données.
Il n'est donc pas possible d'effacer simplement un torrent du client, sans supprimer les fichiers associés.
Ici nous allons voir comment ré-activer cette fonction :
Ceci doit être fait, conteneur à l’arrêt, pour arrêter le conteneur, utiliser la commande :
docker stop rutorrent
Pour réactiver cette fonction, il faut éditer le fichier rtorrent-rutorrent.env :
Note : Vous pouvez l'éditer directement depuis SSH avec l'utilitaire
nano:nano rtorrent-rutorrent.env.
Retirer erasedata de la ligne ( N°23 ) suivante :
RU_REMOVE_CORE_PLUGINS=erasedata,httprpc,geoip,geoip2
Ce qui donne :
RU_REMOVE_CORE_PLUGINS=httprpc,geoip,geoip2
Enregistrer, et quitter.
Puis, nous allons editer le fichier .rtorrent.rc présent dans downloads-vpn/rutorrent/data/rtorrent :
Note : Vous pouvez l'éditer directement depuis SSH avec l'utilitaire
nano:nano rutorrent/data/rtorrent/.rtorrent.rc.
Les deux dernieres lignes sont :
# Erase data when torrent deleted (no need erasedata plugin on ruTorrent)
method.set_key = event.download.erased,delete_erased,"execute=rm,-rf,--,$d.data_path="
Nous allons commenter la commande avec le caractère # afin de la désactiver, ce qui donne :
# Erase data when torrent deleted (no need erasedata plugin on ruTorrent)
#method.set_key = event.download.erased,delete_erased,"execute=rm,-rf,--,$d.data_path="
Enregistrer, et quitter.
Nous allons re-créer le conteneur rutorrent, avec cette nouvelle configuration, pour cela nous executons simplement la commande : docker-compose up -d.
4.b Sécuriser l’accès à l'interface
- La création du fichier htaccess afin de sécuriser l'acces a l'interface de rutorrent est très simple.
Arreter le conteneur :
docker stop rutorrent
Puis executer la commande suivante :
docker run --rm -it httpd:2.4-alpine htpasswd -Bbn MON_PSEUDO MON_MOT_DE_PASSE >> $(pwd)/rutorrent/passwd/rutorrent.htpasswd
Dans cette commande, il faut modifier : MON_PSEUDO, par le pseudo voulu pour l'identification MON_MOT_DE_PASSE, par le mot de passe souhaité pour l'identification
Une fois la commande executée, redémarrer le conteneur rutorrent :
docker start rutorrent
Maintenant, l'acces à l'interface de rutorrent réclame une identification :)