tuto sync in nas synology
  • 12 mars 2026
  • ComputaSYS
  • 0


Déployer sa propre solution de synchronisation et de collaboration documentaire permet de garder la maîtrise totale de ses données. Si vous disposez d’un NAS Synology, plusieurs solutions s’offrent à vous, dont l’utilisation de Synology Drive (paquet officiel) ou de la solution open source Sync-in. Vous l’aurez compris, cette seconde option fait l’objet de ce tutoriel.

Cette solution répond directement aux besoins des particuliers et des entreprises souhaitant centraliser leurs fichiers tout en permettant l’édition simultanée de documents via une suite bureautique intégrée (OnlyOffice ou Collabora Online, selon vos préférences).

Dans ce tutoriel, nous allons voir comment mettre en place la solution Sync-in sur un NAS Synology. L’utilisation de conteneurs via Docker (Container Manager sur les versions récentes de DSM) permet d’isoler les services et de simplifier leur déploiement. Nous aborderons la création de l’arborescence, la préparation des fichiers de configuration, le déploiement de la pile (stack) via Docker Compose, ainsi que la configuration du proxy inversé (Reverse Proxy) intégré à DSM pour exposer les services en HTTPS.

Si vous désirez découvrir les fonctionnalités principales de Sync-in, je vous invite à regarder cette vidéo (ou à lire l’article de présentation).

Configuration du reverse proxy de DSM

La première étape consiste à configurer le reverse proxy de DSM. En effet, c’est utile pour que votre installation de Sync-in soit accessible depuis l’extérieur de manière sécurisée (en HTTPS). Nous allons utiliser le proxy inversé de Synology. En complément des explications ci-dessous, je vous recommande la lecture de ces articles pour la déclaration d’un nom de domaine *.synology.me et l’obtention d’un certificat TLS :

Rendez-vous dans le Panneau de configuration > Portail de connexion > Avancé et cliquez sur Proxy inversé. Nous devons créer deux règles distinctes : une pour l’interface principale de Sync-in et une pour OnlyOffice.

Règle pour l’interface web Sync-in

Complétez le formulaire de la façon suivante. Cette configuration implique que Sync-in sera joignable par les clients à l’adresse suivante : https://drive.xyz.synology.me.

1 – Cliquez sur Créer.

2 – Nom : sync-in

3 – Source :

Protocole : HTTPS

Nom d’hôte : drive.xyz.synology.me

Port : 443

4 – Destination :

Protocole : HTTP

Nom d’hôte : localhost

Port : 6060

5 – Dans l’onglet En-tête personnalisé, créez, via le menu déroulant, les headers WebSocket. Sync-in en a besoin pour son bon fonctionnement.

Règle pour le serveur OnlyOffice

Complétez le formulaire de la façon suivante. Cette configuration implique que OnlyOffice sera joignable par les clients à l’adresse suivante : https://onlyoffice.xyz.synology.me.

1 – Cliquez sur Créer.

2 – Nom : onlyoffice

3 – Source :

Protocole : HTTPS

Nom d’hôte : onlyoffice.xyz.synology.me

Port : 443

4 – Destination :

Protocole : HTTP

Nom d’hôte : localhost

Port : 6161

Dans l’onglet En-tête personnalisé, créez, via le menu déroulant, les headers WebSocket. OnlyOffice requiert les WebSockets pour synchroniser la frappe entre plusieurs utilisateurs en temps réel.

Préparation de l’arborescence sur le NAS

La seconde étape consiste à préparer l’espace de stockage qui accueillera les données persistantes et les fichiers de configuration de notre application. Cette séparation entre le conteneur et les données garantit que vos fichiers ne seront pas supprimés lors d’une mise à jour de l’image Docker. Un point essentiel dans le contexte d’une application destinée à accueillir vos fichiers personnels.

Connectez-vous à l’interface de votre NAS Synology et ouvrez l’application File Station. Rendez-vous dans le dossier partagé dédié aux conteneurs, à savoir docker.

Au sein de ce dossier racine, créez l’arborescence suivante :

Créez un dossier principal nommé sync-in.

À l’intérieur de ce dossier sync-in, créez les trois sous-dossiers suivants :

data : qui contiendra les fichiers synchronisés par les utilisateurs.

desktop_releases : qui stockera les clients lourds (applications de bureau) pour le déploiement.

mariadb_data : qui hébergera les fichiers bruts de la base de données.

Cette structure est nécessaire pour que les volumes définis dans notre fichier Docker Compose puissent se lier (bind mount) au système de fichiers du NAS.

Fichier de configuration environment.yaml

Sync-in requiert un fichier de configuration externe au format YAML pour définir plusieurs paramètres, dont les clés de chiffrement, les paramètres de connexion à l’instance MariaDB et la liaison avec le serveur OnlyOffice (ou Collabora Online, selon votre préférence).

À l’aide d’un éditeur de texte, créez un fichier nommé environment.yaml à la racine de votre dossier docker/sync-in/ et insérez-y le contenu suivant :

mysql:
url: mysql://root:MotDePasseMariaDB@mariadb:3306/sync_in
auth:
encryptionKey: secret-1
token:
access:
secret: secret-2
refresh:
secret: secret-3
applications:
files:
dataPath: /app/data
collabora:
enabled: false
onlyoffice:
enabled: true
secret: secret-4
externalServer: https://onlyoffice.xyz.synology.me

Dans ce fichier, vous devez impérativement ajuster plusieurs valeurs. En effet, il y a des valeurs uniques à générer pour les différentes clés. Vous pouvez utiliser cet outil de la suite IT-Tools pour générer des jetons de 64 caractères.

Vous devez :

Spécifier un mot de passe pour la connexion MariaDB, à la place de MotDePasseMariaDB.

Indiquer une valeur unique à la place des valeurs secret-1 à secret-4.

Définir la directive enabled: true sous onlyoffice pour activer l’intégration d’OnlyOffice.

Définir l’adresse externalServer : il s’agit du nom de domaine public (et éventuellement du port) par lesquels le client web accédera à l’éditeur de documents en ligne.

Configuration du fichier Docker Compose de Sync-in

Maintenant que l’arborescence et le fichier de configuration sont prêts, nous allons définir la “stack” Docker. Elle s’appuie sur quatre conteneurs : Sync-in (cœur de l’application), la distribution des clients de bureau Sync-in, MariaDB, OnlyOffice.

Créez un fichier docker-compose.yml (ou utilisez l’interface de création de projet de Container Manager). Veillez à bien cibler le dossier /docker/sync-in comme racine de ce projet.

Intégrez le code suivant :

name: sync-in
services:
sync_in:
image: syncin/server:2
container_name: sync-in
restart: always
environment:
– INIT_ADMIN=true
– INIT_ADMIN_PASSWORD
– INIT_ADMIN_LOGIN
– PUID=1026
– PGID=100
ports:
– “6060:8080”
volumes:
– /volume1/docker/sync-in/environment.yaml:/app/environment/environment.yaml
– /volume1/docker/sync-in/data:/app/data:rw
– /volume1/docker/sync-in/desktop_releases:/app/static/releases:ro
depends_on:
– mariadb
logging:
driver: json-file
options:
max-size: “25m”
max-file: “5”
networks:
– sync_in_network

mariadb:
image: mariadb:11
container_name: mariadb
restart: always
command: –innodb_ft_cache_size=16000000 –max-allowed-packet=1G
environment:
MYSQL_ROOT_PASSWORD: MotDePasseMariaDB
MYSQL_DATABASE: sync_in
volumes:
– /volume1/docker/sync-in/mariadb_data:/var/lib/mysql
networks:
– sync_in_network

onlyoffice:
image: onlyoffice/documentserver:9.2
container_name: onlyoffice
restart: always
environment:
– JWT_SECRET=secret-4
– JWT_IN_BODY=true
– USE_UNAUTHORIZED_STORAGE=true
logging:
driver: json-file
options:
max-size: “25m”
max-file: “5”
ports:
– “6161:80”
networks:
– sync_in_network

sync_in_desktop_releases:
profiles: [ “releases” ]
image: syncin/desktop-releases:2
container_name: sync-in-desktop-releases
user: “1026:100”
volumes:
– /volume1/docker/sync-in/desktop_releases:/releases:ro
restart: “no”
entrypoint: [ “/bin/true” ]
networks:
– sync_in_network

networks:
sync_in_network:
driver: bridge

Ce fichier orchestre quatre services distincts qui communiquent via un réseau interne privé nommé sync_in_network. Le PUID 1026 et le PGID 100 permettent au conteneur principal d’écrire les données avec les droits de l’utilisateur standard du NAS (le groupe 100 correspondant au groupe users par défaut sous DSM).

J’attire également votre attention sur d’autres points importants :

Le service Sync-in sera exposé sur le port 6060 du NAS (“6060:8080”), donc ce sera la cible pour les requêtes du reverse proxy.

Le service OnlyOffice sera exposé sur le port 6161 du NAS (“6161:80”), donc ce sera la cible pour les requêtes du reverse proxy.

La directive INIT_ADMIN=true permet de créer le compte par défaut, à savoir l’identifiant sync-in associé au mot de passe sync-in, pour la première connexion.

Le mot de passe MariaDB doit être indiqué, en reprenant la même valeur que dans le fichier environment.yaml.

Le jeton OnlyOffice doit être indiqué (secret-4), en reprenant la même valeur que dans le fichier environment.yaml.

Poursuivez jusqu’à la fin et lancez la construction du projet.

Si besoin de précisions supplémentaires sur les options, consultez la documentation :

Première connexion à Sync-in

Depuis votre navigateur, accédez à l’interface de Sync-in en précisant le nom de domaine indiqué au niveau du reverse proxy DSM. Vous devriez tomber sur la page de connexion. Connectez-vous avec le couple d’identifiants sync-in / sync-in, que je vous invite à personnaliser dans la foulée.

Remarque : le premier lancement peut être long, de l’ordre de 10 minutes. Donc en cas de difficulté, patientez un instant et tentez d’accéder à l’interface de Sync-in.

Voilà, vous pouvez commencer à profiter de votre instance Sync-in !

Si vous avez des erreurs ou des difficultés à accéder à l’interface de Sync-in, je vous encourage à consulter les journaux en passant par la ligne de commande.

sudo docker compose logs -f

Connecter un répertoire existant

Si vous disposez d’un répertoire existant sur votre NAS et que vous souhaitez l’associer à votre instance Sync-in, c’est possible. En réalité, vous avez deux choix :

Transférer les données de ce répertoire vers Sync-in, et ce dernier va organiser les données dans son stockage local,

Associer ce répertoire existant comme un emplacement externe (ce qui permet de reprendre l’existant)

Vous devez modifier le fichier docker-compose.yml de la stack Sync-in. L’exemple ci-dessous permet de mapper le répertoire personnel de l’utilisateur florian vers Sync-in.

volumes:
– /volume1/docker/sync-in/environment.yaml:/app/environment/environment.yaml
– /volume1/docker/sync-in/data:/app/data:rw
– /volume1/docker/sync-in/desktop_releases:/app/static/releases:ro
– /volume1/homes/florian/:/home/florian/

Quand c’est fait, relancez les conteneurs.

Depuis l’interface de Sync-in, créez un nouvel espace :

Complétez le premier onglet, puis basculez sur l’onglet “Fichiers” afin d’ajouter un emplacement externe. Nommez cet emplacement, et surtout, indiquez le chemin associé. Il faut donc mettre le chemin vers le répertoire dans lequel a été mappé le dossier du NAS (valeur de droite dans l’instruction volume).

Ici, ce sera donc : /home/florian/.

L’emplacement apparaît bien. Pensez à associer des permissions via les boutons situés sur la droite et gérez les accès via l’onglet “Membres”.

Validez. Voilà, vous pouvez explorer les données de votre NAS par l’intermédiaire de Sync-in. Si vous disposez des autorisations nécessaires, vous pouvez aussi ajouter des fichiers et modifier les fichiers existants.

Il ne vous reste plus qu’à installer le client de synchronisation sur votre ordinateur pour aller encore plus loin.

Conclusion

L’installation de Sync-in couplée à OnlyOffice (et/ou à la Collabora Online) sur un environnement NAS Synology permet de disposer d’une solution complète pour le partage de données et le travail collaboratif. L’intérêt étant d’utiliser une solution open source sans être liée à Synology : demain vous pouvez décider de migrer votre instance et ses données sur une autre plateforme sans difficulté.

Ingénieur système et réseau, cofondateur d’IT-Connect et Microsoft MVP “Cloud and Datacenter Management”. Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.



Source link

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *