==================================================================== FICHIER : SEEDBOX_MANAGER_STRUCTURE_SYNTHESIS.txt PROJET : Seedbox Manager PHASE : COMPARAISON ARCHIVES + MÉMOIRE (Fusion finale A→E) OBJET : Cartographie logique, décisions clés, et feuille de route VERSION : Synthèse A→E — 2025-10-12 ==================================================================== 1) PRÉSENTATION GÉNÉRALE ------------------------ Objectif du projet - Orchestration et automatisation d’une seedbox OMV : ingestion via Autobrr, gestion Sonarr/Radarr, téléchargement qBittorrent, et bascule Hot→Warm (NVMe→Synology). - Fiabiliser les flux, tracer les décisions, éviter le retour de bugs déjà traités. - Préparer un orchestrateur “Seedbox Manager” (MVP) type dashboard central. Contexte - Hôte : OpenMediaVault (OMV). - Conteneurs : Docker/Compose (format v2 sans clé "version:"). - Stockage : NVMe (Hot) → Synology NAS (Warm). - Décision structurante : ABANDON de MergerFS au profit d’un flux DEX-LAR/Hardlink Sync et/ou rsync + API qBittorrent (selon cas d’usage). -------------------------------------------------------------------- 2) ARCHITECTURE LOGIQUE (NIVEAUX) -------------------------------------------------------------------- N1. Ingestion indexers → Autobrr (filtres) - Matching RSS, exécution “Exec”. - v5.0 : Autobrr télécharge le .torrent (cookies côté Autobrr) puis push vers ARRs via /api/v3/release/push (contournement des indexers protégés). N2. Contrôle média → Sonarr/Radarr (ARRs) - Post-process écrivant des fichiers .state (contrat formel). - Option encadrée : toggle d’indexers + RssSync par API (fenêtre courte). N3. Téléchargement → qBittorrent - Seed sur NVMe puis bascule planifiée ; API setLocation, recheck. - Scripts quotidiens : lecture des .state, purge mapping, transferts. N4. Stockage Hot→Warm - NVMe → Synology (réplication par rsync ; DEX-LAR/Hardlink Sync lorsque pertinent). - Registres/mapping : CSV puis “mapping_entries.txt”, SQLite pour le v5.0 Autobrr. N5. Observabilité & Logique globale - Journaux dédiés, rotation, verrous (locks), modes dry-run. - Notifications : de sendmail vers Notifiarr (à standardiser). - Gouvernance documentaire OneDrive/Git (checklists et rapports d’archives). -------------------------------------------------------------------- 3) SOUS-PROJETS (OBJECTIF, INTERFACES, STATUT) -------------------------------------------------------------------- 3.1 Autobrr (v5.0 hybride) - But : fiabiliser l’ingestion pour ARRs depuis indexers protégés. - Interface : Exec POSIX (/bin/sh) ; .torrent téléchargé avec cookies → /api/v3/release/push. - Fallback : moteur Python (lecture bencode) + cache SQLite (anti-perte). - Statut : Retiens le pattern v5.0 ; packaging/chemins à finaliser. 3.2 Sonarr / Radarr - But : normaliser le post-process et maîtriser les triggers. - Interface : fichiers .state (schéma formalisé), API v3 (indexers, RssSync, release/push). - Statut : stable ; toggles API utilisables de façon ponctuelle et documentée. 3.3 qBittorrent - But : seed initial puis bascule contrôlée vers Synology. - Interface : API (`/api/v2/torrents/setLocation`, `recheck`), catégories, logs. - Statut : stable ; scripts “safe” (rsync + journalisation + rotation). 3.4 DEX-LAR / Hardlink Sync (Rotation Hot→Warm) - But : garantir intégrité et économie d’espace lors de la bascule. - Interface : registres mapping (CSV → mapping_entries.txt) ; vérifications/locks. - Statut : solution de référence ; MergerFS ABANDONNÉ (problèmes de boot et dépendances réseau). 3.5 Monitoring & Notifications - But : centraliser alertes et rapports. - Interface : Notifiarr (planifié), logs dédiés, rétention. - Statut : à intégrer (remplacer les mails “sendmail”). 3.6 Orchestrateur Seedbox Manager (MVP) - But : tableau de bord unique (état torrents, espaces, erreurs, politiques). - Interface : API ARRs/qB, registre mapping, couches Hot/Warm/Cold. - Statut : conception cadrée ; implémentation à venir. -------------------------------------------------------------------- 4) CHRONOLOGIE RECONSTITUÉE (A→E) -------------------------------------------------------------------- P1 (Lot A) — Conception & prototypes - Idée NVMe→Synology, scripts initiaux, tests MergerFS. - Diagnostic montages ; service systemd ; premières API qBittorrent. P2 (Lot B) — Automatisation & catégories - Déplacement NVMe→HDD via API qB ; multi-disques/catégories ; rsync + logs + sendmail. - Filtres Autobrr + Exec ; compatibilité Compose v2 (OMV). P3 (Lot C) — Stabilisation post-process & daily - Contrat .state ; script quotidien qB ; unification chemins/logs/locks ; préfiguration fallback Python. P4 (Lot D) — Pivots Autobrr→ARR (v5.0) - Stratégie “Autobrr télécharge + release/push” ; Exec standardisé (/bin/sh). - Fallback Python + SQLite ; options API Sonarr (indexers/RssSync) encadrées. P5 (Lot E) — Gouvernance & MVP - Templates/OneDrive/Git ; roadmap par phases ; MVP orchestrateur. - Architecture v5.0 Autobrr→Sonarr figée comme référence. -------------------------------------------------------------------- 5) FLUX OPÉRATIONNEL (SCHÉMA TEXTE) -------------------------------------------------------------------- Indexers → Autobrr (Filtres/Exec) → [.torrent téléchargé via cookies] → Payload (v5.0) → Sonarr/Radarr (/api/v3/release/push) → Post-process (.state) → qBittorrent (seed NVMe) → Script quotidien (API setLocation/recheck) → Synology (Warm) [rsync/DEX-LAR] → Logs/Locks/Mapping → Notifications -------------------------------------------------------------------- 6) DÉCISIONS & IMPACTS (CLÉS) -------------------------------------------------------------------- D1. MergerFS ABANDONNÉ → Flux DEX-LAR/Hardlink Sync et/ou rsync + API qB adoptés. D2. Compose : format v2 (suppression de “version:”) — compat OMV-Extras. D3. Exec Autobrr : standard POSIX (/bin/sh), volume /scripts, logs dédiés, masquage secrets. D4. Contrat .state : figer le schéma (types, codage UTF-8, newline LF). D5. v5.0 Autobrr→ARR : fallback Python + SQLite pour robustesse et traçabilité. D6. Unifier les chemins hôte/containers (MAP/STATE/LOG) via fichier d’environnement. D7. Monitoring : basculer des mails ad hoc vers Notifiarr + rétention de logs. D8. Sauvegardes : inclure DB SQLite, fichiers .state, mapping, et configs .env. -------------------------------------------------------------------- 7) GOUVERNANCE DOCUMENTAIRE (RÉFÉRENCE) -------------------------------------------------------------------- Dossiers recommandés (projet) : /scripts, /logs, /state, /locks, /compose, /docs, /archive, /registry Spécifications à publier : • STATE_SCHEMA.txt (format .state ARRs) • ARR_PUSH_V5_SPEC.txt (payload release/push + schéma SQLite) • WORKFLOW_SEED_NVME_SYNOLOGY.txt (mapping/locks/logs/timers/tests) • COMPOSE_STANDARDS.txt (normes Compose v2 ; volumes/réseau) • MONITORING_NOTIFIARR_GRAFANA.txt (alertes/board) RÉFÉRENCES (CHEMIN NAS OFFICIEL) Spécifications “source of truth” : \\DS-918\chatgpt\ChatGPT-Gouvernance-Projets\_docs\SeedboxManager\specs\ - STATE_SCHEMA.txt - ARR_PUSH_V5_SPEC.txt - WORKFLOW_SEED_NVME_SYNOLOGY.txt - INDEX_SPECS.txt (index) Miroir (facultatif) : \\DS-918\chatgpt\SeedboxManager\docs\specs\ Rappels : • Toute mise à jour est faite dans le répertoire “gouvernance” ; le miroir est informatif. • Encodage attendu : UTF-8 (LF). Aucune clé/API en clair dans ces fichiers. • Ne pas déduire la chronologie depuis les dates des noms de fichiers. -------------------------------------------------------------------- 8) RISQUES & POINTS DE VIGILANCE -------------------------------------------------------------------- - Divergences de chemins hôte/containers (/scripts, /config, volumes). - Exposition accidentelle de secrets dans les logs (verbeux → filtrer). - Concurrence SQLite (mode WAL, sauvegardes régulières). - Utilisation des toggles d’indexers Sonarr : strictement encadrée et réversible. - SMB/Windows : éviter les opérations destructrices via partages en production. -------------------------------------------------------------------- 9) FEUILLE DE ROUTE (PROCHAINES ÉTAPES) -------------------------------------------------------------------- E1. Publier les 3 spécifications : STATE_SCHEMA.txt, ARR_PUSH_V5_SPEC.txt, WORKFLOW_SEED_NVME_SYNOLOGY.txt. E2. Normaliser les scripts v5.2 en POSIX /bin/sh + fichier d’environnement commun. E3. Intégrer Notifiarr (remplacer sendmail) et définir la rétention de logs. E4. Documenter la stratégie de sauvegarde (SQLite/configs) et tests de restauration. E5. Cadrer Orchestrateur MVP : périmètre, endpoints prioritaires, maquette dashboard. E6. Revue sécurité (exposition services, secrets, sauvegardes) et plan de mitigation. -------------------------------------------------------------------- ANNEXE A — RAPPORTS D’ARCHIVES INDEXÉS (A→E) -------------------------------------------------------------------- ARCHIVES_INDEX_REPORT_LotA_2025-10-11.txt ARCHIVES_INDEX_REPORT_LotB_2025-10-11.txt ARCHIVES_INDEX_REPORT_LotC_2025-10-12.txt ARCHIVES_INDEX_REPORT_LotD_2025-10-12.txt ARCHIVES_INDEX_REPORT_LotE_2025-10-12.txt ==================================================================== FIN DU DOCUMENT — SEEDBOX_MANAGER_STRUCTURE_SYNTHESIS.txt ====================================================================