Dans la Partie 1, nous avons construit un bunker : un client de téléchargement (qBittorrent) isolé du monde par un VPN (Gluetun) et piloté par une interface moderne (Qui). C’est robuste, mais c’est bête. Pour l’instant, vous devez ajouter vos torrents manuellement.
Aujourd’hui, nous installons le « Cerveau » de votre Media Server. Nous allons automatiser la recherche, standardiser le nommage des fichiers et appliquer nos préférences de qualité : langues, résolution et formats à privilégier ou à éviter.
Au programme :
- Prowlarr : La tour de contrôle des indexers (la résilience).
- Sonarr & Radarr : Les chefs d’orchestre, connectés via le proxy sécurisé de Qui.
- Recyclarr : La gestion des qualités des releases à télécharger.
- qbit_manage : Le majordome de qBittorrent (Gestion des tags, catégories et nettoyage).
1. L’extension du docker-compose.yml
On reprend notre fichier de la Partie 1 et on y ajoute nos gestionnaires.
⚠️ Conservez les chemins définis en partie 1 : qBittorrent télécharge dans
/data/torrents/downloads, et Sonarr/Radarr accèdent aux téléchargements et à la bibliothèque via${DATA_DIR}:/data. On garde ainsi l’arborescence prévue pour les hardlinks.
Ajoutez ces services à votre docker-compose.yml :
services:
# ... (gluetun, qbittorrent, qui sont déjà là) ...
prowlarr:
image: lscr.io/linuxserver/prowlarr:latest
container_name: prowlarr
environment:
- PUID=${PUID}
- PGID=${PGID}
- TZ=${TZ}
volumes:
- ${CONFIG_DIR}/prowlarr:/config
ports:
- 9696:9696
restart: always
sonarr:
image: lscr.io/linuxserver/sonarr:latest
container_name: sonarr
environment:
- PUID=${PUID}
- PGID=${PGID}
- TZ=${TZ}
volumes:
- ${CONFIG_DIR}/sonarr:/config
- ${DATA_DIR}:/data
ports:
- 8989:8989
restart: always
radarr:
image: lscr.io/linuxserver/radarr:latest
container_name: radarr
environment:
- PUID=${PUID}
- PGID=${PGID}
- TZ=${TZ}
volumes:
- ${CONFIG_DIR}/radarr:/config
- ${DATA_DIR}:/data
ports:
- 7878:7878
restart: always
recyclarr:
image: ghcr.io/recyclarr/recyclarr:8
container_name: recyclarr
user: ${PUID}:${PGID}
volumes:
- ${CONFIG_DIR}/recyclarr:/config
qbit_manage:
image: ghcr.io/stuffanthings/qbit_manage:latest
container_name: qbit_manage
environment:
- PUID=${PUID}
- PGID=${PGID}
- TZ=${TZ}
- QBT_SCHEDULE=30
volumes:
- ${CONFIG_DIR}/qbit_manage:/config
- ${DATA_DIR}:/data
restart: unless-stoppedLancez la mise à jour de la stack :
docker compose up -d2. Prowlarr : L’Abstraction nécessaire
Oubliez Jackett. Prowlarr s’intègre nativement avec Sonarr et Radarr. Son rôle est simple : vous configurez vos sites de torrents (Indexers) ici, et il les synchronise automatiquement vers les autres applications.
- Accédez à
http://VOTRE_IP:9696. - Créez un compte ou configurez l’auth (recommandé).
- Ajoutez vos indexers (bouton « Add Indexer »).
- Ajoutez les indexeurs adaptés à vos usages, en choisissant des contenus distribués légalement dans votre juridiction.
- Allez dans Settings > Apps.
- Connectez Sonarr et Radarr :
- Prowlarr Server :
http://prowlarr:9696(C’est l’URL que Sonarr utilisera pour interroger Prowlarr. Attention à bien mettre le nom du conteneur !) - Sonarr/Radarr Server :
http://sonarr:8989ouhttp://radarr:7878(L’URL que Prowlarr utilise pour pousser les infos). - API Key : Récupérez-les via votre navigateur dans Settings > General (sur
http://VOTRE_IP:8989ethttp://VOTRE_IP:7878).
- Prowlarr Server :
- Cliquez sur « Sync App Indexers ».

Si un site change d’URL ou ferme, vous le modifiez uniquement dans Prowlarr. Sonarr et Radarr n’ont même pas besoin de savoir que la source a changé. C’est du découplage propre.
3. La Connexion Sécurisée via « Qui » (Le Reverse Proxy)
C’est ici que notre architecture se distingue des tutos de 2020.
On peut connecter Sonarr directement avec les identifiants administrateur de qBittorrent. Ici, je préfère passer par Qui : chaque application dispose de sa propre clé de proxy, révocable séparément, sans partager le mot de passe qBittorrent.
Nous allons utiliser le Reverse Proxy intégré à Qui.
- Accédez à Qui (
http://VOTRE_IP:7476). - Allez dans Settings > Client Proxy Keys.
- Cliquez sur Create Client API Key.
- Nommez-la « Sonarr » et sélectionnez votre instance qBittorrent.
- Copiez l’URL générée. Elle ressemble à :
http://localhost:7476/proxy/abc123...
Configuration dans Sonarr (et Radarr) :
- Allez dans Settings > Download Clients.
- Cliquez sur le bouton
+pour ajouter un client qBittorrent. - Activez « Show Advanced » (en bas à gauche, à côté du bouton Test) pour voir le champ URL Base.
- Name :
qBit-Qui - Host :
gluetun(Qui tourne dans le réseau de Gluetun, c’est son hostname Docker). - Port :
7476(Le port de Qui, pas celui de qBit !). - URL Base :
/proxy/VOTRE_CLE_API_GENEREE(Collez la partie après le port, ex:/proxy/abc...). - Username/Password : Laissez vide ! C’est Qui qui gère l’auth via la clé dans l’URL.
- Category : Changez
tv-sonarr(par défaut) ensonarr(etradarrpour les films). Qui ne gère pas encore bien les tirets-dans les noms de catégories et risque de bloquer la sauvegarde.
Testez. Ça passe au vert. Vous avez maintenant une connexion découplée et sécurisée. Répétez l’opération pour Radarr.
4. Recyclarr : La gestion des qualités
Configurer les Custom Formats et leurs scores à la main dans Sonarr et Radarr peut vite devenir un enfer de clics. Les TRaSH Guides proposent des profils pour organiser ces préférences : résolution, langues, sources et formats à privilégier ou à éviter.
Recyclarr automatise leur synchronisation via les API de Sonarr et Radarr. On décrit la configuration voulue dans des fichiers YAML, puis il applique les réglages correspondants.
Choisir et générer les templates
L’outil fournit des configurations prêtes à adapter aux profils des TRaSH Guides. C’est une meilleure base que de recopier quelques identifiants et d’attribuer des scores au hasard — même avec beaucoup de conviction.
Depuis Recyclarr v8, les templates officiels ne s’utilisent plus avec les anciens include: template. Les configurations actuelles référencent directement les profils des guides. Le Compose de cet article utilise donc l’image ghcr.io/recyclarr/recyclarr:8. Les changements de fonctionnement sont décrits dans la documentation des inclusions.
Dans cet exemple, je conserve le choix French MULTi.VO en 2160p, pour Sonarr et Radarr. Ce n’est pas un réglage universel : choisissez le profil qui correspond à vos langues, à votre résolution cible et à votre matériel. Les différentes possibilités sont présentées dans les templates officiels.
Si Recyclarr tourne déjà en arrière-plan, arrêtez-le pendant cette première configuration :
docker compose stop recyclarrVous pouvez consulter les templates disponibles :
docker compose run --rm recyclarr config list templatesPuis générer les deux configurations :
docker compose run --rm recyclarr config create \
--template french-multi-vo-bluray-web-2160p \
--template french-multi-vo-uhd-bluray-webCes identifiants correspondent respectivement aux templates actuels Sonarr et Radarr. La commande crée un fichier par template dans le répertoire /config/configs du conteneur. Si un fichier du même nom existe déjà, elle refuse de l’écraser : adaptez le fichier existant. Voir la documentation de la génération.
Avec le volume de notre Compose, les fichiers seront accessibles sur l’hôte dans :
${CONFIG_DIR}/recyclarr/configs/french-multi-vo-bluray-web-2160p.yml
${CONFIG_DIR}/recyclarr/configs/french-multi-vo-uhd-bluray-web.ymlConfigurer les connexions et vérifier les changements
Dans chaque fichier, remplacez les valeurs provisoires de connexion. Pour Sonarr, utilisez base_url: http://sonarr:8989 ; pour Radarr, base_url: http://radarr:7878. Remplacez aussi la valeur de api_key par la clé API de l’application correspondante.
Si vous aviez déjà copié l’ancien exemple dans recyclarr.yml, conservez-en une sauvegarde hors du répertoire de configuration et retirez-le des fichiers synchronisés. Les deux fichiers générés le remplacent : ne gardez pas deux configurations concurrentes pour les mêmes profils.
Avant d’appliquer les changements, lancez une prévisualisation :
docker compose run --rm recyclarr sync --previewRecyclarr interrogera Sonarr et Radarr et affichera les modifications prévues, sans modifier leur configuration. Voir la documentation de sync --preview.
⚠️ Les templates officiels activent reset_unmatched_scores. Concrètement, les scores des Custom Formats non gérés par cette configuration peuvent être remis à zéro dans le profil concerné. C’est une bonne raison de regarder attentivement le résultat de sync --preview avant la première synchronisation. Son fonctionnement est expliqué dans la documentation des profils de qualité.
Appliquer la configuration et automatiser la synchronisation
Si le résultat correspond à vos attentes, appliquez la configuration :
docker compose run --rm recyclarr syncDans Sonarr et Radarr, contrôlez ensuite les Custom Formats et les profils de qualité : qualités autorisées, scores et seuil minimum. Pensez également à sélectionner le profil synchronisé pour vos séries et vos films. La présence d’un Custom Format ne suffit pas, à elle seule, à déterminer ce qui sera accepté ou rejeté.
Vous pouvez enfin démarrer Recyclarr en arrière-plan :
docker compose up -d recyclarrSans commande particulière, le conteneur fonctionne en mode planifié, avec une synchronisation quotidienne par défaut. Voir la documentation du mode planifié.
Voici un exemple avec ma configuration. Ça différera forcément d’un Media Server à l’autre, chacun ayant des besoins différents.

5. qbit_manage : Le Majordome
Sonarr et Radarr savent lancer des téléchargements, mais ils ne savent pas nettoyer derrière eux. Si vous mettez à jour un film, l’ancien fichier reste souvent en seed indéfiniment. C’est là qu’intervient qbit_manage. Il peut :
- Tagguer automatiquement vos torrents en fonction du tracker (utile pour le filtrage).
- Gérer les catégories.
- Supprimer les torrents orphelins (fichiers qui ne sont plus dans qBit).
- Identifier les torrents sans seeders.
Configuration : Au premier lancement, qbit_manage va créer un fichier config.yml vierge dans votre dossier de config. Vous devez l’éditer pour le connecter à votre qBittorrent.
Vous pouvez utiliser le proxy Qui ici aussi pour la connexion ! (url: http://gluetun:7476/proxy/...).
Voici un exemple de configuration à adapter à votre installation. Pour le premier lancement, on commence en simulation afin de vérifier les torrents concernés avant d’activer le nettoyage.
commands:
dry_run: true
tag_nohardlinks: true
share_limits: true
cat_update: false
tag_update: false
rem_unregistered: false
recheck: false
tag_tracker_error: false
rem_orphaned: false
skip_cleanup: false
skip_qb_version_check: false
qbt:
host: http://gluetun:7476/proxy/VOTRE_CLE_API_GENEREE
user:
pass:
directory:
root_dir: /data/torrents
settings:
force_auto_tmm: false
tracker_error_tag: issue
nohardlinks_tag: noHL
stalled_tag: stalledDL
share_limits_tag: ~share_limit
share_limits_min_seeding_time_tag: MinSeedTimeNotReached
share_limits_min_num_seeds_tag: MinSeedsNotMet
share_limits_last_active_tag: LastActiveLimitNotReached
cat_filter_completed: true
share_limits_filter_completed: true
tag_nohardlinks_filter_completed: true
rem_unregistered_filter_completed: false
cat_update_all: true
force_auto_tmm_ignore_tags: []
disable_qbt_default_share_limits: true
tag_stalled_torrents: true
rem_unregistered_ignore_list: []
rem_unregistered_grace_minutes: 10
rem_unregistered_max_torrents: 10
private_tag:
cat:
radarr: /data/torrents/downloads
sonarr: /data/torrents/downloads
cross-seed-link: /data/torrents/cross-seed
radarr.cross-seed: /data/torrents/cross-seed
sonarr.cross-seed: /data/torrents/cross-seed
# Vous pouvez tagguer vos trackers ici
tracker:
other:
tag: other
# On liste uniquement les catégories qu'on veut scanner pour les hardlinks.
nohardlinks:
radarr:
exclude_tags: []
sonarr:
exclude_tags: []
cross-seed-link:
exclude_tags: []
radarr.cross-seed:
exclude_tags: []
sonarr.cross-seed:
exclude_tags: []
share_limits:
# RÈGLE 1 : PROTECTION
# Torrents sans le tag noHL : aucun nettoyage par cette règle
protected_media:
priority: 1
exclude_all_tags: [noHL]
categories:
- radarr
- sonarr
- cross-seed-link
- radarr.cross-seed
- sonarr.cross-seed
max_ratio: -1
max_seeding_time: -1
cleanup: false
# RÈGLE 2 : NETTOYAGE
# Torrents marqués noHL : nettoyage selon les limites ci-dessous
recycle_bin:
priority: 2
include_all_tags: [noHL]
categories:
- radarr
- sonarr
- cross-seed-link
- radarr.cross-seed
- sonarr.cross-seed
max_ratio: 1.0
max_seeding_time: 21600 # 15 jours
min_seeding_time: 10080 # 7 jours min
cleanup: true
Le tag noHL décrit l’absence de hardlink détecté, pas l’absence du média dans votre bibliothèque. Pour un torrent contenant plusieurs fichiers, qbit_manage examine le plus gros fichier. Cette stratégie repose donc sur les imports par hardlinks configurés en partie 1 : un média importé par copie peut encore être présent dans votre bibliothèque tout en recevant ce tag.
Avec dry_run: true, les actions sont simulées. Vérifiez les logs et les torrents ciblés ; passez ensuite à dry_run: false lorsque les règles correspondent au comportement souhaité.
6. Configuration Média (Root Folders & Renaming)
Avant de lancer le premier téléchargement, il faut expliquer à Sonarr/Radarr où ranger les fichiers et comment les nommer. C’est ici que l’architecture /data prend tout son sens.
A. Les Root Folders (Où ranger ?)
Dans Sonarr et Radarr, allez dans Settings > Media Management. Tout en bas, cherchez la section Root Folders.
⚠️ Attention : Ne choisissez surtout pas /data tout court ! Cela mélangerait vos séries avec vos torrents en vrac. Respectez la structure de la Partie 1 :
- Pour Sonarr : Ajoutez
/data/media/tv. - Pour Radarr : Ajoutez
/data/media/movies.
Avec l’arborescence et les permissions mises en place en partie 1, Sonarr et Radarr pourront importer les fichiers par hardlink. Le fichier original reste disponible pour le seeding, tandis que la bibliothèque possède son propre nom et son propre classement, sans dupliquer les données.
B. Le Standard de Renaming (Comment nommer ?)
Toujours dans Media Management, activez « Rename » et « Replace Illegal Characters ».
Le nommage est vital pour que Plex et votre futur « moi » s’y retrouvent. Le format recommandé par les TRaSH Guides (optimisé pour le nouvel agent Plex avec ID TMDb) permet une reconnaissance instantanée.
Standard Movie Format (Radarr) : {Movie CleanTitle} {(Release Year)} {tmdb-{TmdbId}} - {edition-{Edition Tags}} {[MediaInfo 3D]}{[Custom Formats]}{[Quality Full]}{[Mediainfo AudioCodec}{ Mediainfo AudioChannels]}{[MediaInfo VideoDynamicRangeType]}{[MediaInfo VideoCodec]}{-Release Group}
Standard Series Format (Sonarr) : {Series CleanTitle} {tvdb-{TvdbId}} - S{season:00}E{episode:00} - {Episode CleanTitle} {[Custom Formats]}{[Quality Full]}{[MediaInfo VideoDynamicRangeType]}{[Mediainfo AudioCodec}{ Mediainfo AudioChannels]}{[Mediainfo VideoCodec]}{-Release Group}
Note : Ces formats sont longs, mais ils conservent des informations utiles dans les noms de fichiers : source, qualité, codecs et groupe de release. Cela facilite une réimportation après une migration ou un incident. Gardez néanmoins une sauvegarde de Sonarr et Radarr : les noms de fichiers ne remplacent pas leur base de données et leur configuration.
Conclusion Partie 2
Nous avons maintenant un Media Server intelligent et autonome.
- Prowlarr trouve les sources et nous permet de switcher de tracker en 2 minutes.
- Recyclarr synchronise avec Sonarr et Radarr les Custom Formats, leurs scores et les paramètres de nos profils de qualité.
- qbit_manage maintient l’ordre dans les téléchargements.
- Qui sécurise la connexion au bunker de téléchargement.
- Sonarr/Radarr orchestrent le tout et rangent proprement les fichiers.
Mais il manque le principal : pouvoir regarder ce qu’on télécharge ! Pas question d’aller fouiller dans les dossiers.
Dans la Partie 3, nous installerons la « Vitrine » de votre Media Server : Plex pour diffuser vos contenus (avec transcodage matériel) et Seerr pour centraliser les demandes de votre famille.



[…] Server avance bien. Nous avons le Bunker (Partie 1) pour télécharger en sécurité. Nous avons le Cerveau (Partie 2) pour gérer la qualité et le […]
Salut, merci pour le tuto.
J’ai rencontré un soucis avec le service qbit_manage, l’adresse de l’image semble avoir changé et une petite coquille s’est glissée dans le nom de la variable /data :
# image: ghcr.io/stuffbymax/qbit_manage:latest > image: ghcr.io/stuffanthings/qbit_manage:latest
– ${DATA_PATH}:/data > ${DATA_DIR}:/data
Hello, merci pour le signalement ! C’est corrigé.
Non… il est encore dans le premier YAMl sous qbitmanage. J’ai perdu 1h a chercher l’erreur.
Bien vu ! J’avais fait la correction à moitié la dernière fois en zappant la variable d’environnement… Le classique volume vide monté à cause d’une mauvaise variable, je comprends ton heure de debug ! C’est corrigé sur l’article, merci d’avoir relancé le sujet, ça sauvera d’autres lecteurs.
Tu utilise qbi_manage mais tout ce que tu fais avec QUI peut deja le faire nan ? autotag les torrent et tout
Salut ! C’est vrai que Qui gère très bien les tags à l’ajout.
Mais j’utilise qbit_manage surtout pour faire le grand ménage. Il va :
– Supprimer les fichiers « orphelins » (les restes oubliés sur le disque).
– Virer automatiquement les torrents morts (quand un tracker est en erreur).
– Gérer la suppression automatique basée sur ton ratio ou temps de seed.
Bonjour, merci pour le tuto
Je galère à cause d’une permission de qbit_manage dans cette 2e partie :
qbit_manage | Traceback (most recent call last):
qbit_manage | File « /app/qbit_manage.py », line 318, in
qbit_manage | default_dir = ensure_config_dir_initialized(get_default_config_dir(config_files, config_dir))
qbit_manage | File « /app/modules/util.py », line 316, in ensure_config_dir_initialized
qbit_manage | (p / « logs »).mkdir(parents=True, exist_ok=True)
qbit_manage | File « /usr/local/lib/python3.13/pathlib/_local.py », line 722, in mkdir
qbit_manage | os.mkdir(self, mode)
qqbit_manage | PermissionError: [Errno 13] Permission denied: ‘/config/logs’
Saurais tu pourquoi ça échoue ?
Hello, il y avait une coquille dans l’article.
Dans les volumes de qbit_manage, il faut mettre :
– ${DATA_DIR}:/dataà la place de– ${DATA_PATH}:/data.Encore désolé, j’espère que ça t’aidera !
Bonjour ! merci pour ces tutos incroyable.
Question, je voudrais garder les fichiers récupérer en Seed, notamment pour une question de ratio.
ton système malgré le renommage le permet ?
Hello, oui, c’est tout l’intérêt des hardlinks ! Le fichier est physiquement stocké à un seul endroit mais disponible dans plusieurs dossiers à la fois.
Petite coquille a la fin.
– ${DATA_PATH}:/data
Cela ne devrait pas être ?
– ${DATA_DIR}:/data
Bien vu, merci 🙂
Malheureusement, j’avais déjà corrigé cette variable.
Le problème est plutôt en rapport avec des autorisations puisque j’ai 2 erreurs :
– la première signalée au dessus : qbit_manage ne peut pas écrire ses logs
– la 2e lors de la création du fichier recyclarr.yml : nano ${CONFIG_DIR}/recyclarr/recyclarr.yml me retourne un message d’erreur [ Directory ‘/recyclarr’ does not exist ]
Salut ! Comme je le précisais dans les prérequis du guide, cette stack demande d’être un minimum familier avec les commandes de base d’un terminal Linux.
Ici, ce sont deux erreurs très classiques de droits et d’arborescence :
Pour corriger ça, réattribue simplement la propriété du dossier à ton utilisateur avec la commande :
sudo chown -R ton_user:media /chemin/vers/ton/config/qbit_manage(remplace avec tes vraies infos).mkdir -p ${CONFIG_DIR}/recyclarravant de lancer la commande nano.Bon courage pour la suite du setup !
Merci, ça marche. J’apprends petit à petit, désolé si mes questions sont un peu basiques.
Ton tuto était complètement « plug & play » jusqu’à ce point et ça m’a dérouté.
Moi j’ai une erreur plus ou moins au même endroit :
user@serveur:/opt/media-stack $ docker compose run –rm recyclarr config list templates
Container media-stack-recyclarr-run-cae4be9eb031 Creating
Container media-stack-recyclarr-run-cae4be9eb031 Created
Failed: official – Access to the path ‘/config/resources/trash-guides/git/official/.git/refs/heads/master’ is denied.
Failed: official – Access to the path ‘/config/resources/trash-guides/git/official/.git/refs/heads/master’ is denied.
Infos :
Le volume défini dans le compose est bien ${CONFIG_DIR}/recyclarr:/config
(Avec CONFIG_DIR=./ dans le .env)
Pour moi, dans l’adresse /opt/media-stack/config/resources/trash-guides/git/official/.git/refs/heads/master , le « config » est en trop, le reste du chemin existe.
Salut, finalement, après quelques semaines d’apprentissage, j’ai résolu tous les accueils. Je crois que tout tourne sans problème. je vais me trouver un gros hdd et tout remonter au propre. Merci pour ce super tuto.
Bonjour, et un grand merci pour le partage !
J’ai appliqué ta méthode et je suis très content du résultat, sauf, pour un cas d’usage avec « Sonarr » : chaque fois que je tente de récupérer une « série française », il enregistre le nom en anglais et lorsqu’il fait ses recherches sur les les « indexeurs », il tente de trouver le titre en anglais et bien sûr il n’y arrive pas !
Comment as-tu fait pour résoudre ce souci ?
Par avance, merci.
Merci pour ton guide. Il m’a permis de mettre en place la stack sur mon NAS. Juste pour signaler 2 suggestions a faire sur cette partie :
* Recyclarr est sortie en v8, avec un changement assez important au niveau des fichiers de conf qui font que ceux de la v7 (et moins) ne fonctionne plus. Il faudrait penser à mettre a jour cette partie.
* J’ai remplacé qbit_manage par l’automatisation de Qui (Automations). Son système est suffisamment complet pour retrouver le même fonctionnement de nettoyage de qbit_manage en créant 3 règles (qu’on peut aussi tester via un dry run):
– Si « Hardlink Scope » « not equals » « outside_qbittorrent » et « Category » « not equals » « Uncategorized » –> Ajouter tag « noHL » (cela tag les fichiers qui n’ont pas de hardlink hors de qbittorrent)
– Si « Tags » « contains » « noHL » et « Seeding Time » « > » « 15d » –> Ajouter tag « share-limit » et ajouter une limite ratio = 4, Seet time = 43200 m (Permet un temps de seed minimum de 15j et un seed max de 30j ou ratio max de 4 pour les fichiers noHL)
– Si « Tags » « contains » « share-limit » et « State » « not equals » « Seeding » –> Suppression du fichier (Nettoyage des fichiers). A remplacer par un tag « recycle-bin » (par ex.) si on veut vérifier/supprimer à la main.
Pour les torrents « Unregistered », suffit de rajouter une règle qui supprime les torrents si leur statut est « unregistered ». Enfin, Qui propose un scan (et nettoyage) des fichiers orphelins (Orphan Scan).
Merci pour le retour et pour le détail des règles !
Pour Recyclarr, tu as raison : la v8 a changé pas mal de choses côté configuration, donc cette partie du guide a été mise à jour.
Pour qbit_manage, je vais probablement le garder de mon côté. Qui permet de reproduire une grosse partie du nettoyage avec les Automations, et ta config montre bien que c’est viable.
D’un point de vue personnel, j’essaie d’éviter de concentrer trop de logique dans un seul outil : plus je mets d’automatisations dans Qui, plus je couple le fonctionnement de la stack à Qui.
C’est mon côté développeur. Je préfère garder des responsabilités séparées, avec Qui pour l’interface et la gestion autour de qBittorrent, et qbit_manage pour le nettoyage et les règles dédiées. Ça me laisse aussi plus de liberté si je remplace un jour l’un des deux.
Au passage, Qui peut aussi remplacer cross-seed, donc ça peut devenir un vrai choix pour tout centraliser dans un seul outil ou garder plusieurs briques spécialisées.
En tout cas, merci d’avoir documenté la méthode, ça donne une vraie alternative à ceux qui préfèrent réduire le nombre de services.