--- title: qBit Manage created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, automation, qbittorrent, torrent, cross-seed, python] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Automation, https://github.com/StuffAnThings/qbit_manage] --- # 🧹 qBit Manage > **Le majordome de votre instance qBittorrent** — automatise toutes les tâches fastidieuses : taguer par tracker, catégoriser par dossier, supprimer les torrents « unregistered », nettoyer les orphelins, gérer les share limits, cross-seed, et bien plus. ## 📋 Informations Générales | Champ | Valeur | | :--- | :--- | | **Site web** | [github.com/StuffAnThings/qbit_manage](https://github.com/StuffAnThings/qbit_manage) | | **GitHub** | [StuffAnThings/qbit_manage](https://github.com/StuffAnThings/qbit_manage) | | **License** | MIT | | **Langage** | Python (53 %), JavaScript (32 %), CSS, Rust | | **Étoiles GitHub** | 1 500 ⭐ | | **Dernière MAJ** | 2026-05-30 (release v4.8.0) | | **Catégorie** | [[cat-automation\|Automation]] | ## 📝 Description **qBit Manage** est l'outil compagnon indispensable de [[app-qbittorrent]] : il prend en charge tout ce que l'UI native ne fait pas, ou mal, pour une gestion durable d'une bibliothèque de torrents. C'est l'équivalent d'**autobrr** côté **monitoring/cleanup**, alors qu'autobrr se concentre sur la **course au download**. Le programme s'exécute en **boucle planifiée** (intervalle configurable, par défaut 5 min) et applique en cascade des règles définies dans un `config.yml`. Voici le périmètre fonctionnel : - **Tagging par tracker** : assigne automatiquement un tag (par exemple `private-tracker`, `public-tracker`, `*arr`) à chaque torrent en fonction de son URL tracker. C'est la base de presque toutes les autres règles. - **Catégorisation par `save_path`** : si un torrent est sans catégorie, qBit Manage l'assigne selon le dossier où il se trouve. - **Suppression des torrents « unregistered »** : pour les torrents supprimés par les trackers, qBit Manage vérifie le statut et supprime le torrent (et le fichier, ou seulement le torrent si du cross-seed est détecté ailleurs). - **Recheck & Resume** : sur les torrents en pause, les trie par taille croissante, force un `recheck`, et reprend ceux qui sont complets (utile après un crash disque). - **Nettoyage des orphelins** : détecte les fichiers dans le dossier racine de qBittorrent qui ne sont plus référencés par aucun torrent, et les déplace vers une corbeille configurable. - **Détection de hardlinks** : tague les torrents qui n'ont aucun hardlink hors du dossier racine (signe qu'ils ne sont pas cross-seedés). - **Share limits** : applique des limites de ratio/temps de seed par groupe de tags, avec cleanup optionnel des torrents atteignant les limites. - **RecycleBin** : au lieu de supprimer, déplace les fichiers vers un dossier corbeille pendant X jours. - **Notifications** : intégration native Notifiarr, Apprise, Discord, Telegram via webhooks. - **Web UI** (depuis v4.x) : frontend de gestion du `config.yml` sur le port 8181 (changé depuis 8080 pour éviter le conflit avec qBittorrent lui-même). ## 🚀 Installation ### Option 1 : Docker Compose (recommandé) ```yaml # docker-compose.yml services: qbit-manage: image: ghcr.io/stuffanthings/qbit_manage:latest container_name: qbit-manage restart: unless-stopped environment: - TZ=Europe/Paris - PUID=1000 - PGID=1000 - QBT_HOST=localhost - QBT_PORT=8080 - QBT_USER=admin - QBT_PASSWORD=*** volumes: - ./config:/config # config.yml et fichiers associés - ./logs:/logs ports: - "8181:8181" # Web UI (gérer le config.yml) depends_on: - qbittorrent qbittorrent: image: lscr.io/linuxserver/qbittorrent:latest container_name: qbittorrent restart: unless-stopped environment: - PUID=1000 - PGID=1000 - TZ=Europe/Paris - WEBUI_PORT=8080 volumes: - ./qbt-config:/config - ./downloads:/downloads ports: - "8080:8080" volumes: qbt-config: ``` ### Option 2 : Binaire standalone / Tauri Desktop Des binaires standalone Linux x86_64 / ARM64 sont disponibles, ainsi qu'une **application Tauri** multi-plateforme (Linux, macOS, Windows) pour les utilisateurs qui ne veulent pas d'image Docker. ### Option 3 : Python (bare-metal) ```bash git clone https://github.com/StuffAnThings/qbit_manage.git cd qbit_manage python -m pip install -r requirements.txt python qbit_manage.py ``` Nécessite Python 3.10+ (depuis v4.6.6). ## ⚙️ Configuration 1. **Éditer `config/config.yml`** : spécifier l'URL, l'utilisateur, le mot de passe de qBittorrent. 2. **Définir les `directory` roots** : indiquez le dossier racine de votre bibliothèque torrent pour la détection d'orphelins. 3. **Configurer les `cat_change`** : transitions de catégorie (par exemple, quand un torrent passe en `Wanted` → `Have`). 4. **Activer le scheduler** : fréquence de scan recommandée = 5 à 15 min selon l'activité de votre instance. 5. **`share_limits`** : configurer les groupes (par tag) et les règles de ratio/temps. 6. **Notifications Apprise/Notifiarr** : brancher pour suivre l'activité en temps réel. 7. **Dry-run au début** : commenter les sections de suppression tant que vous n'avez pas validé le comportement sur 24-48 h. ## 🔄 Alternatives ### Open Source - [[app-qbittorrent]] — UI native, mais sans automation - **cross-seed** — Outil dédié à la recherche automatique de releases alternatives pour le cross-seed (complémentaire, pas concurrent) - [[app-autobrr]] — Automation côté **acquisition** (téléchargement initial), qBit Manage côté **maintenance** (cleanup) - **Huginn** — Agent d'automation généraliste, peut scripter l'API qBittorrent ### Propriétaires (ce que qBit Manage remplace) - **qBittorrent Enhanced Edition** (fork Windows non officiel, fonctionnalités similaires intégrées) - **uTorrent Pro / BitTorrent Pro** — Historique, ratio management, mais lourd et publicitaire - **Sonarr/Radarr + custom scripts** — Empilement de scripts Bash/Python, moins intégré ## 🔐 Sécurité - ⚠️ Le **mot de passe qBittorrent** est en clair dans le `config.yml` : **chmod 600** sur le fichier, ou mieux, utiliser **Docker secrets** (`/run/secrets/qbt_password` + variable `QBT_PASSWORD_FILE`) - 🔐 **Web UI qBit Manage** (port 8181) : **ne pas exposer sur Internet** sans auth (reverse proxy + SSO [[app-authelia]] recommandé) - 🛡️ **VPN obligatoire** pour le trafic BitTorrent ([[app-gluetun]]) : qBit Manage n'ajoute pas de VPN, il s'appuie sur celui de qBittorrent - 🔑 **Tokens Notifiarr/Apprise** stockés dans le YAML : rotation régulière, pas d'exposition Git - 🗑️ La **RecycleBin** doit être montée sur le même filesystem que la bibliothèque pour éviter les copies inutiles - 📜 **Logs** : ils peuvent contenir des **passkeys de tracker** (corrigés en v4.8.0, mais surveiller), purger régulièrement - 🚨 Tester en `dry-run` les règles `remove_unregistered` et `share_limits` avant activation ## 📚 Ressources - [Repo GitHub StuffAnThings/qbit_manage](https://github.com/StuffAnThings/qbit_manage) - [Wiki Local Installations](https://github.com/StuffAnThings/qbit_manage/wiki/Local-Installations) - [Wiki Docker Installation](https://github.com/StuffAnThings/qbit_manage/wiki/Docker-Installation) - [Wiki Config Setup](https://github.com/StuffAnThings/qbit_manage/wiki/Config-Setup) - [Exemple de config.yml](https://github.com/StuffAnThings/qbit_manage/blob/master/config/config.yml.sample) - [Changelog](https://github.com/StuffAnThings/qbit_manage/releases) ## Pages Liées - [[cat-automation]] — Vue d'ensemble de la catégorie - [[app-qbittorrent]] — Client torrent cible - [[app-autobrr]] — Complément côté acquisition - [[app-gluetun]] — VPN pour le trafic torrent - [[app-traefik]] — Reverse proxy HTTPS - [[app-authelia]] — SSO - [[securisation-home-lab]] — Bonnes pratiques - [[recettes-docker-compose]] — Templates Docker