SyncThing : tout synchroniser, partout
Ayant monté mon cloud personnel (à base de NAS Synology) je cherchais un moyen de synchroniser efficacement et facilement tous mes périphériques y compris Android. J’ai bien évidemment testé la solution CloudStation de Synology, à la fois serveur et client, mais à l’époque le client pour Linux en était encore à ses débuts et, dans mon cas, fonctionnait une fois sur deux. Je m’étais alors mis en recherche des diverses solutions accessibles depuis une base Linux et avait testé rSync, SFTP + script puis BitTorrentSync.
J’avais été séduit par le concept de ce dernier. Une interface, une synchronisation via le protocole BitTorrent et la possibilité de le mettre en œuvre très simplement. Cependant l’absence de publication du code source et la possibilité que ça passe par les serveurs de cette société m’avait un peu freinés. Je ne devais pas être le seul puisqu’une alternative libre et gratuite a rapidement vu le jour : Syncthing. De surcroît disponible via des dépôts Synology et Android. C’est aussi compatible OSX, Windows & BSD.
Clairement cet outil est génial, très simple d’installation et d’utilisation. Il me sert à synchroniser mes documents entre tous mes PC/smartphones mais aussi à rapatrier automatiquement sur mes NAS les téléchargements effectués via mes serveurs. C’est d’ailleurs ce dernier cas que je vais prendre en exemple dans ce tutoriel. Bien évidemment tout le contenu que je télécharge est libre de droit. Notamment certains logiciels/jeux Linux, c’est pourquoi vous verrez l’exemple du dossier /Linux par la suite.
Fonctionnement
J’ai un serveur distant avec le couple rTorrent/ruTorrent. Les téléchargements complétés sont automatiquement déplacés dans le dossier /home/aerya/torrents/Done/Sync
, /Sync contenant lui-même des sous-répertoires. J’aime bien quand c’est trié… Mais plutôt que de configurer SyncThing pour chaque sous-répertoire j’ai préféré tout regrouper dans /Done/Sync pour ne faire qu’une seule synchronisation globale.
En parallèle, chez moi, j’ai installé SyncThing sur un PC qui reste allumé H24 (qui me sert pour la TV via Kodi et quelques autres services aussi). Mais vous pouvez le mettre directement sur notre NAS, la configuration restant la même.
Une fois configuré et les 2 périphériques liés, SyncThing va scanner régulièrement la source (le serveur) et télécharger automatiquement tout ce qui ne l’a pas encore été sur les NAS. ST lie entre eux des périphériques via leurs IDs (ex. SUJRPLW-…-4BW2DU4) et, sur chacun d’eux, des dossiers, également via leurs IDs (ex. Sync, Linux, Documents, Photos…). C’est-à-dire que sur chaque périphérique que vous voulez synchroniser vous devez créer un partage avec la même ID.
Installation (Linux)
En USER, placez-vous dans votre /home
cd ~
Allez chercher le lien de DL de la version qu’il vous faut et téléchargez là sur votre machine
wget https://github.com/syncthing/syncthing/releases/download/v0.11.23/syncthing-linux-amd64-v0.11.23.tar.gz
Décompressez l’archive
tar xzvf syncthing*.tar.gz
Placez vous dans le dossier
cd syncthing*
Copiez les fichiers au bon endroit
sudo cp syncthing /usr/local/bin
Et retirez tout ce qui ne sert plus dans votre /home
cd ~
puis rm -rf syncthing*
Vous pouvez ensuite lancer SyncThing, en USER et non ROOT, afin de voir s’il fonctionne bien.
syncthing
Si c’est le cas vous avez l’interface sur http://votre_IP:8384
Le mieux est de lancer ST en screen afin de le laisser tourner tranquillement alors que vous quitterez votre terminal. En USER et non ROOT
screen -
S
Sync
puis syncthing
et quittez le screen avec “ctrl+a d”.
Attention à libérer les ports si vous avez mis en place des règles IPtables strictes. Port du GUI et port du protocole de synchronisation dans config.xml. Idem lorsque vous l’installez chez vous, sur NAS ou PC, vérifiez que les ports sont bien ouverts/redirigés selon la configuration de votre routeur/firewall/box FAI.
Configuration de SyncThing (nous verrons le partage ensuite)
La configuration, hors partages, est assez basique. Vous pouvez changer les ports directement dans config.xml ou bien passer par la WebUI et le menu Actions/Configuration
Partager un dossier
SyncThing lie entre eux des périphériques via leurs IDs (ex. SUJRPLW-…-4BW2DU4) et, sur chacun d’eux, des dossiers, également via leurs IDs (ex. Sync, Linux, Documents, Photos…). C’est-à-dire que sur chaque périphérique que vous ajoutez à ST vous devez créer un partage avec la même ID pour chaque dossier que vous voulez synchro sur l’un et l’autre des périphériques.
Vous pouvez lier des périphériques avant ou après avoir créé des partages de dossiers, peu importe l’ordre.
Dans cet exemple je veux partager le dossier /home/aerya/torrents/Done/Sync
de mon serveur distant avec le dossier /Sync sur mon NAS local. Comme vous le voyez le dossier /Sync contient à son tour plusieurs dossiers qui seront synchro dont /Linux.
Sur votre interface SyncThing vous pouvez retirer le partage par défaut puisque nous allons en créer un autre. Vous devez répéter cette étape sur chaque interface ST de chaque périphérique à synchroniser.
Ici, sur le serveur distant, cliquez sur Ajouter un répertoire et créez le partage pour le dossier.
Si vous suivez ce tutoriel (contrairement à ce screen…) vous ne verrez alors rien dans Partage avec des machines. On le voit plus tard.
Répertoire maître : il s’agit là d’indiquer à ST que ce dossier sera la source de la synchro. Je veux que tout ce qu’il contient soit envoyé mais ni remplacé ni effacé par un autre partage. Utile si vous partagez des fichiers destinés à être supprimés chez vous mais à laisser en seed sur votre serveur par exemple. En revanche dans le cas d’un partage de type cloud il est alors évident qu’il ne faut pas cocher cette case sinon vos documents locaux ne seront pas mis à jour sur votre cloud.
Une fois ce partager créé vous le voyer sur l’accueil de votre WebUI
Maintenant, sur le PC local (ou le NAS). Dans mon cas les NAS sont montés sur le PC. C’est-à-dire que j’y accède depuis le PC via /mnt/…
Mais si vous avez installé SyncThing sur votre NAS le chemin sera de ce type.

Lier des périphériques & dossiers
Il suffit de récupérer l’ID d’un des périphériques et de l’ajouter à l’autre. Le 1er va découvrir le second automatiquement.
Par exemple je récupère l’ID de SyncThing TV, donc chez moi, via Actions / Montrer l’ID
Et je vais l’entrer sur ST installé sur mon serveur via le bouton Ajouter un périphérique en bas à droite sur l’accueil. J’en profite pour lui indiquer de partager le dossier Sync.
Il ne vous reste qu’à patienter quelques instants et valider les demandes de partage des 2 côtés et vous pourrez alors apprécier de le regarder travailler :)
Par défaut le délai de scan, pour recherche de nouveau fichiers à synchroniser, est de 60 secondes. Vous pouvez le modifier sans dans le confi.xml soit via la WebUI, Actions / Avancé / Dossier “Sync” puis rescanIntervalS
Tous les éléments de configuration se trouvent dans leurs FAQs.