Deluge

Ubuntu 20.04 – Installation de Deluge avec OpenVPN, Traefik, Docker et SSL/TLS

Deluge est un client BitTorrent multiplateforme libre basé sur libtorrent. Il est réputé pour sa stabilité, sa vitesse et son côté poids plume et dispose d’une interface claire et intuitive. Enfin il s’avère extrêmement modulable grâce à la possibilité de lui ajouter de nombreux plugins.
       
  • À qui s’adresse ce tutoriel ?

    Cette procédure fonctionne à la fois pour des installations en local, sur VM ou sur serveur dédié (kimsufi, dedibox, etc.). Si vous avez un nom de domaine, nous verrons comment mettre en place un serveur HTTP Traefik et chiffrer vos échanges avec le protocole SSL/TLS, le tout sous Docker.

  • Pourquoi Docker et OpenVPN ?

    Deluge sera déployé en quelques minutes ! Deluge sera isolé dans un container Docker. Ce container contientra toutes les dépendances (librairies, démons, configurations, etc.) nécessaires à son exécution sans interférer avec les autres outils ou d’autres services installés sur votre serveur. Enfin la mise à jour sera simplifiée et pourra être totalement automatisée (nous le verrons). L’image Docker sera versionnée et permettra de redéployer une version précédente très facilement.

    L’utilisation d’OpenVPN n’est pas obligatoire dans ce tutoriel mais fortement recommandée. Sachez que votre véritable IP est dévoilée lorsque vous utilisez le réseau P2P. Celle-ci est donc visible par certaines autorités (sans les citer…) et par les autres utilisateurs du réseau.

    L’utilisation d’OpenVPN associé à un VPN permet de masquer votre IP. Les deux VPN présentés dans la suite du tutoriel ne gardent aucune trace de vos connexions (aucune conservation de log) et autorisent l’utilisation du réseau P2P. De plus si pour une raison ou une autre, le VPN venait à tomber, vos téléchargements seraient automatiquement interrompus.

1 – Prérequis

  • Vous devez disposer d’Ubuntu 20.04 en version Desktop, Server ou ARM (Raspberry Pi). Si vous disposez d’une version antérieure, vous pouvez mettre à jour votre système en suivant cette procédure.
  • Votre utilisateur doit avoir accès à sudo.
  • Les paquets curl et software-properties-common doivent être installés sur votre système. Dans le doute, tapez la commande suivante :
    sudo apt-get install -y curl software-properties-common
  • Vos dépôts APT doivent être à jour. Dans le doute, tapez la commande suivante :
    sudo apt-get update

2 – Installation de Docker & Docker Compose

Docker

  1. Installez Docker :

    sudo apt-get install -y docker.io
  2. Vérifiez que Docker est correctement installé avec la commande :

    docker -v
    Docker version 19.03.8, build afacb8b7f0

    La commande doit retourner la version installée de Docker.

Docker Compose

  1. Téléchargez Docker Compose avec la commande suivante en modifiant la version si besoin avec la dernière release du repository officiel de Docker :

    sudo curl -L https://github.com/docker/compose/releases/download/1.26.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
  2. Ajoutez les droits d'exécution sur le binaire de Docker Compose :

    sudo chmod +x /usr/local/bin/docker-compose
  3. Vérifiez l'installation de Docker Compose avec la commande :

    docker-compose -v
    docker-compose version 1.26.2, build 8a1c60f6

    Si l'installation s'est correctement effectuée, cette commande doit vous renvoyer la version de Docker Compose.

  1. Installez les dépendances requises pour Docker Compose :

    sudo apt install -y python3-pip libffi-dev
  2. Installez Docker Compose :

    sudo pip3 install docker-compose
  3. Vérifiez l'installation de Docker Compose avec la commande :

    docker-compose -v
    docker-compose version 1.26.2, build 8a1c60f6

    Si l'installation s'est correctement effectuée, cette commande doit vous renvoyer la version de Docker Compose.


3 – Droits Unix et arborescence

Il est recommandé, pour des raisons de sécurité, de créer un utilisateur dédié à la gestion du volume Docker Deluge et de ne pas le lancer sous votre super-utilisateur.

  1. Créez un utilisateur deluge :

    sudo adduser deluge
  2. Ajoutez-le au groupe docker :

    sudo adduser deluge docker

Dans la suite du tutoriel, les fichiers téléchargés seront déposés dans le dossier /data/torrents :

data
└── torrents
  1. Créez l’arboresence dédiée aux téléchargements :

    sudo mkdir -p /data/torrents
  2. Attribuez ces répertoires à l’utilisateur deluge pour éviter de futurs problèmes de permissions :

    sudo chown deluge:deluge /data/torrents

4 – Création du volume Deluge

Si vous souhaitez installer Transmission plutôt que Deluge, rendez-vous sur ce lien.

Trois possibilités s’offrent à vous concernant les volumes Docker. Les deux premières, fortement recommandées, consistent à utiliser une image Docker composée de Deluge et d’OpenVPN. Cette image permet, de façon anonyme et sécurisée, de télécharger vos torrents via une interface VPN. Elle dispose aussi de règles iptables qui font en sorte que si, pour une raison ou une autre, le VPN venait à tomber, les téléchargements seraient interrompus et votre véritable IP ne serait pas dévoilée.

Cette image Docker fonctionne avec les VPN AirVPN et Private Internet Access (PIA). La configuration de PIA est plus rapide à mettre en place mais les tarifs d’AirVPN sont imbattables.
Quelque soit votre choix entre ces deux fournisseurs, vous disposerez d’un VPN rapide, stable, fortement chiffré, confidentiel (aucune conservation d’historique) et adapté au P2P. Après presque 10 ans d’utilisation de ces VPN, je peux vous garantir qu’ils ne laissent aucune trace…

Si vous voulez tester AirVPN (configuration, débits, etc.), je peux vous fournir un accès gratuit pendant 24h. Contactez-moi

La dernière possibilité est de s’affranchir du VPN et d’utiliser une image contenant simplement Deluge. Sachez simplement que votre IP sera visible par les autres utilisateurs du réseau P2P et que vos téléchargements ne seront ni chiffrés, ni anonymes…

Bon plan AirVPN

Profitez de la réduction de plus de 40% en ce moment sur le plan 1 an !

  1. Connectez-vous sous l’utilisateur deluge :

    su deluge
  2. Déplacez-vous dans le répertoire personnel de cet utilisateur :

    cd
  3. Créez le fichier /home/deluge/.env et modifiez les valeurs en fonction de votre configuration :

    PUID=1001
    PGID=1001
    PATH_MEDIA=/data/torrents
    LAN_NETWORK=192.168.1.0/24
    • PUID et GUID : ces deux variables représentent respectivement l’identifiant et le groupe de votre utilisateur deluge. Ces valeurs peuvent être différentes d’un système à l’autre. Tapez la commande suivante pour obtenir le PUID et GUID de votre utilisateur deluge :

      id deluge
      uid=1001(deluge) gid=1001(deluge) groups=1001(deluge),999(docker)

      Dans cet exemple, le uid correspond au PUID et le gid correspond au PGID.

    • PATH_MEDIA : chemin absolu du répertoire de téléchargement où seront stockés vos médias. Si vous choisissez un chemin autre que celui-ci, assurez-vous que l’utilisateur deluge ait les droits de lecture et d’écriture dans le répertoire spécifié.
    • LAN_NETWORK : adresse IP (notation CIDR) de votre réseau local.

      Si vous êtes sur un kimsufi, serveur dédié ou VPS, cette valeur n’a pas d’importance. Laissez la valeur par défaut 192.168.1.0.

      Si vous réalisez l’installation sur votre système ou un système de votre réseau local, cette valeur doit être correctement renseignée. Tapez la commande ifconfig et identifiez votre réseau local (eth0 le plus souvent) :

      ifconfig
      eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
      
              inet 192.168.1.10  netmask 255.255.255.0  broadcast 192.168.1.255
              ether 68:05:ca:0b:fe:25  txqueuelen 0  (Ethernet)
              RX packets 28203743  bytes 36171326044 (33.6 GiB)
              RX errors 0  dropped 19925  overruns 0  frame 0
              TX packets 26710466  bytes 165269242671 (153.9 GiB) 
      
              TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

      Dans cet exemple, l’adresse IP est 192.168.1.10 (inet) et le masque de sous-réseau 255.255.255.0 (netmask). Pour calculer l’IP du réseau local, utilisez l’outil CIDR Calculator et renseignez votre IP dans le champ IP Address et le masque de sous-réseau dans le champ CIDR Netmask. Vous obtiendrez la valeur à renseigner dans le champ Net: CIDR Notation.

  4. Créez le fichier /home/deluge/docker-compose.yml avec le contenu suivant (copiez le contenu tel quel sans rien modifier) :

    version: '3.7'
    services:
      deluge:
        image: binhex/arch-delugevpn:latest
        container_name: deluge
        restart: unless-stopped
        cap_add:
          - NET_ADMIN
        ports:
          - 8112:8112
          - 8118:8118
          - 58846:58846
          - 58946:58946
        environment:
          - PUID=${PUID}
          - PGID=${PGID}
          - VPN_ENABLED=yes
          - VPN_PROV=airvpn
          - ENABLE_PRIVOXY=yes
          - LAN_NETWORK=${LAN_NETWORK}
          - NAME_SERVERS=209.222.18.222,37.235.1.174,8.8.8.8,209.222.18.218,37.235.1.177,8.8.4.4
          - UMASK=000
          - DEBUG=false
        volumes:
          - /home/deluge/config:/config
          - /etc/localtime:/etc/localtime:ro
          - ${PATH_MEDIA}:/data
  5. Téléchargez l’image Deluge et démarrez-la une première fois pour forcer la création du répertoire dédié aux fichiers de configuration avec la commande suivante :

    docker-compose up -d
  6. Arrêtez le container deluge :

    docker-compose stop deluge
  7. Générez un fichier de configuration OpenVPN sur AirVPN. Pour cela, connectez-vous sur votre espace client AirVPN, rendez-vous dans Client Area → Config Generator.
    Choisissez tout d’abord le système Linux, puis cochez le protocole UDP. Choisissez le serveur où vous souhaitez vous connecter (choisissez un pays plutôt qu’un serveur en particulier) et, enfin, téléchargez le fichier de configuration en cliquant sur le bouton Generate.

  8. Copiez le fichier de configuration .ovpn précédemment obtenu dans le répertoire /home/deluge/config/openvpn.

  9. Le fichier .ovpn doit appartenir à l’utilisateur et au groupe deluge et doit avoir les permissions 755. Revenez sous votre super utilisateur et modifiez le propriétaire et les permissions du fichier .ovpn :

    exit
    sudo chown deluge:deluge /home/deluge/config/openvpn/*
    sudo chmod 755 /home/deluge/config/openvpn/*
  10. Connectez-vous à nouveau sous l’utilisateur deluge :

    su deluge
  11. Déplacez-vous dans le répertoire personnel de l’utilisateur deluge :

    cd
  12. Démarrez le container deluge :

    docker-compose start deluge
  1. Connectez-vous sous l’utilisateur deluge :

    su deluge
  2. Déplacez-vous dans le répertoire personnel de cet utilisateur :

    cd
  3. Créez le fichier /home/deluge/.env et modifiez les valeurs en fonction de votre configuration :

    PUID=1001
    PGID=1001
    PATH_MEDIA=/data/torrents
    VPN_USER=pia_user
    VPN_PASS=pia_password
    LAN_NETWORK=192.168.1.0/24
    • PUID et GUID : ces deux variables représentent respectivement l’identifiant et le groupe de votre utilisateur deluge. Ces valeurs peuvent être différentes d’un système à l’autre. Tapez la commande suivante pour obtenir le PUID et GUID de votre utilisateur deluge :

      id deluge
      uid=1001(deluge) gid=1001(deluge) groups=1001(deluge),999(docker)

      Dans cet exemple, le uid correspond au PUID et le gid correspond au PGID.

    • PATH_MEDIA : chemin absolu du répertoire de téléchargement où seront stockés vos médias. Si vous choisissez un chemin autre que celui-ci, assurez-vous que l’utilisateur deluge ait les droits de lecture et d’écriture dans le répertoire spécifié.
    • VPN_USER=pia_user et VPN_PASS=pia_password : utilisateur et mot de passe de votre compte PIA.
    • LAN_NETWORK : adresse IP (notation CIDR) de votre réseau local.

      Si vous êtes sur un kimsufi, serveur dédié ou VPS, cette valeur n’a pas d’importance. Laissez la valeur par défaut 192.168.1.0.

      Si vous réalisez l’installation sur votre système ou un système de votre réseau local, cette valeur doit être correctement renseignée. Tapez la commande ifconfig et identifiez votre réseau local (eth0 le plus souvent) :

      ifconfig
      eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
      
              inet 192.168.1.10  netmask 255.255.255.0  broadcast 192.168.1.255
              ether 68:05:ca:0b:fe:25  txqueuelen 0  (Ethernet)
              RX packets 28203743  bytes 36171326044 (33.6 GiB)
              RX errors 0  dropped 19925  overruns 0  frame 0
              TX packets 26710466  bytes 165269242671 (153.9 GiB) 
      
              TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

      Dans cet exemple, l’adresse IP est 192.168.1.10 (inet) et le masque de sous-réseau 255.255.255.0 (netmask). Pour calculer l’IP du réseau local, utilisez l’outil CIDR Calculator et renseignez votre IP dans le champ IP Address et le masque de sous-réseau dans le champ CIDR Netmask. Vous obtiendrez la valeur à renseigner dans le champ Net: CIDR Notation.

  4. Créez le fichier /home/deluge/docker-compose.yml avec le contenu suivant (copiez le contenu tel quel sans rien modifier) :

    version: '3.7'
    services:
      deluge:
        image: binhex/arch-delugevpn:latest
        container_name: deluge
        restart: unless-stopped
        cap_add:
          - NET_ADMIN
        ports:
          - 8112:8112
          - 8118:8118
          - 58846:58846
          - 58946:58946
        environment:
          - PUID=${PUID}
          - PGID=${PGID}
          - VPN_ENABLED=yes
          - VPN_USER=${VPN_USER}
          - VPN_PASS=${VPN_PASS}
          - VPN_PROV=pia
          - STRICT_PORT_FORWARD=yes
          - ENABLE_PRIVOXY=yes
          - LAN_NETWORK=${LAN_NETWORK}
          - NAME_SERVERS=209.222.18.222,37.235.1.174,8.8.8.8,209.222.18.218,37.235.1.177,8.8.4.4
          - UMASK=000
          - DEBUG=false
        volumes:
          - /home/deluge/config:/config
          - /etc/localtime:/etc/localtime:ro
          - ${PATH_MEDIA}:/data
  5. Téléchargez l’image Deluge et démarrez-la une première fois pour forcer la création du répertoire dédié aux fichiers de configuration avec la commande suivante :

    docker-compose up -d
  6. Arrêtez le container deluge :

    docker-compose stop deluge
  7. Téléchargez les certificats et fichiers de configuration de PIA à l’adresse suivante : https://www.privateinternetaccess.com/openvpn/openvpn.zip.

  8. Décompressez l’archive et copiez les certificats crl.rsa.2048.pem, ca.rsa.2048.crt et le fichier de configuration OpenVPN .ovpn de votre choix dans le répertoire /home/deluge/config/openvpn.
    Vérifiez bien que vous ayez uniquement ces 3 fichiers dans le répertoire. Un seul fichier de configuration OpenVPN .ovpn doit être présent.

  9. Ces fichiers doivent appartenir à l’utilisateur et au groupe deluge et doivent avoir les permissions 755. Revenez sous votre super utilisateur et modifiez le propriétaire et les permissions du fichier .ovpn :

    exit
    sudo chown deluge:deluge /home/deluge/config/openvpn/*
    sudo chmod 755 /home/deluge/config/openvpn/*
  10. Connectez-vous à nouveau sous l’utilisateur deluge :

    su deluge
  11. Déplacez-vous dans le répertoire personnel de l’utilisateur deluge :

    cd
  12. Démarrez le container deluge :

    docker-compose start deluge
  1. Connectez-vous sous l’utilisateur deluge :

    su deluge
  2. Déplacez-vous dans le répertoire personnel de cet utilisateur :

    cd
  3. Créez le fichier /home/deluge/.env et modifiez les valeurs en fonction de votre configuration :

    PUID=1001
    PGID=1001
    PATH_MEDIA=/data/torrents
    • PUID et GUID : ces deux variables représentent respectivement l’identifiant et le groupe de votre utilisateur deluge. Ces valeurs peuvent être différentes d’un système à l’autre. Tapez la commande suivante pour obtenir le PUID et GUID de votre utilisateur deluge :

      id deluge
      uid=1001(deluge) gid=1001(deluge) groups=1001(deluge),999(docker)

      Dans cet exemple, le uid correspond au PUID et le gid correspond au PGID.

    • PATH_MEDIA : chemin absolu du répertoire de téléchargement où seront stockés vos médias. Si vous choisissez un chemin autre que celui-ci, assurez-vous que l’utilisateur deluge ait les droits de lecture et d’écriture dans le répertoire spécifié.
    •    

  4. Créez le fichier /home/deluge/docker-compose.yml avec le contenu suivant (copiez le contenu tel quel sans rien modifier) :

    version: '3.7'
    services:
      deluge:
        image: linuxserver/deluge:latest
        container_name: deluge
        restart: unless-stopped
        network_mode: "host"
        ports:
          - 8112:8112
        environment:
          - PUID=${PUID}
          - PGID=${PGID}
          - TZ=Europe/Paris
        volumes:
          - /home/deluge/config:/config
          - ${PATH_MEDIA}:/downloads
  5. Démarrez le container deluge :

    docker-compose up -d

5 – Reverse proxy avec Traefik

Dans la suite du tutoriel, nous utiliserons l’image avec VPN mais la procédure reste tout à fait compatible avec l’image sans VPN.

N'oubliez pas d'ajouter des règles DNS pour chacun des sous-domaines dans l'interface administrateur du fournisseur de votre nom de domaine pour pointer vers l'IP de votre serveur. Les règles à ajouter sont de type « A ».

Si votre serveur est hébergé chez vous, il sera aussi nécessaire de créer une redirection du port 80 et 443 vers votre serveur dans l'interface de configuration de votre box internet (ou routeur).

Traefik est un reverse-proxy et un load-balancer moderne conçu (par un Français) pour faciliter le déploiement des microservices (Docker, Kubernetes, AWS, etc.). Traefik est extrêmement simple à configurer et gère automatiquement vos certificats délivrés par Let's Encrypt. Il les renouvelle 30 jours avant leurs expirations sans action de votre part. De plus, il est capable de charger vos containers dynamiquement sans interruption de service et dispose d'un dashboard affichant l'ensemble de vos routes configurées.

Si vous avez déjà un Traefik sous Docker, vous pouvez vous rendre directement à l'étape 5.4.

5.1 - Création de l'utilisateur traefik

Si vous avez plusieurs containers ou si vous avez pour projet d'en ajouter par la suite, il est préférable d'isoler le container Traefik. Il est recommandé de ne pas le lancer sous votre super-utilisateur et de créer un utilisateur dédié.

  1. Créez un utilisateur traefik :

    sudo adduser traefik
  2. Ajoutez-le au groupe docker :

    sudo adduser traefik docker

5.2 - L'image Traefik

  1. Connectez-vous sous l'utilisateur traefik :

    su traefik
  2. Déplacez-vous dans le répertoire personnel de cet utilisateur :

    cd
  3. Créez le fichier /home/traefik/docker-compose.yml en ajoutant le contenu suivant :

    version: '3.7'
    services:
      traefik:
        image: "traefik:v2.2"
        container_name: "traefik"
        restart: unless-stopped
        networks:
          - traefik_network
        ports:
          - "80:80"
          - "443:443"
        volumes:
          - /var/run/docker.sock:/var/run/docker.sock:ro
          - /home/traefik/traefik.toml:/traefik.toml:ro
          - /home/traefik/acme.json:/acme.json
    
    networks:
      traefik_network:
        name: traefik_network
    
    • /var/run/docker.sock:/var/run/docker.sock:ro : précise le socket Unix de votre docker. Laissez cette valeur par défaut.
    • /home/traefik/traefik.toml:/traefik.toml:ro : précise le chemin du fichier de configuration de Traefik. Nous le créerons à l'étape suivante.
    • /home/traefik/acme.json:/acme.json : précise le chemin du fichier contenant les informations relatives à vos certificats.
    • traefik_network : ici nous créons un réseau dédié à Traefik. Nous ajouterons le container Deluge dans ce réseau par la suite.

5.3 - Configuration Traefik

Traefik peut être configuré de différentes manières, nous allons détailler ici, la configuration recommandée par Traefik, à savoir par un fichier statique au format TOML.

  1. Traefik stocke les informations liées au certificat dans un fichier acme.json. Vous devez au préalable créer le fichier et lui attribuer un minimum de permissions :

    touch /home/traefik/acme.json && chmod 600 /home/traefik/acme.json
  2. Créez le fichier de configuration Traefik /home/traefik/traefik.toml en ajoutant les lignes suivantes. L'unique propriété à modifier est l'email :

    [providers.docker]
      endpoint = "unix:///var/run/docker.sock"
      watch = true
      exposedByDefault = false
    
    [entryPoints.web]
      address = ":80"
      [entryPoints.web.http.redirections.entryPoint]
        to = "websecure"
        scheme = "https"
    
    [entryPoints.websecure]
      address = ":443"
    
    [certificatesResolvers.leresolver.acme]
      email = "votre-adresse@email.com"
      storage = "acme.json"
      [certificatesResolvers.leresolver.acme.httpChallenge]
        entryPoint = "web"
    • [providers.docker] : cette directive permet tout simplement d'activer le support Docker.
    • endpoint = "unix:///var/run/docker.sock" : précise le socket Unix de votre Docker à Traefik. Laissez la valeur par défaut.
    • watch = true : permet de déployer à chaud les containers dès qu'un changement dans la configuration est détectée.
    • exposedByDefault = false : n'expose pas par défaut les containers au monde extérieur. Il est préférable d'activer cette option dans le docker-compose.yml pour chacun des containers dans le cas où, si pour une raison ou une autre, vous ne souhaiteriez plus rendre accessible un container de l'extérieur.
    • [entryPoints.web] et [entryPoints.websecure] : ces directives définissent les points d'entrée de votre Traefik. web et websecure sont purement indicatifs, vous pouvez les nommer autrement mais ils doivent correspondre aux labels que nous définirons plus tard dans le docker-compose.yml. Les propriétés address précisent les ports sur lesquels Traefik « écoute » en fonction du point d'entrée.
    • [entryPoints.web.http.redirections.entryPoint] : force la redirection du port 80 vers le port 443 donc force le HTTP en HTTPS.
    • [certificatesResolvers.[NOM_RESOLVEUR].acme] : nous indiquons ici que nous souhaitons utiliser le protocole ACME (donc le service Let's Encrypt) pour obtenir un certificat. Le nom du résolveur est purement indicatif, il doit simplement correspondre aux labels que nous définirons plus tard dans le docker-compose.yml.
    • storage = "acme.json" : la propriété storage précise à Traefik le fichier (que nous avons créé précédemment) où seront stockées les informations relatives aux certificats. L'erreur commune est d'indiquer le chemin absolu (dans notre cas /home/traefik/acme.json), ici le chemin à renseigner est celui au sein du container Traefik, il faut donc laisser cette valeur par défaut.
    • [certificatesResolvers.[NOM_RESOLVEUR].acme.httpChallenge] : cette directive précise tout simplement par quel point d'entrée (dans notre cas le port 80) Traefik peut obtenir un certificat.
  3. Déplacez-vous dans le répertoire personnel de l'utilisateur traefik et démarrez le container :

    cd
    docker-compose up -d

5.4 – Labels et réseau Traefik

  1. Connectez-vous sous l’utilisateur deluge :

    su deluge
  2. Déplacez-vous dans le répertoire personnel de l’utilisateur deluge :

    cd
  3. Dans votre fichier /home/deluge/docker-compose.yml, ajoutez le réseau traefik_network dans la configuration du container Deluge et en fin de fichier. Attention, si vous êtes avec l’image sans VPN, la directive network_mode: "host" doit être supprimée. De plus, toutes les expositions de ports sont inutiles, vous pouvez donc supprimer la directive ports: avec les ports associés.

    Enfin, ajoutez les labels permettant de communiquer avec Traefik (seul le domaine est à modifier par le vôtre) :

    version: '3.7'
    services:
      deluge:
        image: binhex/arch-delugevpn:latest
        container_name: deluge
        restart: unless-stopped
        cap_add:
          - NET_ADMIN
        networks:
          - traefik_network
        environment:
          - PUID=${PUID}
          - PGID=${PGID}
          - VPN_ENABLED=yes
          - VPN_PROV=airvpn
          - ENABLE_PRIVOXY=yes
          - LAN_NETWORK=${LAN_NETWORK}
          - NAME_SERVERS=209.222.18.222,37.235.1.174,8.8.8.8,209.222.18.218,37.235.1.177,8.8.4.4
          - UMASK=000
          - DEBUG=false
        volumes:
          - /home/deluge/config:/config
          - /etc/localtime:/etc/localtime:ro
          - ${PATH_MEDIA}:/data
        labels:
          - "traefik.enable=true"
          - "traefik.docker.network=traefik_network"
          - "traefik.http.routers.deluge.entrypoints=web,websecure"
          - "traefik.http.routers.deluge.rule=Host(`deluge.mondomaine.com`)"
          - "traefik.http.services.deluge.loadbalancer.server.port=8112"
          - "traefik.http.routers.deluge.tls=true"
          - "traefik.http.routers.deluge.tls.certresolver=leresolver"
    
    networks:
      traefik_network:
        name: traefik_network
    
    • traefik.enable=true : ce label expose le container au monde extérieur. Il surchage la propriété exposedByDefault de votre fichier /home/traefik/traefik.toml.
    • traefik.docker.network=traefik_network : ce label précise à Traefik quel réseau utilise le container Deluge.
    • traefik.http.routers.[NOM_DU_CONTAINER].entrypoints : chaque règle de routage spécifique à un container doit être spécifiée par un nom, ici nous utilisons tout simplement le nom du container. Le label entrypoints précise que les requêtes entrantes sur les points d’entrée web (port 80) et websecure (port 443) seront transmises au container.
    • traefik.http.routers.[NOM_DU_CONTAINER].rule=Host(`deluge.mondomaine.com`) : ici nous précisons une règle, toute requête arrivant sur http://deluge.mondomaine.com sera transmise au container Docker associé.
    • traefik.http.services.[NOM_DU_CONTAINER].loadbalancer.server.port=[PORT] : ici nous précisons le port du container sur lequel les requêtes doivent être transmises.
    • traefik.http.routers.[NOM_DU_CONTAINER].tls : active le support SSL/TLS.
    • traefik.http.routers.[NOM_DU_CONTAINER].tls.certresolver : précise le résolveur et donc les certificats à utiliser.
  4. Démarrez le container :

    docker-compose up -d

    Patientez une à deux minutes avant d’accéder au container.

6 – Configuration

  1. Accédez à Deluge via :
    • Si vous avez installé Deluge sur votre propre machine, vous pouvez y accéder via http://localhost:8112
    • Si vous avez installé Deluge sur une machine de votre réseau local, vous pouvez y accéder via http://192.168.X.X:8112 où X.X est à remplacer par l’IP locale de votre machine
    • Si vous avez installé Deluge sur un kimsufi ou serveur dédié, vous pouvez y accéder via votre domaine configuré précédemment ou via l’IP publique de votre serveur http://X.X.X.X:8112.
    •    
  2. Renseignez le mot de passe par défaut deluge :

    1
    2
    blank
    1

    Saisissez deluge

    2

    Cliquez sur Login

  3. Sélectionnez le processus Deluge auquel doit se connecter l’interface Deluge WebUI :

    1
    2
    blank
    1

    Sélectionnez le processus

    2

    Cliquez sur Connect


  4. Dans Preferences → Interface, modifiez le mot de passe par défaut :

    1
    2
    3
    4
    5
    blank
    1

    Renseignez le mot de passe par défaut deluge

    2

    Renseignez votre nouveau mot de passe

    3

    Confirmez votre nouveau mot de passe

    4

    Cliquez sur Apply

    5

    Cliquez sur OK



  5. Dans Preferences → Downloads :

    Renseignez le chemin /data.
    Quelque soit le dossier de téléchargement que vous avez renseigné précédemment dans votre fichier , la valeur à renseigner ici est /data. En effet, Deluge ne connait que le chemin à l’intérieur de son propre container qui est celui « mappé » avec votre dossier de téléchargements de votre système dans le docker-compose.yml. Cette règle sera valable pour les autres containers à configurer dans la suite de ce tutoriel.


    1
    2
    3
    blank
    1

    Renseignez /data

    2

    Cliquez sur Apply

    3

    Cliquez sur Ok


    Renseignez le chemin /downloads.
    Quelque soit le dossier de téléchargement que vous avez renseigné précédemment dans votre fichier , la valeur à renseigner ici est /downloads. En effet, Deluge ne connait que le chemin à l’intérieur de son propre container qui est celui « mappé » avec votre dossier de téléchargements de votre système dans le docker-compose.yml. Cette règle sera valable pour les autres containers à configurer dans la suite de ce tutoriel.


    1
    2
    3
    blank
    1

    Renseignez /downloads

    2

    Cliquez sur Apply

    3

    Cliquez sur Ok



7 – Problèmes rencontrés


Dans Deluge, le téléchargement commence puis finit par s’arrêter au bout de quelques secondes…

Vous avez très certainement un problème de permissions, l’utilisateur deluge ne peut visiblement pas écrire dans le répertoire spécifié dans votre /home/deluge/.env.

Je n’arrive pas à accéder à Deluge en dehors de mon réseau local.

Vous avez certainement l’image Deluge avec VPN et vous ne possédez pas de nom de domaine. C’est normal, vous ne pourrez pas accéder à Deluge via l’IP publique de votre serveur, c’est une restriction de l’image pour éviter une fuite d’IP lorsque vous téléchargez ou partagez un torrent. Soit vous réalisez un tunnel SSH mais ce sera rapidement contraignant à l’usage, soit vous souscrivez à un nom de domaine gratuit (Freenom par exemple) et vous mettez en place Traefik (partie 5).


Ubuntu 20.04 ServerDocker 19.03.8
Docker Compose 1.26.2
Traefik 2.2
Deluge 2.0.4.dev23

2 réponses
  1. Romain
    Romain dit :

    Bonjour.

    Après pas mal de temps à m’arracher les cheveux pour que le container docker accède à Internet pour monter le tunnel VPN et lancer les services liés à Deluge, je vous fais un retour de mon expérience avec ce tuto.

    J’ai procédé à l’installation de Deluge sur un serveur Kimsufi avec Debian 10 Buster. Au début du tutoriel, on récupère Docker sur le site officiel. Avec cette version de Docker, aucun de mes containers ne pouvaient accéder à internet, les règles Iptables étaient toutes correctes, l’ip forwarding était actif en ipv4 et ipv6, j’ai procédé à différents tests de configuration, j’ai viré et réinstallé Docker, redémarré le service, redémarré le serveur complètement et j’ai finalement fait le test d’installer le paquet fourni par la distribution plutôt que part le site officiel (apt install docker docker.io runc).

    Les containers ont désormais accès au net. Le container binhex/arch-delugevpn démarre bien, pas d’erreur dans les logs, j’ai pu finir la configuration de mon déluge. Si d’aventure vous rencontrez un problème similaire au mien en suivant la procédure d’Edouard (que je remercie au passage pour tous ces tutos très bien écrits), essayez de passer par les paquets de la distrib.

    Bonne journée.

    Répondre

Laisser un commentaire

Participez-vous à la discussion?
N'hésitez pas à contribuer!

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *