Passer au contenu principal

Téléchargez vos torrents avec qBittorrent et trichez sur votre ratio avec Joal

Docker Compose pour qBittorrent et Joal

Voici un exemple de fichier docker-compose.yml configuré pour :

  • Un VPN via le conteneur gluetun
  • Joal pour simuler les partages
  • qBittorrent comme client torrent
  • Un conteneur curl pour vérifier que le VPN est actif

Important :
Adaptez les chemins des volumes en fonction de l’emplacement de vos données sur votre système.

Le conteneur Gluetun supporte un grand nombre de fournisseurs VPN, notamment :
AirVPN, Cyberghost, ExpressVPN, FastestVPN, Giganews, HideMyAss, IPVanish, IVPN, Mullvad, NordVPN, Perfect Privacy, Privado, Private Internet Access, PrivateVPN, ProtonVPN, PureVPN, SlickVPN, Surfshark, TorGuard, VPNSecure.me, VPNUnlimited, VyprVPN, WeVPN, Windscribe.

Pour plus d’informations et pour consulter la documentation complète, rendez-vous sur :
https://github.com/qdm12/gluetun

services:
  gluetun:
    container_name: gluetun
    image: qmcgaw/gluetun
    restart: unless-stopped
    cap_add:
      - NET_ADMIN
    devices:
      - /dev/net/tun:/dev/net/tun
    ports:
      - 6060:8080                         # Interface web Joal
      - 7070:7070                         # Interface web Qbittorent
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Zurich
      - VPN_SERVICE_PROVIDER=surfshark    # Configs des autres fournisseurs : https://github.com/qdm12/gluetun-wiki/tree/main/setup/providers
      - VPN_TYPE=wireguard
      - WIREGUARD_PRIVATE_KEY=XXXXXX=     # Remplacez par votre clé privée
      - WIREGUARD_ADDRESSES=10.14.0.2/16
      - SERVER_COUNTRIES=Switzerland
      - UPDATER_VPN=12h                   # Mets à jour le VPN
      - DNS_ADDRESS=194.242.2.2           # DNS Mullvad
    networks:
      - gluetenbridge

  curl: # Le conteneur sert à vérifier votre IP
    image: curlimages/curl
    container_name: test_ip_vpn
    command: ["curl", "ipinfo.io"]
    restart: no
    network_mode: service:gluetun
    depends_on:
      gluetun:
        condition: service_healthy

  qbittorrent:
    image: lscr.io/linuxserver/qbittorrent:latest
    container_name: qbittorrent
    restart: unless-stopped
    network_mode: service:gluetun
    depends_on:
      gluetun:
        condition: service_healthy
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Zurich
      - WEBUI_PORT=7070
      - TORRENTING_PORT=6881
    volumes:
      - /srv/qbittorrent/appdata:/config  # Assurez-vous que le dossier correspond à votre configuration
      - /mnt/nas_multimedia:/downloads  # Assurez-vous que le dossier correspond à votre configuration

#  joal:
#    image: ghcr.io/skylanix/joal:latest
#    container_name: joal
#    restart: unless-stopped
#    network_mode: service:gluetun
#    depends_on:
#      gluetun:
#        condition: service_healthy
#    environment:
#      - PUID=1000
#      - PGID=1000
#      - TZ=Europe/Zurich
#    volumes:
#      - /srv/joal/data:/data  # Assurez-vous que le dossier correspond à votre configuration
#    command: 
#      - "--joal-conf=/data"
#      - "--spring.main.web-environment=true"
#      - "--server.port=8080"
#      - "--joal.ui.path.prefix=joal"
#      - "--joal.ui.secret-token=YourToken"

networks:
  gluetenbridge:
    driver: bridge

Vérification de l'IP VPN

Le service curl est là pour vérifier l’IP publique utilisée par le VPN. Affichez ses logs après lancement :

docker logs test_ip_vpn

Vous devriez voir l’adresse IP (celle du VPN). Si elle ne s'affiche pas, redémarrez le conteneur, vous vérifiez à nouveau que vous êtes bien connecté au VPN.

⚠️ Avertissements importants

  • Sécurité du token :
    Remplacez YourToken par un mot de passe fort unique. Ne le divulguez pas publiquement et protégez l’accès à l’interface Joal.

  • Gestion du simulateur Joal :
    Si votre ratio est déjà satisfaisant, pour éviter les risques de bannissement par les trackers, désactivez Joal temporairement en commentant la ligne restart: unless-stopped dans le fichier docker-compose.yml. Cela empêchera le conteneur de redémarrer automatiquement (le simulateur démarre un upload dès son lancement).

3. Accéder à l’interface web de qBittorent

L’interface est accessible via :

http://<ip_serveur>:7070

Le nom d'utilisateur est admin et le mot de passe temporaire est a changé ce trouve dans les logs du conteneur :

docker logs qbittorrent

4. Accéder à l’interface web de Joal

L’interface est accessible via :

http://<ip_serveur>:6060/joal/ui

Note : Le chemin /joal/ui correspond au préfixe défini dans la configuration.

5. Configuration initiale de Joal

  1. Cliquez sur "Modifier les paramètres de connexion" dans l’interface.
    Modifier paramètres

  2. Configurez les paramètres :

    • Adresse du serveur : l’IP ou le nom de domaine de votre serveur
    • Port du serveur : 6060
    • Préfixe du chemin : joal
    • Jeton secret : le token choisi dans le docker-compose
    • Cliquez sur Enregistrer
      Paramètres connexion

6. Paramètres de configuration Joal

  • Définissez les vitesses minimales et maximales de téléchargement simulé.
  • Choisissez votre client torrent préféré.
  • Limitez le nombre de torrents envoyés simultanément.
  • Précisez le ratio requis pour chaque torrent (mettre -1 pour illimité).

Conseil : Ne poussez pas les vitesses trop haut pour rester discret.

7. Ajout de torrents dans Joal

Trois méthodes possibles :

  • Glisser-déposer les fichiers .torrent dans le tableau de bord Joal.
  • Cliquer sur le bouton "+" et sélectionner un fichier.
  • Copier les fichiers .torrent directement dans le dossier /srv/joal/data/torrents.

8. Conseils d’utilisation

  • Sélectionnez de préférence des torrents avec beaucoup de seeds (sources) pour que le partage simulé soit crédible.
  • Surveillez régulièrement l’état via l’interface Joal.
  • Tenez compte des règles du tracker pour éviter d’être banni.

Si vous avez besoin d’aide supplémentaire ou de précisions, n’hésitez pas à demander !

Remarque : Ce tutoriel s'adresse à un usage modéré et responsable des outils de torrenting. Tricher peut nuire à l’écosystème des trackers et violer leurs conditions d’utilisation.