[Tuto] Installation de Wireguard Client, Prowlarr, rutorrent, Sonarr, Radarr

EVOTk

Modérateur
Membre du personnel
[Tuto] Installation de Wireguard Client, Prowlarr, rutorrent, Sonarr, Radarr


EN COURS DE RÉDACTION ! 🚧😅

Pourquoi ce tutoriel ? :giggle:
Celui-ci, je l'espere va vous apprendre a installer Jackett, Prowlarr, rutorrent, Qbittorrent, Sonarr et Ă  faire en sorte que tout ce petit monde communique au travers d'un conteneur Wireguard Client.

Cette stack docker-compose contient les logiciels :
- Wireguard ( en mode client )
- Prowlarr
- rutorrent
- Sonarr
- Radarr

Elle permet d'installer rapidement ces logiciels et de s'assurer que ces derniers ne communiquerons que Ă  travers le Client VPN.

Ce tutoriel n'est pas là pour vous apprendre à télécharger des fichiers illégaux, tous messages à ce sujet seront supprimés.
Disclamer :
Le but de ce tuto sera de rendre cette installation facile et accessible a tous, bien que loin d’ĂȘtre un expert, n’hĂ©siter pas Ă  rĂ©pondre Ă  ce sujet avec vos interrogations, .. Pour ceux qui sont plus a l'aise avec ce genre d'installation, n'hĂ©siter pas a proposer des amĂ©liorations, ou des conseils, ...

Sommaire :
1/ Création des dossiers
2/ Modifications des .env
3/ Configuration du client Wireguard
4/ Transfert des fichiers dans /downloads-vpn
5/ Création des conteneurs


Aller go :)




1/ 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/prowlarr/config downloads-vpn/sonarr/config downloads-vpn/radarr/config




2/ Modifications des .env

- Récupérer les fichiers .env, 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 défaut, 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





3/ Configuration du client Wireguard
Pour Ă©tablir la connexion au VPN, votre fournisseur VPN a du vous fournir un fichier .conf contenant votre configuration. Ce fichier doit ĂȘtre renommer avec le nom "wg0.conf".

Il ressemble probablement a cela :
1671649364946.png

Nous allons juste avant [Peer] rajouter deux lignes, qui sont lĂ  pour permettre l'acces local au interface des conteneurs :
Code:
PostUp = DROUTE=$(ip route | grep default | awk '{print $3}'); HOMENET=192.168.0.0/16; HOMENET2=172.16.0.0/12; ip route add $HOMENET2 via $DROUTE; ip route add $HOMENET via $DROUTE;iptables -I OUTPUT -d $HOMENET -j ACCEPT;iptables -A OUTPUT -d $HOMENET2 -j ACCEPT; iptables -A OUTPUT ! -o %i -m mark ! --mark $(wg show %i fwmark) -m addrtype ! --dst-type LOCAL -j REJECT
PreDown = HOMENET=192.168.0.0/16; HOMENET2=172.16.0.0/12; ip route del $HOMENET2 via $DROUTE; ip route del $HOMENET via $DROUTE; iptables -D OUTPUT ! -o %i -m mark ! --mark $(wg show %i fwmark) -m addrtype ! --dst-type LOCAL -j REJECT; iptables -D OUTPUT -d $HOMENET -j ACCEPT; iptables -D OUTPUT -d $HOMENET2 -j ACCEPT

On retrouve dans ces lignes HOMENET=192.168.0.0/16 qui représente votre réseau local, et HOMENET2=172.16.0.0/12, le réseau Docker. C'est bien sur a adapté si votre réseau n'est pas "standard".

Votre fichier va donc ressembler a ceci :
1671649349980.png





4/ Transfert des fichiers dans /downloads-vpn

Il faut transfert les fichiers ( .env, docker-compose.yml, rtorrent-rutorrent.env ) dans le dossier /downloads-vpn précédemment créé ! Par exemple, avec FileZilla. Attention au nommage de .env

Le fichier wg0.conf, lui, est a placer dans /downloads-vpn/wireguard/config





5/ Création des conteneurs[/SIZE]

Pour créer les conteneurs de la stack, toujours en SSH dans le dossier donwload-vpn, on execute la commande suivante :
Code:
docker compose up -d

( Attention si vous ĂȘtes sous dockercompose v1, la commande est
[I]docker-compose up -d[/I][/SIZE]



Oups, c'est l'heure de faire a manger ! La suite plus tard ....

2022-12-27 - Correction d'une erreur dans le compose ( 2x labels )
2022-12-21 - Création
 

PiĂšces jointes

  • .env
    66 bytes · Affichages: 57
  • rtorrent-rutorrent.env
    1.2 KB · Affichages: 63
  • docker-compose.yml
    3.5 KB · Affichages: 108
DerniÚre édition:
Yo, merci hier j'ai cherché sur Google mais j'ai pas chercher avec ces mots clés la ^^'
( si du monde bloque comme moi sur ça j'ai utilisé cette vidéo pour avoir le ficher .conf
)

édit: j'ai cette erreur "services.rtorrent-rutorrent.labels must be a mapping" quand je lance la commande docker compose up -d

bonne fĂȘte Ă  tous
 
DerniÚre édition:
édit: j'ai cette erreur "services.rtorrent-rutorrent.labels must be a mapping" quand je lance la commande docker compose up -d
Désolé je n'avais pas vu ton édition

Il y a une faute dans mon docker-compsoe, je corrige dans 2 min, labels est présent deux fois dans rutorrent
1672174817268.png

edit : C'est corrigé
 
Bonjour,

lorsque je rajoute dans le fichier wg0.conf les 2 lignes concernant le routage, j'ai bien accĂšs Ă  l'interface de rutorrent mais pas de connexion avec Wireguard.

si je les enlĂšve, wireguard se connecte bien, mais je n'ai plus d'accĂšs Ă  l'interface.

Voici le log du docker VPN :
Code:
Uname info: Linux 527978b8a945 5.15.74-1-pve #1 SMP PVE 5.15.74-1 (Mon, 14 Nov 2022 20:17:15 +0100) x86_64 x86_64 x86_64 GNU/Linux
**** It seems the wireguard module is already active. Skipping kernel header install and module compilation. ****
**** As the wireguard module is already active you can remove the SYS_MODULE capability from your container run/compose. ****
**** Client mode selected. ****
[custom-init] No custom files found, skipping...
**** Disabling CoreDNS ****
Warning: `/config/wg0.conf' is world accessible
[#] ip link add wg0 type wireguard
[#] wg setconf wg0 /dev/fd/63
[#] ip -4 address add 10.205.197.2/24 dev wg0
[#] ip link set mtu 1420 up dev wg0
[#] resolvconf -a wg0 -m 0 -x
[#] wg set wg0 fwmark 51820
[#] ip -4 route add 0.0.0.0/0 dev wg0 table 51820
[#] ip -4 rule add not fwmark 51820 table 51820
[#] ip -4 rule add table main suppress_prefixlength 0
[#] iptables-restore -n
[#] DROUTE=$(ip route | grep default | awk '{print $3}'); HOMENET=192.168.100.0/24; HOMENET2=172.18.100.0/24; ip route add $HOMENET2 via $DROUTE; ip route add $HOMENET via $DROUTE;iptables -I OUTPUT -d $HOMENET -j ACCEPT;iptables -A OUTPUT -d $HOMENET2 -j ACCEPT; iptables -A OUTPUT ! -o wg0 -m mark ! --mark $(wg show wg0 fwmark) -m addrtype ! --dst-type LOCAL -j REJECT
RTNETLINK answers: File exists
[#] resolvconf -d wg0 -f
[#] iptables-restore -n
[#] ip -4 rule delete table 51820
[#] ip -4 rule delete table main suppress_prefixlength 0
[#] ip link delete dev wg0
s6-rc: warning: unable to start service svc-wireguard: command exited 2

et mon fichier wg0.conf
Code:
[Interface]
PrivateKey = xx
Address = 10.205.197.2/24
DNS = 208.67.222.222, 208.67.220.220

PostUp = DROUTE=$(ip route | grep default | awk '{print $3}'); HOMENET=192.168.100.0/24; HOMENET2=172.18.100.0/24; ip route add $HOMENET2 via $DROUTE; ip route add $HOMENET via $D>PreDown = HOMENET=192.168.100.0/24; HOMENET2=172.18.100.0/24; ip route del $HOMENET2 via $DROUTE; ip route del $HOMENET via $DROUTE; iptables -D OUTPUT ! -o %i -m mark ! --mark $(>

[Peer]
PublicKey = xx
PresharedKey = xx
Endpoint = xx
AllowedIPs = 0.0.0.0/0
 
Bonsoir Ă  tous,

Merci pour ce tuto, par contre ayant un DS1522+, je reçois ce message de WIREGUARD en me disant que le kernel est inexistant.

Code:
Reading package lists...
**** No kernel headers found in the Ubuntu or Debian repos!! Will try the headers from host (if mapped), may or may not work ****
**** Kernel headers don't seem to be available in Ubuntu, Debian and Raspbian repos, or shared from the host; therefore can't compile the module. Sleeping now. . . ****

Quelqu'un a t-ill une idée ?
 
Pas de wireguard sur dsm sans modifications du kernel

Merci, en cherchant j'ai pu trouver une version adapter Ă  mon NAS, par contre lels logs me ressortent plusieurs erreurs.

Code:
Uname info: Linux 185681e9c728 4.4.180+ #42962 SMP Tue Oct 18 15:07:46 CST 2022 x86_64 x86_64 x86_64 GNU/Linux
**** It seems the wireguard module is already active. Skipping kernel header install and module compilation. ****
**** As the wireguard module is already active you can remove the SYS_MODULE capability from your container run/compose. ****
**** Client mode selected. ****
[custom-init] No custom files found, skipping...
**** Disabling CoreDNS ****
Warning: `/config/wg0.conf' is world accessible
[#] ip link add wg0 type wireguard
[#] wg setconf wg0 /dev/fd/63
[#] ip -4 address add 10.5.0.2/16 dev wg0
[#] ip link set mtu 1420 up dev wg0
[#] resolvconf -a wg0 -m 0 -x
[#] wg set wg0 fwmark 51820
[#] ip -6 route add ::/0 dev wg0 table 51820
[#] ip -6 rule add not fwmark 51820 table 51820
[#] ip -6 rule add table main suppress_prefixlength 0
[#] ip6tables-restore -n
ip6tables-restore v1.8.7 (nf_tables): Could not fetch rule set generation id: Invalid argument
[#] resolvconf -d wg0 -f
[#] ip -6 rule delete table 51820
[#] ip -6 rule delete table main suppress_prefixlength 0
[#] ip link delete dev wg0
s6-rc: warning: unable to start service svc-wireguard: command exited 4
 
Bonjour,

lorsque je rajoute dans le fichier wg0.conf les 2 lignes concernant le routage, j'ai bien accĂšs Ă  l'interface de rutorrent mais pas de connexion avec Wireguard.

si je les enlĂšve, wireguard se connecte bien, mais je n'ai plus d'accĂšs Ă  l'interface.

Voici le log du docker VPN :
Code:
Uname info: Linux 527978b8a945 5.15.74-1-pve #1 SMP PVE 5.15.74-1 (Mon, 14 Nov 2022 20:17:15 +0100) x86_64 x86_64 x86_64 GNU/Linux
**** It seems the wireguard module is already active. Skipping kernel header install and module compilation. ****
**** As the wireguard module is already active you can remove the SYS_MODULE capability from your container run/compose. ****
**** Client mode selected. ****
[custom-init] No custom files found, skipping...
**** Disabling CoreDNS ****
Warning: `/config/wg0.conf' is world accessible
[#] ip link add wg0 type wireguard
[#] wg setconf wg0 /dev/fd/63
[#] ip -4 address add 10.205.197.2/24 dev wg0
[#] ip link set mtu 1420 up dev wg0
[#] resolvconf -a wg0 -m 0 -x
[#] wg set wg0 fwmark 51820
[#] ip -4 route add 0.0.0.0/0 dev wg0 table 51820
[#] ip -4 rule add not fwmark 51820 table 51820
[#] ip -4 rule add table main suppress_prefixlength 0
[#] iptables-restore -n
[#] DROUTE=$(ip route | grep default | awk '{print $3}'); HOMENET=192.168.100.0/24; HOMENET2=172.18.100.0/24; ip route add $HOMENET2 via $DROUTE; ip route add $HOMENET via $DROUTE;iptables -I OUTPUT -d $HOMENET -j ACCEPT;iptables -A OUTPUT -d $HOMENET2 -j ACCEPT; iptables -A OUTPUT ! -o wg0 -m mark ! --mark $(wg show wg0 fwmark) -m addrtype ! --dst-type LOCAL -j REJECT
RTNETLINK answers: File exists
[#] resolvconf -d wg0 -f
[#] iptables-restore -n
[#] ip -4 rule delete table 51820
[#] ip -4 rule delete table main suppress_prefixlength 0
[#] ip link delete dev wg0
s6-rc: warning: unable to start service svc-wireguard: command exited 2

et mon fichier wg0.conf
Code:
[Interface]
PrivateKey = xx
Address = 10.205.197.2/24
DNS = 208.67.222.222, 208.67.220.220

PostUp = DROUTE=$(ip route | grep default | awk '{print $3}'); HOMENET=192.168.100.0/24; HOMENET2=172.18.100.0/24; ip route add $HOMENET2 via $DROUTE; ip route add $HOMENET via $D>PreDown = HOMENET=192.168.100.0/24; HOMENET2=172.18.100.0/24; ip route del $HOMENET2 via $DROUTE; ip route del $HOMENET via $DROUTE; iptables -D OUTPUT ! -o %i -m mark ! --mark $(>

[Peer]
PublicKey = xx
PresharedKey = xx
Endpoint = xx
AllowedIPs = 0.0.0.0/0
hello, tu as trouvé une réponse ?
 
De mon cÎté, sans le postUp/PréDown, j'arrive à faire fonctionner WIREGUARD.
Des que je les ajoutes :

Code:
Warning: `/config/wg0.conf' is world accessible
[#] ip link add wg0 type wireguard
[#] wg setconf wg0 /dev/fd/63
[#] ip -4 address add 10.5.0.2/16 dev wg0
[#] ip link set mtu 1420 up dev wg0
[#] resolvconf -a wg0 -m 0 -x
[#] ip -4 route add 0.0.0.0/1 dev wg0
[#] DROUTE=$(ip route | grep default | awk '{print $3}'); HOMENET=192.168.0.0/16; HOMENET2=172.16.0.0/12; ip route add $HOMENET2 via $DROUTE; ip route add $HOMENET via $DROUTE;iptables -I OUTPUT -d $HOMENET -j ACCEPT;iptables -A OUTPUT -d $HOMENET2 -j ACCEPT; iptables -A OUTPUT ! -o wg0 -m mark ! --mark $(wg show wg0 fwmark) -m addrtype ! --dst-type LOCAL -j REJECT
iptables v1.8.7 (legacy): mark: bad integer value for option "--mark", or out of range.
Try `iptables -h' or 'iptables --help' for more information.
[#] resolvconf -d wg0 -f
[#] ip link delete dev wg0
s6-rc: warning: unable to start service svc-wireguard: command exited 2

Fichier wg0.conf

Code:
[Interface]
PrivateKey = xxx
Address = 10.5.0.2/16
DNS = 1.1.1.1
PostUp = DROUTE=$(ip route | grep default | awk '{print $3}'); HOMENET=192.168.0.0/16; HOMENET2=172.16.0.0/12; ip route add $HOMENET2 via $DROUTE; ip route add $HOMENET via $DROUTE;iptables -I OUTPUT -d $HOMENET -j ACCEPT;iptables -A OUTPUT -d $HOMENET2 -j ACCEPT; iptables -A OUTPUT ! -o %i -m mark ! --mark $(wg show %i fwmark) -m addrtype ! --dst-type LOCAL -j REJECT
PreDown = HOMENET=192.168.0.0/16; HOMENET2=172.16.0.0/12; ip route del $HOMENET2 via $DROUTE; ip route del $HOMENET via $DROUTE; iptables -D OUTPUT ! -o %i -m mark ! --mark $(wg show %i fwmark) -m addrtype ! --dst-type LOCAL -j REJECT; iptables -D OUTPUT -d $HOMENET -j ACCEPT; iptables -D OUTPUT -d $HOMENET2 -j ACCEPT

[Peer]
PublicKey = xxx
AllowedIPs = 0.0.0.0/1, ::/1
Endpoint = xxx.xxx.xxx.xx:51820
PersistentKeepalive = 25
 
DerniÚre édition:
En quoi c'est utile pour cette configuration?
Pour seeder il faut ouvrir un port dans ton client torrent. Le port forwarding permet cela.
Sans port forwarding, cela n'empeche pas de seeder, mais tu es pas prioritaire, donc en gros tu seed que si tu est la seul source ou presque sur le torrent ;)
 
Haut Bas