Blog

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

    • À 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.undefinedSonarr 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.Configuring Sonarr, Radarr and more • Angelo Dini

      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.undefined

      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 :
  • Installer Tdarr sur WSL/Ubuntu

    Installer Tdarr sur WSL/Ubuntu

    SI ce n’est pas déjà fait, il faut installer docker.io et docker-compose avant d’installer Tdarr :

    $ sudo apt install docker.io docker-compose -y

    # Issue : https://unix.stackexchange.com/questions/724518/the-following-packages-have-unmet-dependencies-containerd-io

    Si vous rencontrez l’erreur :

    Reading package lists... Done
    Building dependency tree... Done
    Reading state information... Done
    Some packages could not be installed. This may mean that you have
    requested an impossible situation or if you are using the unstable
    distribution that some required packages have not yet been created
    or been moved out of Incoming.
    The following information may help to resolve the situation:
    
    The following packages have unmet dependencies:
     containerd.io : Conflicts: containerd
                     Conflicts: runc
    E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.

    Il faut supprimer containerd avant d’installer docker.io :

    $ sudo apt-get remove containerd.io
    $ sudo apt install docker.io docker-compose -y
    $ sudo systemctl start docker
    $ sudo gpasswd -a $USER docker

    Puis composer le fichier docker-compose.yml :

    version: "3.4"
    services:
      tdarr:
        container_name: tdarr
        image: ghcr.io/haveagitgat/tdarr:latest
        restart: unless-stopped
        network_mode: bridge
        ports:
          - 8265:8265 # webUI port
          - 8266:8266 # server port
        environment:
          - TZ=Europe/Paris
          - PUID=$PUID
          - PGID=$PGID
          - UMASK_SET=002
          - serverIP=0.0.0.0
          - serverPort=8266
          - webUIPort=8265
          - internalNode=true
          - inContainer=true
          - ffmpegVersion=7
          - nodeName=MyInternalNode
          - auth=false
          - openBrowser=true
          - maxLogSizeMB=10
          - cronPluginUpdate=
          - NVIDIA_DRIVER_CAPABILITIES=all
          - NVIDIA_VISIBLE_DEVICES=all
        volumes:
          - /docker/tdarr/server:/app/server
          - /docker/tdarr/configs:/app/configs
          - /docker/tdarr/logs:/app/logs
          - /media:/media
          - /mnt:/mnt
          - /transcode_cache:/temp
    
        devices:
          - /dev/dri:/dev/dri
        deploy:
          resources:
            reservations:
              devices:
              - driver: nvidia
                count: all
                capabilities: [gpu]
    
    # node example
      tdarr-node:
        container_name: tdarr-node
        image: ghcr.io/haveagitgat/tdarr_node:latest
        restart: unless-stopped
        network_mode: service:tdarr
        environment:
          - TZ=Europe/Paris
          - PUID=$PUID
          - PGID=$PGID
          - UMASK_SET=002
          - nodeName=MyExternalNode
          - serverIP=0.0.0.0
          - serverPort=8266
          - inContainer=true
          - ffmpegVersion=7
          - nodeType=mapped
          - priority=-1
          - cronPluginUpdate=
          - apiKey=
          - maxLogSizeMB=10
          - pollInterval=2000
          - startPaused=false
          - transcodegpuWorkers=1
          - transcodecpuWorkers=2
          - healthcheckgpuWorkers=1
          - healthcheckcpuWorkers=1
          - NVIDIA_DRIVER_CAPABILITIES=all
          - NVIDIA_VISIBLE_DEVICES=all
    
        volumes:
          - /docker/tdarr/configs:/app/configs
          - /docker/tdarr/logs:/app/logs
          - /media:/media
          - /mnt:/mnt
          - /transcode_cache:/temp
    
        devices:
          - /dev/dri:/dev/dri
        deploy:
          resources:
            reservations:
              devices:
              - driver: nvidia
                count: all
                capabilities: [gpu]

    # Issue : https://github.com/HaveAGitGat/Tdarr/issues/610

    Si vous rencontrez l’erreur suivante lors de la composition :

    ERROR: for tdarr  Cannot start service tdarr: error gathering device information while adding custom device "/dev/dri": no such file or directory

    Il faut installer les pilotes NVIDIA :

    $ curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
      && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
        sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
        sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
    $ sudo apt update
    $ export NVIDIA_CONTAINER_TOOLKIT_VERSION=1.18.0-1
      sudo apt-get install -y \
          nvidia-container-toolkit=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
          nvidia-container-toolkit-base=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
          libnvidia-container-tools=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
          libnvidia-container1=${NVIDIA_CONTAINER_TOOLKIT_VERSION}

    Puis configurer docker pour l’utiliser le pilote NVIDIA avec nvidia-ctk :

    $ sudo nvidia-ctk runtime configure --runtime=docker
    $ sudo systemctl restart docker
  • Installer Docker sur Debian

    Installer Docker sur Debian

    Qu’est-ce Docker et les conteneurs ?

    Ce sujet ayant déjà été abordé, replongez vous dans l’histoire des conteneurs.

    Une brève histoire des conteneurs

    Prérequis

    • Vous devez disposer d’Ubuntu 20.04 en version Desktop, Server ou ARM (Raspberry Pi).
    • 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 update && sudo apt upgrade -y

    Installation de Docker & Docker Compose

    Docker

    Installez Docker :

    sudo apt-get install -y docker.io

    Vérifiez que Docker est correctement installé avec la commande :

    docker -v

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

    Docker version 20.10.24+dfsg1, build 297e128

    Docker Compose

    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/v2.40.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

    Ajoutez les droits d’exécution sur le binaire de Docker Compose :

    sudo chmod +x /usr/local/bin/docker-compose

    Vérifiez l’installation de Docker Compose avec la commande :

    docker-compose -v

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

    Docker Compose version v2.40.0

    Droits Unix

    Pensez à ajouter votre utilisateur au groupe Docker :

    sudo adduser $USER docker