Merge pull request 'Update stack downloads-vpn' (#96) from evo-readme-stackdl into master
Reviewed-on: #96
This commit was merged in pull request #96.
	This commit is contained in:
		| @@ -0,0 +1,15 @@ | ||||
| #!/bin/sh | ||||
|  | ||||
| # Create the necessary file structure for /dev/net/tun | ||||
| if ( [ ! -c /dev/net/tun ] ); then | ||||
|   if ( [ ! -d /dev/net ] ); then | ||||
|     mkdir -m 755 /dev/net | ||||
|   fi | ||||
|   mknod /dev/net/tun c 10 200 | ||||
|   chmod 0755 /dev/net/tun | ||||
| fi | ||||
|  | ||||
| # Load the tun module if not already loaded | ||||
| if ( !(lsmod | grep -q "^tun\s") ); then | ||||
|   insmod /lib/modules/tun.ko | ||||
| fi | ||||
| @@ -1,37 +1,8 @@ | ||||
| ## Discord Plex FR : https://discord.gg/ERpYMqS | ||||
| ## Version 2021-08-17 | ||||
| ## | ||||
| ##              NOTE : ATTENTION NE PAS BASCULER SUR L'IMAGE CRAZYMAX AVEC LES FICHIERS DE | ||||
| ##                           VOTRE ANCIENNE CONFIG LINUXSERVER/RUTORRENT | ||||
| ## Voir : https://blog.thelazyfox.xyz/docker-linuxserver-rutorrent-deprecated-what-i-have-done/ | ||||
| ## Pour une aide à l'installation, consulter le README | ||||
| ## | ||||
| ## | ||||
| ## Dans le fichier .env, modifier les variables PUID/GUID avec vos ID  | ||||
| ## Plus d'info : https://www.forum-nas.fr/viewtopic.php?f=56&t=13213 | ||||
| ## Modifier également la variable "RACINE" qui doit indiquer le chemin racine | ||||
| ## Dans ce dossier ( par defaut downloads-vpn ) il doit y avoir l'arborescence suivante : | ||||
| ## | ||||
| ##             downloads-vpn ---- vpn ------------ config | ||||
| ##                            |                 |_ scripts | ||||
| ##                            | | ||||
| ##                            |-- rutorrent ------ data | ||||
| ##                            |                 |_ passwd | ||||
| ##                            |                 |_ downloads | ||||
| ##                            | | ||||
| ##                            |-- prowlarr ------- config | ||||
| ##                            | | ||||
| ##                            |-- sonarr --------- config | ||||
| ##                            |                 |_ downloads | ||||
| ##                            | | ||||
| ##                            |-- radarr --------- config | ||||
| ##                            |                 |_ downloads | ||||
| ##                            | | ||||
| ##                            |-- jackett -------- config | ||||
| ##                            | | ||||
| ##                            |-- qbitorrent ----- config | ||||
| ##                            |                 |_ downloads | ||||
| ## | ||||
|  | ||||
| version: '3.2' | ||||
|        | ||||
| services:  | ||||
| @@ -63,7 +34,7 @@ services: | ||||
|      - 9117:9117 # WebUI jackett  | ||||
|      - 7878:7878 # WebUI radarr | ||||
|      - 8989:8989 # WebUI sonarr | ||||
|      - 8191:8191 #flaresolver | ||||
|      - 8191:8191 # Flaresolver | ||||
|      - 8080:8080 # WebUI rutorrent crazymax | ||||
|      - 9696:9696 # WebUI prowlarr | ||||
|     devices:  | ||||
| @@ -79,7 +50,7 @@ services: | ||||
|  | ||||
|   rtorrent-rutorrent: | ||||
|     image: crazymax/rtorrent-rutorrent:latest | ||||
|     container_name: rutorrent-crazymax | ||||
|     container_name: rutorrent | ||||
| #    labels: | ||||
| #     - com.centurylinklabs.watchtower.enable=true | ||||
| #     - autoheal=true | ||||
| @@ -102,11 +73,6 @@ services: | ||||
|         soft: 32000 | ||||
|         hard: 40000 | ||||
|     restart: unless-stopped | ||||
| #    healthcheck: | ||||
| #     test: ["CMD-SHELL", "curl --fail http://172.22.0.1:8080/ || exit 1"] | ||||
| #     interval: 1m30s | ||||
| #     timeout: 10s | ||||
| #     retries: 3 | ||||
|  | ||||
|   prowlarr: | ||||
|     image: ghcr.io/linuxserver/prowlarr:develop | ||||
| @@ -121,16 +87,9 @@ services: | ||||
|      - PUID=${PUID} | ||||
|      - PGID=${PGID} | ||||
|      - TZ=${TZ} | ||||
| #     - DOCKER_MODS=ghcr.io/gilbn/theme.park:prowlarr | ||||
| #     - TP_THEME=space-gray | ||||
|     volumes: | ||||
|       - ${RACINE}/prowlarr/config:/config | ||||
|     restart: unless-stopped | ||||
| #    healthcheck: | ||||
| #     test: ["CMD-SHELL", "curl --fail http://172.22.0.1:9696/ || exit 1"] | ||||
| #     interval: 1m30s | ||||
| #     timeout: 10s | ||||
| #     retries: 3 | ||||
|        | ||||
|   sonarr: | ||||
|     image: ghcr.io/linuxserver/sonarr:latest | ||||
| @@ -149,11 +108,6 @@ services: | ||||
|       - ${RACINE}/sonarr/config:/config | ||||
|       - ${RACINE}/rutorrent/downloads:/downloads | ||||
|     restart: unless-stopped | ||||
| #    healthcheck: | ||||
| #     test: ["CMD-SHELL", "curl --fail http://172.22.0.1:8989/ || exit 1"] | ||||
| #     interval: 1m30s | ||||
| #     timeout: 10s | ||||
| #     retries: 3 | ||||
|      | ||||
|   radarr: | ||||
|     image: ghcr.io/linuxserver/radarr:nightly | ||||
| @@ -171,12 +125,7 @@ services: | ||||
|     volumes: | ||||
|       - ${RACINE}/radarr/config:/config | ||||
|       - ${RACINE}/rutorrent/downloads:/downloads | ||||
|     restart: unless-stopped | ||||
| #    healthcheck: | ||||
| #     test: ["CMD-SHELL", "curl --fail http://172.22.0.1:7878/ || exit 1"] | ||||
| #     interval: 1m30s | ||||
| #     timeout: 10s | ||||
| #     retries: 3   | ||||
|     restart: unless-stopped  | ||||
|      | ||||
|   jackett: | ||||
|     image: ghcr.io/linuxserver/jackett | ||||
| @@ -195,11 +144,6 @@ services: | ||||
|       - ${RACINE}/jackett/config:/config | ||||
|       - ${RACINE}/jackett/downloads:/downloads | ||||
|     restart: unless-stopped | ||||
| #    healthcheck: | ||||
| #     test: ["CMD-SHELL", "curl --fail http://172.22.0.1:9117/ || exit 1"] | ||||
| #     interval: 1m30s | ||||
| #     timeout: 10s | ||||
| #     retries: 3 | ||||
|      | ||||
|   flaresolverr: | ||||
|     image: ghcr.io/flaresolverr/flaresolverr | ||||
| @@ -231,11 +175,6 @@ services: | ||||
|      - ${RACINE}/qbittorrent/config:/config | ||||
|      - ${RACINE}/qbittorrent/downloads:/downloads | ||||
|     restart: unless-stopped | ||||
| #    healthcheck: | ||||
| #     test: ["CMD-SHELL", "curl --fail http://172.22.0.1:8586/ || exit 1"] | ||||
| #     interval: 1m30s | ||||
| #     timeout: 10s | ||||
| #     retries: 3 | ||||
|  | ||||
| networks: | ||||
|   vpn-network: | ||||
|   | ||||
| @@ -0,0 +1,411 @@ | ||||
| Installation de la stack "Downloads-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  | ||||
| - 1. [Prérequis](#1-prérequis) | ||||
|   - 1.a [Création des dossiers](#1-a-création-des-dossiers) | ||||
|   - 1.b [Modifications des .env](#1-b-modifications-des-env) | ||||
|   - 1.c [Transfert des fichiers dans /downloads-vpn](#1-c-transfert-des-fichiers-dans-downloads-vpn) | ||||
|   - 1.d [Mise en place de la config .opvn](#1-d-mise-en-place-de-la-config-opvn) | ||||
|   - 1.e [Optionnel - Création et Execution de TUN.sh](#1-e-optionnel-création-et-execution-de-tun) | ||||
| - 2. [Création des conteneurs](#2-création-des-conteneurs) | ||||
|   - 2.a [Création du réseau](#2-a-création-du-réseau) | ||||
|   - 2.b [Création des conteneurs](#2-b-création-des-conteneurs) | ||||
| - 3. [Les Bases](#3-les-bases) | ||||
|   - 3.a [Commandes de bases ( Docker )](#3-a-commandes-de-bases-docker) | ||||
|   - 3.b [Accès aux interfaces ( WebUI )](#3-b-accès-aux-interfaces-webui) | ||||
| - 4. [Configuration de rutorrent](#4-configuration-de-rutorrent) | ||||
|   - 4.a [Réactiver la fonction Effacer / Effacer et Supprimer les données](#4-a-réactiver-la-fonction-effacer-effacer-et-supprimer-les-données) | ||||
|   - 4.b [Sécuriser l’accès à l'interface](#4-b-sécuriser-l-accès-à-l-interface) | ||||
| - 5. [Configuration de jackett](#5-configuration-de-jackett) | ||||
|   - 5.a [Configurer Flaresolverr](#5-a-configurer-flaresolverr) | ||||
| - 6. [Aller plus loin](#6-aller-plus-loin) | ||||
|   - 6.a [Rajouter les chemins vers ces médias](#6-a-rajouter-les-chemins-vers-ces-médias) | ||||
|   - 6.b [Mise à jour automatique ( watchtower )](#6-b-mise-à-jour-automatique-watchtower) | ||||
|   - 6.c [Reboot automatique en cas de soucis ( autoheal )](#6-c-reboot-automatique-en-cas-de-soucis-autoheal) | ||||
| - 7. Dépannage ( Ce construira au fur et a mesure des questions ) | ||||
|  | ||||
| ## 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 `cd` aller 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.yml` et `rtorrent-rutorrent.env`. | ||||
|  | ||||
| - 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](https://www.forum-nas.fr/viewtopic.php?f=56&t=13213) | ||||
| **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-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 :  | ||||
| > | ||||
| >``` | ||||
| >auth-user-pass | ||||
| >``` | ||||
| >par : | ||||
| >``` | ||||
| >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 :** | ||||
| >``` | ||||
| >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` | ||||
| ``` | ||||
| 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 : | ||||
|  | ||||
| ``` | ||||
| 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](https://www.forum-nas.fr/viewtopic.php?f=56&t=14030) 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 -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 quil 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 : `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 :) | ||||
|  | ||||
| ## 5. [Configuration de jackett](#5-configuration-de-jackett)] | ||||
| ### 5.a [Configurer Flaresolverr](#5-a-configurer-flaresolverr)] | ||||
|  | ||||
| ## 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 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 `.env` avec la commande `nano .env` | ||||
|  | ||||
| En dessus de la ligne `RACINE=...` rajouter les lignes vers vos medias sous la forme : | ||||
| ``` | ||||
| NOM_VARIABLE=/Chemin/Dossier | ||||
| ``` | ||||
|  | ||||
| Dans notre exemple, le fichier `.env` aura donc la forme suivante : | ||||
| ``` | ||||
| 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 : | ||||
| ``` | ||||
|   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 `.env`. | ||||
|  | ||||
| De cette manière : | ||||
| ``` | ||||
|   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 )](#3-a-commandes-de-bases-docker). | ||||
|  | ||||
| ### 6.b 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](https://www.forum-nas.fr/viewtopic.php?f=56&t=14474), 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 :** | ||||
| ``` | ||||
|   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 )](#3-a-commandes-de-bases-docker). | ||||
|  | ||||
| ### 6.c Reboot automatique en cas de soucis ( autoheal ) | ||||
|  | ||||
| @@ -1,38 +1,38 @@ | ||||
| RT_DHT_PORT=6881 | ||||
| XMLRPC_PORT=8000 | ||||
| RUTORRENT_PORT=8080 | ||||
| WEBDAV_PORT=9000 | ||||
| RT_INC_PORT=50000 | ||||
|  | ||||
| MEMORY_LIMIT=256M | ||||
| UPLOAD_MAX_SIZE=16M | ||||
| OPCACHE_MEM_SIZE=128 | ||||
| MAX_FILE_UPLOADS=50 | ||||
| REAL_IP_FROM=0.0.0.0/32 | ||||
| REAL_IP_HEADER=X-Forwarded-For | ||||
| LOG_IP_VAR=remote_addr | ||||
|  | ||||
| XMLRPC_AUTHBASIC_STRING=rTorrent XMLRPC restricted access | ||||
| RUTORRENT_AUTHBASIC_STRING=ruTorrent restricted access | ||||
| WEBDAV_AUTHBASIC_STRING=WebDAV restricted access | ||||
|  | ||||
| RT_LOG_LEVEL=info | ||||
| RT_LOG_EXECUTE=false | ||||
| RT_LOG_XMLRPC=false | ||||
|  | ||||
| RU_REMOVE_CORE_PLUGINS=httprpc,_cloudflare,_noty,_noty2,cookies,extratio,extsearch,feeds,rss,rssurlrewrite,autotools,check_port,ipad,loginmgr,lookat,ratio,retrackers,rutracker_check,scheduler,screenshots,show_peers_like_wtorrent,spectrogram,unpack,uploadeta,xmpp,geoip,geoip2 | ||||
| RU_HTTP_USER_AGENT=Mozilla/5.0 (Windows NT 6.0; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0 | ||||
| RU_HTTP_TIME_OUT=30 | ||||
| RU_HTTP_USE_GZIP=true | ||||
| RU_RPC_TIME_OUT=5 | ||||
| RU_LOG_RPC_CALLS=false | ||||
| RU_LOG_RPC_FAULTS=true | ||||
| RU_PHP_USE_GZIP=false | ||||
| RU_PHP_GZIP_LEVEL=2 | ||||
| RU_SCHEDULE_RAND=10 | ||||
| RU_LOG_FILE=/data/rutorrent/rutorrent.log | ||||
| RU_DO_DIAGNOSTIC=true | ||||
| RU_SAVE_UPLOADED_TORRENTS=true | ||||
| RU_OVERWRITE_UPLOADED_TORRENTS=false | ||||
| RU_FORBID_USER_SETTINGS=false | ||||
| RU_LOCALE=UTF8 | ||||
| RT_DHT_PORT=6881 | ||||
| XMLRPC_PORT=8000 | ||||
| RUTORRENT_PORT=8080 | ||||
| WEBDAV_PORT=9000 | ||||
| RT_INC_PORT=50000 | ||||
|  | ||||
| MEMORY_LIMIT=256M | ||||
| UPLOAD_MAX_SIZE=16M | ||||
| OPCACHE_MEM_SIZE=128 | ||||
| MAX_FILE_UPLOADS=50 | ||||
| REAL_IP_FROM=0.0.0.0/32 | ||||
| REAL_IP_HEADER=X-Forwarded-For | ||||
| LOG_IP_VAR=remote_addr | ||||
|  | ||||
| XMLRPC_AUTHBASIC_STRING=rTorrent XMLRPC restricted access | ||||
| RUTORRENT_AUTHBASIC_STRING=ruTorrent restricted access | ||||
| WEBDAV_AUTHBASIC_STRING=WebDAV restricted access | ||||
|  | ||||
| RT_LOG_LEVEL=info | ||||
| RT_LOG_EXECUTE=false | ||||
| RT_LOG_XMLRPC=false | ||||
|  | ||||
| RU_REMOVE_CORE_PLUGINS=erasedata,httprpc,geoip,geoip2 | ||||
| RU_HTTP_USER_AGENT=Mozilla/5.0 (Windows NT 6.0; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0 | ||||
| RU_HTTP_TIME_OUT=30 | ||||
| RU_HTTP_USE_GZIP=true | ||||
| RU_RPC_TIME_OUT=5 | ||||
| RU_LOG_RPC_CALLS=false | ||||
| RU_LOG_RPC_FAULTS=true | ||||
| RU_PHP_USE_GZIP=false | ||||
| RU_PHP_GZIP_LEVEL=2 | ||||
| RU_SCHEDULE_RAND=10 | ||||
| RU_LOG_FILE=/data/rutorrent/rutorrent.log | ||||
| RU_DO_DIAGNOSTIC=true | ||||
| RU_SAVE_UPLOADED_TORRENTS=true | ||||
| RU_OVERWRITE_UPLOADED_TORRENTS=false | ||||
| RU_FORBID_USER_SETTINGS=false | ||||
| RU_LOCALE=UTF8 | ||||
		Reference in New Issue
	
	Block a user