TITRE ====== Pipeline de synchronisation scripts Seedbox (OMV → Synology → HyperBackup) Version : 2025-11-16 Auteur : Mousse + ChatGPT Périmètre : scripts Seedbox (répertoire data/scripts sur OMV) 1. OBJECTIF ============ Mettre en place une synchronisation automatique, fiable et unidirectionnelle : - Source-of-Truth (SoT) : OMV (disque T500) + dépôt GitHub. - Copie miroir : Synology (dossier local sur volume1/chatgpt). - Sauvegarde longue durée : HyperBackup sur le Synology. Contraintes : - Pas d’accès SSH sur le Synology (par choix de sécurité). - Utilisation des mécanismes officiels OMV (Shared Folders + module Rsync + cron). - Montages distants gérés côté OMV (NFS / remotemount Synology). - Aucun transfert via le laptop : la synchronisation est OMV ↔ Synology en direct, en filaire. 2. TOPOLOGIE GLOBALE ===================== Machines : - Laptop MX Linux : poste de développement, accès NFS aux données OMV et Synology. - OMV (192.168.0.101) : seedbox, disques T500 / crucial, exécution des scripts Seedbox. - Synology (192.168.0.97) : NAS principal, volume1/chatgpt pour la gouvernance et les sauvegardes. Rôle de chaque machine : - MX : développement, édition des scripts, git clone/pull/push vers GitHub. - OMV : exécution des scripts, SoT local des scripts (data/scripts), lancement de la tâche Rsync. - Synology : miroir des scripts (pour archivage) + sauvegarde HyperBackup. 3. CHEMINS IMPORTANTS ====================== Côté OMV (disques locaux) : - Disque T500 (SSD Seedbox) : /srv/dev-disk-by-uuid-167c3d64-0b12-412d-9453-f941e78f8f6e/ - Répertoire des scripts Seedbox (SoT locale) : /srv/dev-disk-by-uuid-167c3d64-0b12-412d-9453-f941e78f8f6e/data/scripts/ Shared Folders OMV utilisés : - Shared Folder source : Nom : seedbox_scripts Chemin effectif : /srv/dev-disk-by-uuid-167c3d64-0b12-412d-9453-f941e78f8f6e/data/scripts/ - Shared Folder cible (remotemount Synology) : Nom : syno_remote_chatgpt Chemin effectif : /srv/remotemount/syno_remote_chatgpt/ Sous-dossier de réplication : /srv/remotemount/syno_remote_chatgpt/seedbox/seedbox_scripts/ Côté Synology : - Volume principal : /volume1/ - Dossier de travail ChatGPT : /volume1/chatgpt/ - Dossier miroir des scripts Seedbox (cible de Rsync OMV) : /volume1/chatgpt/seedbox/seedbox_scripts/ - HyperBackup pointe ensuite sur ce dossier pour sa stratégie de sauvegarde. 4. RÔLE DE LA SYNCHRONISATION ============================== Logique de responsabilités : - GitHub : - Historique des scripts. - Référence pour les versions validées côté code. - OMV (T500 / data/scripts) : - SoT opérationnelle. - Scripts réellement utilisés en production sur la seedbox. - Synology (chatgpt/seedbox/seedbox_scripts) : - Copie miroir des scripts en l’état d’OMV. - Base de travail pour HyperBackup (sauvegarde versionnée, externe à OMV). Important : - La synchronisation est STRICTEMENT UNIDIRECTIONNELLE : OMV (source) → Synology (cible). - Aucun mécanisme ne remonte des fichiers depuis le Synology vers OMV. 5. CONFIGURATION RSYNC DANS OMV ================================ Type de tâche : - Tâche Rsync locale (OMV → remotemount Synology). - Créée via l’interface d’administration OMV (pas de cron manuel). Paramètres principaux : - Source : Shared Folder "seedbox_scripts" → /srv/dev-disk-by-uuid-167c3d64-0b12-412d-9453-f941e78f8f6e/data/scripts/ - Destination : chemin cible sur le remotemount Synology (via Shared Folder ou chemin direct) : → /srv/remotemount/syno_remote_chatgpt/seedbox/seedbox_scripts/ Options Rsync retenues (IMPORTANT) : - Mode récursif : OUI - Supprimer les fichiers sur la destination (delete) : OUI - Mode archive : NON - Conserver les permissions : NON - Conserver le propriétaire : NON - Conserver le groupe : NON - Conserver les ACL/attributs étendus : NON - Conserver la date : NON (désactivé à cause des limitations du remotemount) Raisons de ces choix : - Le système de fichiers distant (montage Synology via remotemount) refuse certains chown/chmod/utime sur les répertoires. - Toute tentative de rsync de “forcer” les permissions ou les dates sur les dossiers entraîne des erreurs : - Operation not permitted (1) - code 23 : some files/attrs were not transferred - En désactivant la préservation des propriétaires, groupes, permissions et dates, rsync se contente de : - synchroniser le CONTENU des fichiers, - supprimer les fichiers obsolètes, - laisser le Synology gérer propriétaires/permissions à sa manière. Comportement final : - Le contenu de /data/scripts/ côté OMV est répliqué vers /seedbox/seedbox_scripts/ côté Synology. - Tous les fichiers présents sur la cible et absents sur la source sont supprimés. - Les erreurs rsync liées aux attributs (permissions, owner, timestamps) disparaissent. - Le code de retour rsync redevient “succès” pour la tâche OMV. 6. PLANIFICATION (CRON) ======================== Stratégie retenue : - Tâche Rsync planifiée via l’interface OMV. - Exécution à heure(s) définie(s) (ex. 01h00 chaque nuit). - Objectif : - réduire la fréquence excessive (toutes les 30 minutes) qui est inutile pour des scripts, - garantir au moins une synchronisation par jour vers le Synology, - rester compatible avec la fenêtre de sauvegarde HyperBackup. Contrainte HyperBackup : - HyperBackup tourne entre 10h et 11h. - Les tâches Rsync sont programmées OUTSIDE de cette fenêtre pour éviter les collisions. Possibilité d’usage manuel : - En plus du cron, l’utilisateur peut déclencher manuellement la tâche Rsync dans l’interface OMV après une grosse session de développement. - Cela joue un rôle équivalent à un "push" vers la copie de sauvegarde Synology. 7. FLUX COMPLET RÉSUMÉ ======================= 1) Développement : - Le développeur travaille depuis le laptop MX (Linux + KDE). - Accès au code via NFS : - OMV : /mnt/t500/data/scripts/ - Synology : /mnt/synology/chatgpt (lecture uniquement, pour contrôle si besoin). - Les modifications sont commitées et poussées sur GitHub si nécessaire. 2) Mise à jour de l’OMV : - Le code validé côté laptop est copié/synchronisé vers OMV (chemin data/scripts). - OMV représente ainsi l’état opérationnel le plus à jour. 3) Réplication automatique OMV → Synology : - La tâche Rsync OMV réplique /data/scripts/ vers /volume1/chatgpt/seedbox/seedbox_scripts/. - La destination est un miroir strict de la source : - nouveaux fichiers ajoutés, - fichiers modifiés mis à jour, - anciens fichiers supprimés (delete). 4) Sauvegarde HyperBackup : - HyperBackup intègre /volume1/chatgpt/seedbox/seedbox_scripts/ dans son plan de sauvegarde. - Le contenu des scripts Seedbox est ainsi sauvegardé dans l’écosystème Synology (versioning, externalisation éventuelle, etc.). 8. POINTS DE VIGILANCE ======================= - Ne pas inverser source et destination dans la tâche Rsync OMV : - La source doit toujours être seedbox_scripts (OMV /data/scripts). - La destination doit toujours être le remotemount Synology (seedbox_scripts sur /srv/remotemount/...). - Ne pas tenter de forcer la préservation des permissions, propriétaires, groupes ou dates côté Synology : - Le montage Synology (remotemount) ne l’autorise pas. - Cela génère des erreurs rsync (code 23) sans bénéfice réel. - La SoT reste OMV + GitHub : - Le Synology n’est qu’un miroir + support de sauvegarde, pas une source de vérité. - Vérifier périodiquement les logs de la tâche Rsync dans OMV : - En particulier après des évolutions de structure (nouveaux sous-dossiers, renommages majeurs). 9. ÉVOLUTIONS POSSIBLES ======================== - Ajouter une documentation complémentaire sur le workflow "Laptop MX → OMV" : - Standardiser la méthode pour mettre à jour /data/scripts depuis le laptop après un pull GitHub. - Éventuellement formaliser un script ou une check-list pour : - git pull sur le laptop, - tests, - copie vers OMV (data/scripts), - lancement manuel de la tâche Rsync OMV. - Documenter également l’arborescence des scripts Seedbox et leur rôle : - daily_qbittorrent_update_vX.Y_synomap.sh - scripts Autobrr et sous-dossiers - fichiers .log, .bak, etc. Fin du document.