[Tuto] Installation de OpenVPN, Jackett, Prowlarr, rutorrent, Qbittorrent, Sonarr, Radarr ....

EVO

Administreur
Membre du personnel
25 Novembre 2019
8 351
1 610
278
/var/run/docker.sock
[Tuto] Installation de OpenVPN, Jackett, Prowlarr, rutorrent, Qbittorrent, Sonarr, Radarr et Lidarr en Docker

Bienvenue sur mon nouveau tutoriel.

Celui-ci, je l'espere va vous apprendre a installer Jackett, Prowlarr, rutorrent, Qbittorrent, Sonarr, Radarr et Lidarr et à faire en sorte que tout ce petit monde communique au travers d'un conteneur OpenVPN.

Cette stack docker-compose contient les logiciels :
- OpenVPN Client
- Jackett
- Prowlarr
- rutorrent
- Qbittorrent
- Sonarr
- Radarr
- Lidarr

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
- 1. Prérequis
____- 1.a Création des dossiers
____- 1.b Modifications des .env
____- 1.c Transfert des fichiers dans /downloads-vpn
____- 1.d Mise en place de la config .opvn
____- 1.e Optionnel - Création et Execution de TUN.sh
- 2. Création des conteneurs

____- 2.a Création du réseau
____- 2.b Création des conteneurs
- 3. Les Bases

____- 3.a Commandes de bases ( Docker )
____- 3.b [Accès aux interfaces ( WebUI )
- 4. Configuration de rutorrent
____- 4.a Réactiver la fonction Effacer / Effacer et Supprimer les données
____- 4.b Désactiver la fonction de déplacement automatique des téléchargements terminés
____- 4.c Sécuriser l’accès à l'interface

- 5. Configuration de jackett - Non dispo
____- 5.a Configurer Flaresolverr - Non dispo
- 6. Aller plus loin
____- 6.a S'assurer qu'on passe bien par le VPN
____- 6.b Rajouter les chemins vers ces médias
____- 6.c Mise à jour automatique ( watchtower )

____- 6.d Reboot automatique en cas de soucis ( autoheal )
_________- 6.d.1 Installation de Autoheal
_________- 6.d.2 Surveillance du conteneur VPN
_________- 6.d.3 Surveillance des autres conteneurs

- 7. Dépannage
_________- 7.a Erreur : '/etc/openvpn/update-resolv-conf': No such file or directory

## 1. Prérequis


- Cette stack est concu pour fonctionner dans un dossier downloads-vpn, avec l'architecture suivante :
Code:
downloads-vpn ---- vpn ------------ config
               |                 |_ scripts
               |
               |-- rutorrent ------ data
               |                 |_ passwd
               |                 |_ downloads
               |
               |-- qbittorrent ---- config
               |                 |_ downloads
               |
               |-- prowlarr ------- config
               |
               |-- sonarr --------- config
               |
               |-- radarr --------- config
               |
               |-- jackett -------- config
               |                 |_ downloads
               |
               |-- lidarr --------- config
                                 |_ music

- 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 cd aller dans le dossier de votre choix, par exemple "docker".
Exemple : Si votre dossier "docker" ce trouve dans /volume1, alors la commande sera :
Code:
cd /volume1/docker

- Maintenant que nous sommes dans le bon dossier, nous allons exécuter la commande suivante pour créer d'un coup, toute l'architecture nécessaire :

Code:
mkdir -p downloads-vpn/vpn/{config,scripts} downloads-vpn/rutorrent/{data,passwd,downloads} downloads-vpn/qbittorrent/{config,downloads} downloads-vpn/prowlarr/config downloads-vpn/sonarr/config downloads-vpn/radarr/config downloads-vpn/jackett/{config,downloads} downloads-vpn/lidarr/{config,music}

1.b. Modifications des .env

- Récupérer les fichiers .env, TUN.sh, docker-compose.yml et rtorrent-rutorrent.env sur votre machine ( les fichiers sont disponible en fichiers joints a la fin de ce post )

> Vous pouvez faire un clic droit - Enregistrer sous ... sur les liens ci-dessus pour télécharger les fichiers.

- Par defaut, il n'y a rien a modifier dans rtorrent-rutorrent.env.

- Dans le fichier .env vous 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 ( .env, TUN.sh, docker-compose.yml, rtorrent-rutorrent.env ) dans le dossier /downloads-vpn pré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 :

Code:
auth-user-pass
par :
Code:
auth-user-pass /vpn/vpn.auth

Dans le dossier downloads-vpn/vpn/config en plus du fichier .ovpn, vous aller devoir créer un fichier vpn.auth contenant 2 lignes, sur la 1ere ligne, votre identifiant de connexion au VPN, et sur la 2eme ligne, votre mot de passe.

Exemple :
Code:
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.sh présent, et placer le dans votre dossier downloads-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
Code:
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-network necesaire au fonctionnement du conteneurs VPN :

Code:
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 :
Code:
cd /volume1/docker/downloads-vpn

Puis lancer la création des conteneurs :

Code:
docker-compose up -d

Penser à rajouter sudo avant la commande si vous n'êtes pas root.


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](https://www.forum-nas.fr/viewtopic.php?f=56&t=14030) est possible par exemple.

3.a Commandes de bases ( Docker )
- Arreter un conteneur :
Code:
docker stop <nom_du_conteneur>
Exemple pour le conteneur rutorrent :
Code:
docker stop rutorrent

- Redémarrer un conteneur :
Code:
docker restart <nom_du_conteneur>
Exemple pour le conteneur rutorrent :
Code:
docker restart rutorrent

- Démarrer un conteneur :
Code:
docker start <nom_du_conteneur>
Exemple pour le conteneur rutorrent :
Code:
docker start rutorrent

- Supprimer un conteneur :
Code:
docker rm <nom_du_conteneur>
Exemple pour le conteneur rutorrent :
Code:
docker rm rutorrent

- Créer / Mettre à jour la "stack" :
Code:
docker-compose up -d
Cette 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 qui lui est propre.
- Pour rutorrent, c'est le port 8080. Donc l'adresse sera sous la forme : http://IP_DE_LA_MACHINE:8080
Exemple : Si l'adresse IP de votre machine est 192.168.1.10, alors l'adresse d'accès sera :
- Ci-dessus la liste des ports des interfaces de chaque service :
| Service | Port |
| ------ | ------ |
| qbittorrent | 8586 |
rutorrent 8080
| jackett | 9117 |
| prowlarr | 9696 |
| sonarr | 8989 |
| radarr | 7878 |
| lidarr | 8686 |

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 :
Code:
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 :
Code:
RU_REMOVE_CORE_PLUGINS=erasedata,httprpc,geoip,geoip2

Ce qui donne :
Code:
RU_REMOVE_CORE_PLUGINS=httprpc,geoip,geoip2
Enregistrer, et quitter.

Puis, nous allons editer le fichier [/B].rtorrent.rc[/B] 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 :
Code:
# 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 :
Code:
# 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 Désactiver la fonction de déplacement automatique des téléchargements terminés
L'image crazymax de rtorrent/rutorrent contient une fonction automatique de déplacement des fichiers téléchargés une fois le téléchargement complété. En effet, un téléchargement terminé ira automatiquement ce placer dans le dossier /downloads/complete, pour éviter cela, il faut désactiver cette fonction en suivent ces étapes :

Arreter le conteneur :
Code:
docker stop rutorrent


On edit le fichier .rtorrent.rc :
Code:
nano rutorrent/data/rtorrent/.rtorrent.rc

Sur les dernieres lignes nous avons :
Code:
# Move finished (no need Autotools/Automove plugin on ruTorrent)
method.insert = d.get_finished_dir, simple, "cat=$cfg.download_complete=,$d.custom1="
method.insert = d.move_to_complete, simple, "d.directory.set=$argument.1=; execute=mkdir,-p,$argument.1=; execute=mv,-u,$argument.0=,$argument.1=; d.save_full_session="
method.set_key = event.download.finished,move_complete,"d.move_to_complete=$d.data_path=,$d.get_finished_dir="

Nous allons rajouter un diese `#` devant les 3 lignes commençant par `method...`, de cette façon :
Code:
# Move finished (no need Autotools/Automove plugin on ruTorrent)
#method.insert = d.get_finished_dir, simple, "cat=$cfg.download_complete=,$d.custom1="
#method.insert = d.move_to_complete, simple, "d.directory.set=$argument.1=; execute=mkdir,-p,$argument.1=; execute=mv,-u,$argument.0=,$argument.1=; d.save_full_session="
#method.set_key = event.download.finished,move_complete,"d.move_to_complete=$d.data_path=,$d.get_finished_dir="

Une fois les modifications effectuées, on enregistre et on quitte le fichier.

Puis on relance rutorrent :
Code:
docker start rutorrent

4.c 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 :
Code:
docker stop rutorrent

Puis executer la commande suivante :
Code:
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 :
Code:
docker start rutorrent

Maintenant, l'acces à l'interface de rutorrent réclame une identification :)

Attention : Comme signalé par @akis , si vous sécurisé l'acces a votre rutorrent, il faut également modifier le healtcheck du conteneur !
Code:
test: ["CMD-SHELL", "curl --fail  -u 'MON_PSEUDO:MON_MOT_DE_PASSE' http:/x.x.x.x:8080/ || exit 1"]
Plus d'info : https://www.forum-nas.fr/threads/tu...orrent-sonarr-radarr.16625/page-9#post-112382

5. Configuration de jackett
En construction ..... :(
5.a Configurer Flaresolverr
En construction ..... :(

6. Aller plus loin
- Retrouvez ici des astuces pour aller "un peu plus loin" dans la configurations de vos conteneurs, avec par exemple, la méthode pour rajouter des montages ( dossier de votre serveur dans le conteneur ), ou régler la mise à jour automatique de vos conteneurs.

/!\ Depuis l'interface SSH, les commandes ci-dessous sont à executer en étant à la racine de votre dossier downloads-vpn.

6.a S'assurer qu'on passe bien par le VPN

Pour s'assurer que notre client torrent utilise bien le conteneur VPN, on peu utliser un service comme Check my IP.

Quand vous allez cliquer sur le lien du site, vous arrivez sur une page indiquant à gauche votre adresse IP.

Cliquer sur Download test torrent fileimage pour récupérer le .torrent, ne fermer pas la page du site et rendez-vous dans votre client torrent.

Placer le torrent en téléchargement comme un torrent normal, et retourner sur la page du site Check my IP. Quelques dizaines de secondes plus tard, la case de droite doit retourner l'IP de votre VPN ( une IP différente de la votre ! )

Si c'est le cas, c'est parfait :) :cool:
Si la case n'affiche rien, vérifier que le conteneur VPN à établi la connexion. :?

6.b Rajouter les chemins vers ces médias
Comment rajouter simplement des montages de dossiers aux instances rutorrent, qbittorrent, sonarr, ... ?

Pour cela plusieurs méthodes, en voici une :
Nous allons ici rajouter un dossier de Films ( /volume1/films ) et un dossier Series ( /volume1/series )
Editer le fichier [/B].env[/B] avec la commande nano .env

En dessus de la ligne RACINE=... rajouter les lignes vers vos medias sous la forme :
Code:
NOM_VARIABLE=/Chemin/Dossier

Dans notre exemple, le fichier [/B].env[/B] aura donc la forme suivante :
Code:
PUID=1000
PGID=1000
TZ=Europe/Paris

RACINE=/volume1/docker/downloads-vpn

FILMS=/volume1/films
SERIES=/volume1/series
Une fois les modifications effectuées, on enregistre et on quitte le fichier.

Maintenant, nous allons donner acces à ces dossiers a nos conteneurs. Prenons exemple avec le conteneur rutorrent.
Editer le fichier docker-compose.yml avec la commande nano docker-compose.yml

Trouver dans le fichier la configuration du conteneur rutorrent que voici :
Code:
  rtorrent-rutorrent:
    image: crazymax/rtorrent-rutorrent:latest
    container_name: rutorrent
#    labels:
#     - com.centurylinklabs.watchtower.enable=true
#     - autoheal=true
    depends_on:
      - vpn
    env_file:
      - "./rtorrent-rutorrent.env"
    environment:
      - PUID=${PUID}
      - PGID=${PGID}
      - TZ=${TZ}
    network_mode: "service:vpn"
    volumes:
      - ${RACINE}/rutorrent/data:/data
      - ${RACINE}/rutorrent/passwd:/passwd
      - ${RACINE}/rutorrent/downloads:/downloads
    ulimits:
      nproc: 65535
      nofile:
         soft: 32000
         hard: 40000
    restart: unless-stopped

Dans la partie volumes, nous allons rajouter 2 lignes correspondantes à nos dossiers Films et Series qui nous avons configurés dans le fichier [/B].env[/B].

De cette manière :
Code:
  rtorrent-rutorrent:
    image: crazymax/rtorrent-rutorrent:latest
    container_name: rutorrent
#    labels:
#     - com.centurylinklabs.watchtower.enable=true
#     - autoheal=true
    depends_on:
      - vpn
    env_file:
      - "./rtorrent-rutorrent.env"
    environment:
      - PUID=${PUID}
      - PGID=${PGID}
      - TZ=${TZ}
    network_mode: "service:vpn"
    volumes:
      - ${RACINE}/rutorrent/data:/data
      - ${RACINE}/rutorrent/passwd:/passwd
      - ${RACINE}/rutorrent/downloads:/downloads
      - ${FILMS}:/media/film
      - ${SERIES}:/media/series
    ulimits:
      nproc: 65535
      nofile:
        soft: 32000
        hard: 40000
    restart: unless-stopped
De cette manières, les dossiers films et séries seront accessible dans le conteneur rutorrent dans un dossier /media. Vous pouvez suivre cette même procédure pour les autres conteneurs.

Pour appliquer les changements, il ne reste qu'à mettre à jour la stack avec la commande docker-compose up -d, plus d'info dans le point 3.a Commandes de bases ( Docker ).

6.c Mise à jour automatique ( watchtower )
Watchtower est un conteneur qui va surveiller vos conteneurs à la recherche de mise à jour disponible ! Si une mise a jour est disponible, alors Watchtower, arrete le conteneur, récupere la nouvelle image, et re-créé le conteneur avec le nouvelle image.

Pour l'installation de Watchtower en Docker sur votre serveur, je vous laisse avec ce tuto : Installation de Watchtower en Docker un NAS Synology, le point 1 vous apprendra à installer Watchtower.

Une fois Watchtower installé, il vous suffit de décommenter pour chaque services la ligne labels ( si cela n'est pas déja fait ) et la ligne - com.centurylinklabs.watchtower.enable=true.

Exemple :
Code:
  rtorrent-rutorrent:
    image: crazymax/rtorrent-rutorrent:latest
    container_name: rutorrent
    labels:
     - com.centurylinklabs.watchtower.enable=true
#     - autoheal=true
    depends_on:
      - vpn
    env_file:
      - "./rtorrent-rutorrent.env"
    environment:
      - PUID=${PUID}
      - PGID=${PGID}
      - TZ=${TZ}
    network_mode: "service:vpn"
    volumes:
      - ${RACINE}/rutorrent/data:/data
      - ${RACINE}/rutorrent/passwd:/passwd
      - ${RACINE}/rutorrent/downloads:/downloads
    ulimits:
      nproc: 65535
      nofile:
        soft: 32000
        hard: 40000
    restart: unless-stopped
La procédure est identique pour chacun des services du docker-compose que vous souhaitez surveiller.

Pour appliquer les changements, il ne reste qu'à mettre à jour la stack avec la commande docker-compose up -d, plus d'info dans le point 3.a Commandes de bases ( Docker ).

6.d Reboot automatique en cas de soucis ( autoheal )
- En cas de soucis de VPN la connexion est coupée, et donc, plus rien ne fonctionne. Souvent, un reboot soucis à faire re-prendre la connexion VPN. Afin de ne pas avoir à la faire manulement nous allons utiliser le conteneur autoheal|/url]. Celui-ci va surveiller notre conteneur VPN, et dans le cas ou la connexion est interrompu va redémarrer le conteneur sans action de notre part.
Malheuresement, cela ne suffit pas, les conteneurs rattaché au conteneur vpn doivent également être redémarrés :)
Nous allons voir ci-dessous comment mettre ceci en place.
6.d.1 Installation de Autoheal
- Dans un 1er temps, installer le conteneur autoheal en suivant le point 2/ de ce tutoriel : [url=https://www.forum-nas.fr/viewtopic.php?f=90&t=16019]Redémarrer automatiquement un conteneur Docker avec un statut unhealthy


6.d.2 Surveillance du conteneur VPN

Maintenant, pour activer la surveillance du conteneur VPN, il vous suffit de décommenter pour le service vpn la ligne labels ( si cela n'est pas déja fait ) et la ligne - autoheal=true.

Exemple :
Code:
  vpn:
    image: dperson/openvpn-client:latest
    container_name: vpn
    restart: unless-stopped
    cap_add:
     - NET_ADMIN
    sysctls:
     - net.ipv6.conf.all.disable_ipv6=0
    security_opt:
     - label:disable
    labels:
#     - com.centurylinklabs.watchtower.enable=true
     - autoheal=true
    environment:
     - PUID=${PUID}
     - PGID=${PGID}
     - TZ=${TZ}
    networks:
     - vpn-network
    dns:
     - 84.200.69.80
     - 8.8.8.8
     - 9.9.9.9
    ports :
     - 8586:8586 # WebUI qbittorrent
     - 9117:9117 # WebUI jackett
     - 7878:7878 # WebUI radarr
     - 8989:8989 # WebUI sonarr
     - 8191:8191 # Flaresolver
     - 8080:8080 # WebUI rutorrent
     - 9696:9696 # WebUI prowlarr
     - 8686:8686 # WebUI Lidarr
    devices:
     - /dev/net/tun:/dev/net/tun
    volumes:
     - ${RACINE}/vpn/config:/vpn
     - ${RACINE}/vpn/scripts:/scripts
    command: '-f "" -r 192.168.0.0/24'
    healthcheck:
      test: ["CMD", "curl", "-Ss", "ifconfig.me"]
      interval: 60s
      timeout: 15s

Le conteneur vpn possèdent un healcheck celui-ci sera surveillé par autoheal, et redémarré en cas de soucis.

6.d.3 Surveillance des autres conteneurs

- Étudions maintenant la mise en place sur les autres conteneurs. Nous allons prendre exemple sur rtorrent-rutorrent, la méthode sera identique pour les autres conteneurs :

Le Healtcheck que nous allons utiliser ce présente comme ceci :
Code:
    healthcheck:
     test: ["CMD-SHELL", "curl --fail http://PASSERELLE_NETWORK_VPN:PORT_WEB_UI/ || exit 1"]
     interval: 1m30s
     timeout: 10s
     retries: 3

Ici deux choses sont à modifier `PASSERELLE_NETWORK_VPN` et `PORT_WEB_UI`.

- PASSERELLE_NETWORK_VPN est à modifier par l'adresse IP de la passerelle de votre réseau vpn-network.
Pour la connaitre, en SSH, executer la commande `docker network inspect vpn-network`, dans la réponse à cette commande, vous allez trouver une adresse IP précédée de *Gateway*, par exemple : "Gateway": "172.20.0.1"
Ici, l'adresse de la passerelle est donc : 172.20.0.1.


- PORT_WEB_UI est à modifier par le port de l'interface du service, référez-vous à [Accès aux interfaces ( WebUI )](#3-b-accès-aux-interfaces-webui) pour connaitre ce port.
Dasn notre exemple, rutorrent utilise le port 8080.


Voici donc notre healcheck adapté à rutorrent :
Code:
    healthcheck:
     test: ["CMD-SHELL", "curl --fail http://172.20.0.1:8080/ || exit 1"]
     interval: 1m30s
     timeout: 10s
     retries: 3

Maintenant que notre healthcheck est pret, nous allons l'intégrer à notre compose. Tous les services du compose sont disposés de la même façon.
Le début du service commence par une ligne avec le nom du service suivi de `:` et la fin par la politique de redémarrage du conteneur : restart: unless-stopped.

Deux choses à faire pour mettre en place la surveillance sur notre conteneur maintenant :
1 - Nous allons placer notre healcheck à la fin du service soit, à la ligne, après restart: unless-stopped.
2 - Décommenter la ligne labels ( si cela n'est pas déja fait ) et la ligne - autoheal=true.

Exemple :
Code:
  rtorrent-rutorrent:
    image: crazymax/rtorrent-rutorrent:latest
    container_name: rutorrent
    labels:
#      - com.centurylinklabs.watchtower.enable=true
      - autoheal=true
    depends_on:
      - vpn
    env_file:
      - "./rtorrent-rutorrent.env"
    environment:
      - PUID=${PUID}
      - PGID=${PGID}
      - TZ=${TZ}
    network_mode: "service:vpn"
    volumes:
      - ${RACINE}/rutorrent/data:/data
      - ${RACINE}/rutorrent/passwd:/passwd
      - ${RACINE}/rutorrent/downloads:/downloads
    ulimits:
      nproc: 65535
      nofile:
        soft: 32000
        hard: 40000
    restart: unless-stopped
    healthcheck:
     test: ["CMD-SHELL", "curl --fail http://172.20.0.1:8080/ || exit 1"]
     interval: 1m30s
     timeout: 10s
     retries: 3

La procédure est identique pour chacun des services du docker-compose que vous souhaitez surveiller. (
Note : N'oublier pas d'adapter PORT_WEB_UI en fonction du conteneur.

Pour appliquer les changements, il ne reste qu'à mettre à jour la stack avec la commande docker-compose up -d, plus d'info dans le point 3.a Commandes de bases ( Docker ).

6. Dépannage
7.a Erreur : '/etc/openvpn/update-resolv-conf': No such file or directory

Si vous rencontrez l'erreur de type : '/etc/openvpn/update-resolv-conf': No such file or directory
Vous avez probalement besoin de commenter ses lignes dans votre fichiers de configuration.
Plus d'info : https://www.forum-nas.fr/threads/tu...rrent-sonarr-radarr.16625/page-19#post-131131

2024-01-27 - Retrait du point 4.a ( Réactiver la fonction Effacer / Effacer et Supprimer les données ) qui n'est plus necessaire depuis l'update de l'image , voir ici
2023-03-01 - Rajout du point 7.a, merci @Drthrax74
2022-01-25 - Ajout d'une note dans le paragraphe 4.c suite a une remarque de @aksis ( voir ici )
2021-10-09 - Remplacement du dépot ghcr.io par lscr.io pour les images linuxserver dans le docker-compose.
2021-09-06 - Ajout 4.b - Désactiver la fonction de déplacement automatique des téléchargements terminés
2021-09-02 - Ajout oubli étape "docker-compose up -d" dans 2.b + Manque /downloads pour jackett + mise en forme 3.a
2021-08-27 - Correction lien pour récupérer les fichiers .env, TUN.sh, docker-compose.yml, ...
2021-08-23 - Correction d'erreur de typo ( qbittorrent ), merci @narol
2021-08-22 - Ajout de "6.d Reboot automatique en cas de soucis ( autoheal )"
2021-08-22 - Ajout de Lidarr
 

Pièces jointes

  • rtorrent-rutorrent.env
    986 bytes · Affichages: 36
  • docker-compose.yml
    4.9 KB · Affichages: 52
  • TUN.sh
    341 bytes · Affichages: 35
  • .env
    74 bytes · Affichages: 37
Dernière édition:
Merci pour cet excellent tutoriel! C'est rare de voir quelque chose d'aussi fiable et aussi complet. Je cherchais justement depuis plusieurs mois un tutoriel sur comment configurer ce genre de client torrent. J'en avais trouvé quelques uns mais le problème était qu'il étaient bien souvent dépassés ou incompatible avec mon installation.
Bravo en tout cas! :D

PS: Je me suis inscrit juste pour écrire ce commentaire, il faut le faire pour que j'y prenne le temps! x)
 
SofianeLasri a dit:
Merci pour cet excellent tutoriel! C'est rare de voir quelque chose d'aussi fiable et aussi complet. Je cherchais justement depuis plusieurs mois un tutoriel sur comment configurer ce genre de client torrent. J'en avais trouvé quelques uns mais le problème était qu'il étaient bien souvent dépassés ou incompatible avec mon installation.
Bravo en tout cas! :D

PS: Je me suis inscrit juste pour écrire ce commentaire, il faut le faire pour que j'y prenne le temps! x)



Merci beaucoup pour ton message :giggle: :giggle:
 
Bonjour EVOTk
J'ai suivi ton tuto à la lettre, j'arrive sans problème jusqu'au point 2a.Création du Réseau mais après je sèche !!!
Que faut-il faire au point 2b.Création des conteneurs ?
Aucun conteneur apparait dans Docker, je n'arrive pas à lancer ruTorrent via la commande rutorrent : docker start rutorrent
J'ai zappé une étape ?
Merci pour ton aide.
 
Non c'est moi qui est zappé !
Apres la commande cd ... pour te placer dans le dossier ou tu a placé tes fichier docker-compose, ...
Tu fait :
Code:
docker-compose up -d
Pour créer les conteneurs

( met un sudo devant si tu doit passer en root )
Code:
sudo docker-compose up -d

Je vais corriger le tuto :whistle:


Edit :
UPDATE : 2021-09-02 - Ajout oubli étape "docker-compose up -d" dans 2.b + dossier downloads de jackett
 
EVOTk
Tout s'est bien installé sauf Jackett, il manquait apparement un dossier downloads
Par contre j'ai arrêté le conteneur rutorrent qui était bien lancé et lorsque je veux démarrer le conteneur via la commande rutorrent : docker start rutorrent, j'ai le message suivant :
-ash: rutorrent: command not found
 
Tu exécute bien les commandes en root ou avec sudo devant ?

Code:
docker start rutorrent
ou
Code:
sudo docker start rutorrent

Ici ton erreur me fait penser a une ligne qui aurai un espace en trop ou un saut a la ligne

Edit , je viens de comprendre ton erreur, tu place rutorrent devant, il ne faut pas. Je modifie la mise en forme du tuto pour eviter la confusion ;)
 
EVOTk a dit:
Edit , je viens de comprendre ton erreur, tu place rutorrent devant, il ne faut pas. Je modifie la mise en forme du tuto pour eviter la confusion ;)

Oui c'est ça :D

Un grand merci car avec ton précédent tuto sur rutorrent via vpn, je n'avais pas réussi !
Je vais me lancer dans la création de dossier pour envoyer les torrents dans les bons dossiers !
Par contre je n'ai pas réussi au point 6a. s'assurer qu'on passe bien par le VPN.
La case de droite reste définitivement vide mais via un autre torrent de test, l'IP retourné est bien l'IP de mon VPN !
 
Nouch a dit:
Un grand merci car avec ton précédent tuto sur rutorrent via vpn, je n'avais pas réussi !
De rien, tu es visiblement mon 1er testeur de cette nouvelle version :) Merci pour les remonté d'infos, cela me permet de corrigé les erreurs ou les choses "pas très claires".
J'ai essayé de rendre le tuto plus simple a prendre en main, par exemple en fournissant les fichiers a simplement télécharger et éditer plutot que de devoir les créer par exemple ...

Nouch a dit:
Par contre je n'ai pas réussi au point 6a. s'assurer qu'on passe bien par le VPN. La case de droite reste définitivement vide mais via un autre torrent de test, l'IP retourné est bien l'IP de mon VPN !
Utilise tu un bloqueur de pub sur ton navigateur ou autre ? Je pense que cela pourrai etre une raison. Mais si cela marche avec un autre site, alors c'est bon :) Peut etre aussi chez eux qu'il y a un soucis en ce moment ...
 
Ton Tuto est hyper bien fait et très simple à suivre !
J'en profite mais sur rutorrent le port d'écoute est fermé.
Sais-tu ce qu'il faut faire pour qu'il passe au statut ouvert ?
 
Nouch a dit:
Ton Tuto est hyper bien fait et très simple à suivre !
J'en profite mais sur rutorrent le port d'écoute est fermé.
Sais-tu ce qu'il faut faire pour qu'il passe au statut ouvert ?

Il faut que ton VPN accepte le port fowarding, pour ma part mon VPN ne l'accepte pas. cela n'empeche pas le seed, mais par contre, tu n'est pas dans les prrioritaire loin de la :)
Peu de VPN accepte le port fowarding.
 
EVOTk a dit:
Il faut que ton VPN accepte le port fowarding, pour ma part mon VPN ne l'accepte pas. cela n'empeche pas le seed, mais par contre, tu n'est pas dans les prrioritaire loin de la :)
Peu de VPN accepte le port fowarding.

Merci ;)
 
Bonjour,

J'ai surement oublié quelque chose mais j'ai un soucis.

Pour info, je tente de mettre ca en place sur un syno avec DSM 7.

Quand je lance la commande
Code:
docker-compose up -d

J'ai les erreur suivantes :
Code:
WARNING: The PUID variable is not set. Defaulting to a blank string.
WARNING: The PGID variable is not set. Defaulting to a blank string.
WARNING: The TZ variable is not set. Defaulting to a blank string.
WARNING: The RACINE variable is not set. Defaulting to a blank string.
Creating vpn ... error

ERROR: for vpn  Cannot start service vpn: Bind mount failed: '/vpn/scripts' does not exists

ERROR: for vpn  Cannot start service vpn: Bind mount failed: '/vpn/scripts' does not exists
ERROR: Encountered errors while bringing up the project.

J'ai pourtant bien modifier le fichier env.txt mais il ne semble pas pris en compte.

Je serait pas contre un petit coup de pouce.

Merci d'avance
 
Salut,
Le fichier ne doit pas être nommer env.txt mais :

Code:
.env

Soit un point suivi de env uniquement
 
Effectivement... Ca commençait mal...

Bon, erreur corrigé, mais problème non résolu.

J'ai supprimer le conteneur vpn créé ainsi que le vpn-network. J'ai relancé les commande depuis le début et je me retrouve avec ca :

Code:
Herashgarde@Gaia:/volume1/docker/downloads-vpn$ sudo docker-compose up -d
WARNING: The PUID variable is not set. Defaulting to a blank string.
WARNING: The PGID variable is not set. Defaulting to a blank string.
WARNING: The TZ variable is not set. Defaulting to a blank string.
WARNING: The RACINE variable is not set. Defaulting to a blank string.
Creating vpn ... error

ERROR: for vpn  Cannot start service vpn: Bind mount failed: '/vpn/config' does not exists

ERROR: for vpn  Cannot start service vpn: Bind mount failed: '/vpn/config' does not exists
ERROR: Encountered errors while bringing up the project.

pour info, l'arborescence me semble conforme :
Code:
Herashgarde@Gaia:/volume1/docker/downloads-vpn$ ll
total 20
drwxrwxrwx+ 1 Herashgarde users  210 Sep  3 15:10 .
drwxrwxrwx+ 1 root        root   136 Sep  3 09:41 ..
-rwxrwxrwx+ 1 Herashgarde users 5109 Sep  3 09:46 docker-compose.yml
-rwxrwxrwx+ 1 Herashgarde users   73 Sep  3 12:41 env
drwxrwxrwx+ 1 Herashgarde users   30 Sep  3 09:41 jackett
drwxrwxrwx+ 1 Herashgarde users   22 Sep  3 09:41 lidarr
drwxrwxrwx+ 1 Herashgarde users   12 Sep  3 09:41 prowlarr
drwxrwxrwx+ 1 Herashgarde users   30 Sep  3 09:41 qbittorrent
drwxrwxrwx+ 1 Herashgarde users   12 Sep  3 09:41 radarr
-rwxrwxrwx+ 1 Herashgarde users  961 Sep  3 09:46 rtorrent-rutorrent.env
drwxrwxrwx+ 1 Herashgarde users   38 Sep  3 09:41 rutorrent
drwxrwxrwx+ 1 Herashgarde users   12 Sep  3 09:41 sonarr
-rwxr-xr-x  1 Herashgarde users  341 Sep  3 09:46 TUN.sh
drwxrwxrwx+ 1 Herashgarde users   26 Sep  3 09:41 vpn
Herashgarde@Gaia:/volume1/docker/downloads-vpn$ cd vpn/
Herashgarde@Gaia:/volume1/docker/downloads-vpn/vpn$ ll
total 0
drwxrwxrwx+ 1 Herashgarde users  26 Sep  3 09:41 .
drwxrwxrwx+ 1 Herashgarde users 210 Sep  3 15:10 ..
drwxrwxrwx+ 1 Herashgarde users  92 Sep  3 12:31 config
drwxrwxrwx+ 1 Herashgarde users   0 Sep  3 09:41 scripts
Herashgarde@Gaia:/volume1/docker/downloads-vpn/vpn$ cd config/
Herashgarde@Gaia:/volume1/docker/downloads-vpn/vpn/config$ ll
total 20
drwxrwxrwx+ 1 Herashgarde users   92 Sep  3 12:31 .
drwxrwxrwx+ 1 Herashgarde users   26 Sep  3 09:41 ..
-rwxrwxrwx+ 1 Herashgarde users 2264 Sep  2 17:15 ca.crt
-rwxrwxrwx+ 1 Herashgarde users 2362 Sep  2 17:15 client.crt
-rwxrwxrwx+ 1 Herashgarde users 3272 Sep  2 17:15 client.key
-rwxrwxrwx+ 1 Herashgarde users  375 Sep  3 12:29 openvpn.ovpn
-rwxrwxrwx+ 1 Herashgarde users   21 Sep  3 12:31 vpn.auth

désolé si j'ai encore mal fait quelque chose :whistle:

edit :

J'ai ajouté en pièce jointe une capture d'écran quand je modifie le conteneur directement dans l'appli docker de mon syno. aucun volume ni variables ne sont remplie.
doit-je les remplir à la main ?
 

Pièces jointes

  • vpn.jpg
    vpn.jpg
    45 KB · Affichages: 107
Toujours pareil, il manque le . devant env

yy6MHMH.png