README — Système Seedbox → Synology (Sonarr/Radarr/qBittorrent) Ce dépôt de scripts automatise la gestion des téléchargements via qBittorrent, en combinaison avec Sonarr et Radarr, pour déplacer les fichiers entre un disque rapide (NVMe) et un stockage long terme (NAS Synology). 1) Vue d’ensemble Téléchargement : qBittorrent télécharge sur NVMe → /data/torrents/completed//... Import Sonarr/Radarr : copie le fichier vers le Synology → /syno/media/... Post-process (scripts) : Ajout entrée mapping_entries.txt Création .state (suivi de 7 jours) (optionnel) hardlink miroir sous /syno/torrents/... Daily script (tous les jours à 07h via systemd) : Vérifie l’âge des .state Déplace qBittorrent vers /syno/torrents/... Lance un recheck Supprime les copies NVMe après succès Résultat : Accès rapide au NVMe au début Conservation long terme sur NAS Torrents fonctionnels (qBittorrent seede depuis /syno/torrents/...) Plex/Sonarr/Radarr utilisent /syno/media/... propres. 2) Scripts installés /scripts/sonarr_postprocess.sh Lance à la fin d’un import Sonarr Crée .state + ajoute au mapping (optionnel) hardlink miroir dans /syno/torrents/... /scripts/radarr_postprocess.sh Identique à Sonarr mais pour Radarr. /scripts/daily_qbittorrent_update.sh Vérifie tous les .state Si ≥ 7 jours (ou --force-move) → met à jour qBittorrent : Déplace le save path vers /syno/torrents/... Recheck Supprime l’ancienne copie NVMe Intègre un appel automatique à /scripts/auto_recover.sh pour rattraper des .state manquants. /scripts/auto_recover.sh Lance /scripts/commandes/recover_states.sh Permet de regénérer des .state perdus à partir de qBittorrent et Sonarr/Radarr. 3) Utilitaires (/scripts/commandes/) run_daily.sh Lance manuellement le daily Options : --dry-run = simulation --force-move = ignore l’âge --clean-orphans = purge mapping cassé Exemple : ./run_daily.sh --dry-run --force-move check_daily.sh Vérifie l’état du service systemd Options : --last = affiche dernières lignes du log --run = lance le daily immédiatement help.sh Affiche l’aide complète avec explication de chaque script + options. rescue.sh Mode secours. Vérifie : Si .state manquent ou sont corrompus Si qBittorrent a des torrents sans mapping Si Sonarr/Radarr n’ont pas généré d’events Affiche les erreurs avec conseils pour corriger. recover_states.sh Script de récupération. Recrée des .state manquants en interrogeant : qBittorrent (via API) Sonarr et Radarr (via API, clé obligatoire) Idéal pour réparer après un bug ou crash. 4) Fichiers de configuration /etc/systemd/system/daily_qbittorrent_update.env Contient les infos qBittorrent : QBITTORRENT_URL=http://192.168.0.101:8090 QBITTORRENT_USER=mousse QBITTORRENT_PASS=Anyone-Makeover-Runaround3-Pacemaker 5) Timers systemd Le daily est déclenché tous les jours à 07h : systemctl list-timers --all | grep daily_qbittorrent_update Vérifier les logs : journalctl -u daily_qbittorrent_update.service --since "today 07:00" 6) Options importantes --dry-run = simulation (aucune suppression, tout loggué) --force-move = ignore l’âge des torrents --clean-orphans = purge les mappings orphelins 7) Mode Rescue Si quelque chose casse : Lancer ./rescue.sh → diagnostic clair Si .state manquent → ./recover_states.sh Relancer un daily forcé : ./run_daily.sh --force-move 8) Intégration avec Cross-Seed Cross-Seed scanne vos torrents existants et ajoute des variantes trouvées sur d’autres trackers. Flux logique Torrent téléchargé → .state créé Daily → miroir /syno/torrents/... Cross-Seed trouve un match → ajoute un torrent équivalent Implications Pas d’incompatibilité avec les scripts. Si Cross-Seed se déclenche avant le Daily → double rehash possible. Après Daily → rehash unique sur /syno/torrents. Modes conseillés Simple (recommandé) : Cross-Seed scanne uniquement /syno/torrents Avancé : inclut aussi /data/torrents → tolérant, mais plus de rehash Cas pratiques Torrent Sonarr importé hier, Daily l’a migré ce matin → Cross-Seed le voit direct sur /syno/torrents Torrent Radarr ajouté il y a 2h, Cross-Seed match avant Daily → rehash supplémentaire 9) Résumé rapide Sonarr/Radarr créent les .state Daily déplace après 7 jours Utilitaires pour check, run, rescue Cross-Seed compatible (choisir mode simple/avancé) En cas de bug → rescue.sh puis recover_states.sh