Seedbox

Ubuntu 20.04 – Installation d’une seedbox anonyme et sécurisée avec Deluge, Jackett, Sonarr, Radarr, Lidarr, Docker et SSL/TLS

Cet article décrit la procédure pour installer une seedbox automatisée, anonyme et sécurisée sur Ubuntu 20.04 avec l’utilisation de Docker et OpenVPN. Cette procédure fonctionne aussi pour les architectures ARM (Raspberry Pi).
       
  • À qui s’adresse ce tutoriel ?

    Si vous souhaitez automatiser le téléchargement des films, séries TV et albums de musique dès leur disponibilité pour ensuite les streamer sur votre ordinateur, smartphone ou encore votre smartTV, alors cet article est fait pour vous ! Côté sécurité, vous serez totalement anonyme et protégé !

    Cette procédure fonctionne à la fois pour des installations en local, sur VM ou sur serveur dédié (kimsufi, dedibox, etc.). Il n’est pas obligatoire d’avoir un nom de domaine pour y accéder de l’extérieur. Toutefois, si vous en possédez un, nous verrons comment mettre en place un serveur HTTP Nginx ou Traefik et chiffrer vos échanges avec le protocole SSL/TLS.

  • Pourquoi Docker et OpenVPN ?

    Votre seedbox sera déployée en quelques minutes ! Docker permet en quelques commandes d’installer et d’exécuter tous les outils dont vous aurez besoin. Chaque outil est isolé et possède son propre container Docker. Chaque container contient 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 les mises à jour des outils sont simplifiées et peuvent être totalement automatisées (nous le verrons). Les images Docker sont versionnées et permettent 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.

  • Les outils utilisés

    Pour télécharger vos films, séries TV et fichiers audio, les fichiers .torrent seront ajoutés dans l’outil Deluge. 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.

    blank

    Sonarr permet de rechercher vos fichiers .torrent et d’automatiser le téléchargement de vos séries préférées. Vous ajoutez une série dans l’interface en précisant la qualité et la langue souhaitées et Sonarr recherchera celle-ci via les indexers configurés. Enfin Sonarr ajoutera automatiquement dans Deluge la série en téléchargement. Parmi les nombreuses fonctionnalités de Sonarr, celui-ci dispose de tâches automatiques et quotidiennes ajoutant automatiquement un épisode fraichement sorti. L’interface dispose aussi d’un calendrier répertoriant les sorties des prochains épisodes.

    Sonarr

    Radarr et Lidarr ont un fonctionnement similaire à Sonarr mais respectivement pour les films et les fichiers audio.

    Cependant Sonarr et Radarr ne proposent que très peu d’indexers (ou trackers) aujourd’hui. Jackett permet de combler ce manque et prend en charge plus d’une centaine de trackers. De nombreux trackers Français (YGGtorrent) sont supportés ainsi que des trackers privés et semi-privés nécessitant un compte.
    Jackett fonctionne comme un serveur proxy, lorsque vous effectuez une recherche via Sonarr ou Radarr, celui-ci transforme et transmet la requête au tracker, analyse la réponse puis renvoie les résultats à l’application émettrice. Jackett prend aussi en charge les flux RSS.

    Jackett

    Enfin Plex est une solution centralisant l’ensemble de vos médias (films, séries, musiques, photos) et les diffusant sur n’importe quel appareil disposant d’une connexion internet.

    Plex, basé sur XBMC, repose sur une architecture en deux parties. D’un côté, l’application serveur contient l’ensemble de vos médias, facilite l’organisation de votre collection (par thèmes, saisons, albums, etc.) et complète les informations relatives à chaque média, en effectuant une recherche sur les principales bases de données en ligne (TMDb, MoviePosterDB, etc.). L’application convertit vos médias à la volée dans un format compatible avec le lecteur.

    De l’autre côté, l’application lecteur (votre navigateur, l’application Plex sur votre mobile, SMART TV, etc.) vous permet de visualiser vos médias. La qualité du flux streamé est ajustée en fonction de la qualité de votre réseau et celui-ci dispose de nombreuses fonctionnalités comme la synchronisation et la lecture hors-ligne ou encore la récupération automatique de sous-titres.

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.27.4/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.27.4, 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.27.4, 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 des volumes Docker (Deluge, Jackett, Sonarr, Radarr et Lidarr) et de ne pas les lancer sous votre super-utilisateur.

  1. Créez un utilisateur media :

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

    sudo adduser media docker

L’arborescence utilisée sur le filesystem sera la suivante :

data
├── movies
├── music
├── torrents
└── tv

Le choix de spécifier un répertoire par type de média sera très utile pour la gestion des librairies au sein de Plex. Un fichier téléchargé via Deluge restera dans le dossier /data/torrents tant qu’il sera en cours de téléchargement. Une fois terminé, celui-ci sera automatiquement déplacé par Deluge dans le répertoire /data/movies, /data/tv ou /data/music selon si le téléchargement a été ajouté par Radarr, Sonarr ou Lidarr. Nous verrons plus tard comment configurer automatiquement le déplacement d’un média dans le bon répertoire.

  1. Créez l’arboresence dédiée aux téléchargements :

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

    sudo chown media:media /data/torrents /data/movies /data/music /data/tv

4 – Création des volumes Docker

4.1 – 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 media :

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

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

    PUID=1001
    PGID=1001
    PATH_MEDIA=/data
    LAN_NETWORK=192.168.1.0/24
    • PUID et GUID : ces deux variables représentent respectivement l’identifiant et le groupe de votre utilisateur media. 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 media :

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

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

    • PATH_MEDIA : chemin absolu du dossier parent des dossiers /data/torrents, /data/movies, /data/music et /data/tv où seront stockés vos médias. Si vous choisissez un chemin autre que celui-ci, assurez-vous que l’utilisateur media 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/media/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/media/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/media/deluge/config/openvpn.

  9. Le fichier .ovpn doit appartenir à l’utilisateur et au groupe media 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 media:media /home/media/deluge/config/openvpn/*
    sudo chmod 755 /home/media/deluge/config/openvpn/*
  10. Connectez-vous à nouveau sous l’utilisateur media et déplacez-vous dans le répertoire personnel de cet utilisateur :

    su media
    cd
  11. Démarrez le container deluge :

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

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

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

    PUID=1001
    PGID=1001
    PATH_MEDIA=/data
    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 media. 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 media :

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

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

    • PATH_MEDIA : chemin absolu du dossier parent des dossiers /data/torrents, /data/movies, /data/music et /data/tv où seront stockés vos médias. Si vous choisissez un chemin autre que celui-ci, assurez-vous que l’utilisateur media 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/media/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/media/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/media/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 media 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 media:media /home/media/deluge/config/openvpn/*
    sudo chmod 755 /home/media/deluge/config/openvpn/*
  10. Connectez-vous à nouveau sous l’utilisateur media et déplacez-vous dans le répertoire personnel de cet utilisateur :

    su media
    cd
  11. Démarrez le container deluge :

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

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

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

    PUID=1001
    PGID=1001
    PATH_MEDIA=/data
    • PUID et GUID : ces deux variables représentent respectivement l’identifiant et le groupe de votre utilisateur media. 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 media :

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

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

    • PATH_MEDIA : chemin absolu du dossier parent des dossiers /data/torrents, /data/movies, /data/music et /data/tv où seront stockés vos médias. Si vous choisissez un chemin autre que celui-ci, assurez-vous que l’utilisateur media ait les droits de lecture et d’écriture dans le répertoire spécifié.
    •    

  4. Créez le fichier /home/media/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/media/deluge/config:/config
          - ${PATH_MEDIA}:/downloads
  5. Démarrez le container deluge :

    docker-compose up -d

4.2 – Sonarr, Radarr, Lidarr, Jackett et Plex

Chacun des outils utilisés est facultatif, si vous ne souhaitez pas utiliser tel ou tel outil, il suffit de ne pas le mettre dans le fichier docker-compose.yml.

  1. Editez le fichier /home/media/docker-compose.yml et ajoutez les lignes suivantes à la suite du container Deluge :

    version: '3.7'
    services:
      deluge:
      
          [ ... ]
        - ${PATH_MEDIA}:/downloads
      
      jackett:
        image: linuxserver/jackett:latest
        container_name: jackett
        restart: unless-stopped
        network_mode: "host"
        ports:
          - 9117:9117
        environment:
          - PUID=${PUID}
          - PGID=${PGID}
          - TZ=Europe/Paris
        volumes:
          - /home/media/jackett/config:/config
          - /etc/localtime:/etc/localtime:ro
    
      sonarr:
        image: linuxserver/sonarr:latest
        container_name: sonarr
        restart: unless-stopped
        network_mode: "host"
        ports:
          - 8989:8989
        environment:
          - PUID=${PUID}
          - PGID=${PGID}
          - TZ=Europe/Paris
        volumes:
          - /home/media/sonarr/config:/config
          - ${PATH_MEDIA}:/data
    
      radarr:
        image: linuxserver/radarr:latest
        container_name: radarr
        restart: unless-stopped
        network_mode: "host"
        ports:
          - 7878:7878
        environment:
          - PUID=${PUID}
          - PGID=${PGID}
          - TZ=Europe/Paris
        volumes:
          - /home/media/radarr/config:/config
          - ${PATH_MEDIA}:/data
    
      lidarr:
        image: linuxserver/lidarr:latest
        container_name: lidarr
        restart: unless-stopped
        network_mode: "host"
        ports:
          - 8686:8686
        environment:
          - PUID=${PUID}
          - PGID=${PGID}
          - TZ=Europe/Paris
        volumes:
          - /home/media/lidarr/config:/config
          - ${PATH_MEDIA}:/data
    
      plex:
        image: linuxserver/plex:latest
        container_name: plex
        restart: unless-stopped
        network_mode: "host"
        ports:
          - 32400:32400
        environment:
          - VERSION=latest
          - PUID=${PUID}
          - PGID=${PGID}
          - TZ=Europe/Paris
        volumes:
          - /home/media/config:/config
          - ${PATH_MEDIA}:/data
  2. Démarrez l’ensemble de vos containers :

    docker-compose up -d
  3. Attention, docker est un processus lancé en tant que root. Ce qui signifie que les fichiers de configuration créés au démarrage de vos containers ont le propriétaire et groupe root. Pour éviter de futures problèmes liés aux permissions, l’utilisateur media doit pouvoir lire et écrire dans ces fichiers de configuration.

    Repassez sous votre super utilisateur et attribuez les fichiers de configurations à l’utilisateur media :

    exit
    sudo chown -R media:media /home/media

4.3 – Mise à jour automatique des images Docker

Pour profiter des dernières fonctionnalités (codecs Plex, URL des trackers de Jackett mises à jour, etc.) et des derniers patchs de sécurité, il est important d’avoir des images Docker à jour.

Si vous avez plusieurs docker-compose.yml sur votre système, je vous invite à consulter cet article.

Nous allons automatiser la mise à jour des images via une règle crontab. Celle-ci sera planifiée pour exécution tous les jours à 23h42. Les traces liées à l’exécution de ces commandes seront enregistrées dans un fichier /var/log/docker-updater.log.

  1. Éditez la crontab :

    sudo crontab -e
  2. Ajoutez la ligne suivante :

    42 23 * * * (cd /home/media && /usr/local/bin/docker-compose pull && /usr/local/bin/docker-compose up -d --remove-orphans && /usr/bin/docker image prune -f) > /var/log/docker-updater.log 2>&1
  3. Sauvegardez et quittez.

5 – (Facultatif) Accès à distance

  • Si vous souhaitez rester full Docker et accéder à vos services via une URL de type https://deluge.mondomaine.com par exemple, je vous conseille l’utilisation de Traefik :
    Choix 1 : Accès de l’extérieur avec Traefik

  • Si vous possédez déjà un serveur Nginx (ou si vous êtes plus à l’aise avec Nginx) et souhaitez accéder à vos services via une URL de type https://mondomaine.com/deluge par exemple, je vous conseille l’utilisation de Nginx :
    Choix 2 : Accès de l’extérieur avec Nginx

6 – Configuration et problèmes rencontrés

Nous allons maintenant configurer les applications pour qu’elles puissent communiquer entre elles et que chacune d’elles dispose d’un minimum de sécurité :

Configuration et problèmes rencontrés


blank

Ubuntu Server 20.04Docker 19.03.8
Docker Compose 1.26.2
Deluge 2.0.4
Jackett 0.16.105.0
Sonarr 2.0.0.5344
Radarr 0.2.0.1480
Lidarr 0.7.1.1381


blank

5/5 - (42 votes)
20 réponses
    • Edouard WATTECAMPS
      Edouard WATTECAMPS dit :

      Bonjour,

      Je confirme ! YGGTorrent change régulièrement de domaine… Soit vous attendez la nouvelle release de Jackett semaine prochaine, soit vous modifiez directement l’URL de recherche de YGGTorrent (champ Search and download URL) dans Jackett par : www2.yggtorrent.ch

      W.

      Répondre
          • Edouard WATTECAMPS
            Edouard WATTECAMPS dit :

            Si vous n’êtes pas à l’aise avec un éditeur de texte sous Linux, vous pouvez utiliser Nano.
            Pour créer le fichier .env par exemple, tapez la commande :

            nano /home/media/.env

            Une fois le contenu ajouté, faites Ctrl+o pour sauvegarder. Il vous sera demandé de confirmer le nom du fichier, appuyez sur la touche Entrée. Enfin faites Ctrl+x pour quitter.
            La commande est aussi valable pour éditer un fichier.

            W.

  1. Jeremy
    Jeremy dit :

    Bonjour,

    Je me permet juste de remonté sur la partie VPN, tu as déclarer la variable VPN_PASS au lieu de VPN_PASSWORD pour matcher avec le fichier .yml.

    As-tu un article pour ajouter ces container dans le systemd pour qu’il démarre en auto au démarrage ?

    Merci à toi :)

    Répondre
    • Edouard WATTECAMPS
      Edouard WATTECAMPS dit :

      Bien vu ! Merci de me l’avoir remonté, l’article est corrigé. Concernant le lancement au démarrage des containers, bonne remarque mais je n’ai pas d’article traitant le sujet. Je te conseille ce lien où il faut adapter le template dans l’étape 2 mais, à voir, je n’ai pas testé cette procédure.

      Répondre
  2. Bruno
    Bruno dit :

    Bonjour,

    Je n’ai qu’un mot : BRAVO !

    J’ai rarement vu un article aussi bien écrit, détaillé,comportant des explications claires et s’adaptant aux différents architectures ( x86/ARM )

    Merci beaucoup pour cet article et bonne continuation.

    PS :
    Le seul changement que j’ai effectué concerne le fichier de configuration généré par OpenVPN pour mon fournisseur UnlimitedVPN. Erreur au lancement de Deluge indiquant VPN_PORT non trouvé. J’ai ajouté le numéro de port dans le fichier de configuration et statut OK.

    Répondre
  3. Etienne
    Etienne dit :

    Bonjour,

    Je viens de lire ce gros tuto et franchement, merci beaucoup! C’est extrêmement bien expliqué, clair, tout quoi. J’ai pas mal lutté avec docker et traefik ces derniers jours et je sais déjà que tout se passera sans problème, demain quand je m’y mettrai.

    Merci encore pour ce super boulot.

    E.

    Répondre
  4. Manurobate
    Manurobate dit :

    Bonjour,

    J’ai certaines deamons qui ne peuvent pas tourner sur Ubuntu 20.04, je suis donc obligé de rester en 18.04.
    Je ne vois rien de bloquant de mon côté mais je préfère demander confirmation : ce tuto est-il compatible avec Ubuntu 18.04 ou y aura-t-il des problèmes de comptabilité ?

    Répondre

Laisser un commentaire

Rejoindre la discussion?
N’hésitez pas à contribuer !

Laisser un commentaire

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