156 lines
8.0 KiB
Markdown
156 lines
8.0 KiB
Markdown
---
|
|
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
|