====================================================================
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
====================================================================
