Outils pour utilisateurs

Outils du site


syncthing

Syncthing

Introduction

Cette documentation a été rédigée pour la mise en place de l'atelier Syncthing réalisé lors des OAVL 2024. Elle a pour objectif de présenter le logiciel Syncthing ainsi que sa prise en main.

Qu'est-ce que Syncthing ?

Syncthing est un logiciel de synchronisation de fichiers. Il synchronise les fichiers entre deux ou plusieurs appareils en temps réel, en P2P de manière privée et sécurisée. Syncthing permet de remplacer les services de synchronisation et cloud propriétaires par quelque chose d'ouvert, fiable et décentralisé.

Privé et sécurisé

  • Privé : Aucune de vos données n’est jamais stockée ailleurs que sur vos ordinateurs. Aucun serveur central ne pourrait être compromis, légalement ou illégalement.
  • Crypté : Toutes les communications sont sécurisées via TLS. Le cryptage utilisé inclut une confidentialité pour empêcher toute écoute indiscrète d’accéder à vos données.
  • Authentifié : Chaque appareil est identifié par un certificat cryptographique. Seuls les appareils que vous avez explicitement autorisés peuvent se connecter à vos autres appareils.

Ouvert

Facile à utiliser

  • Puissant : Synchronisez autant de dossiers que nécessaire avec différentes personnes ou simplement entre vos propres appareils.
  • Portable : Configurez et surveillez Syncthing via une interface accessible via votre navigateur. Fonctionne sur macOS, Windows, Linux, FreeBSD, Solaris, OpenBSD, Android et bien d'autres. Exécutez-le sur vos ordinateurs de bureau et synchronisez-les avec votre serveur pour la sauvegarde.
  • Simple : Syncthing n'a pas besoin d'adresses IP ni de configuration avancée : cela fonctionne simplement, sur LAN et sur Internet. Chaque machine est identifiée par un identifiant. Donnez votre identifiant à vos amis, partagez un dossier et UPnP fera l'affaire si vous ne souhaitez pas effectuer de transfert de port ou si vous ne savez pas comment faire.

Développé et soutenu par Kastelo

Kastelo est une société spécialisée dans l'architecture, le développement et l'audit de logiciels. Née à Malmö sur la côte sud de la Suède, Kastelo est aujourd’hui (en 2024) localisée à Stockholm en Suède (Kastelo AB) et à Middletown dans le Delaware aux USA (Kastelo USA, Inc.)

Kastelo fournit un support commercial pour Syncthing destiné aux entreprises souhaitant déployer Syncthing au sein de leur architecture réseau.

Installer Syncthing

Le téléchargement de Syncthing se fait directement depuis la page de téléchargement du site qui propose plusieurs plateformes (Linux, OpenBSD, Windows, macOS, FreeBSD, OpenBSD, Android…).

Sous Linux

Debian/Ubuntu

Pour les distributions basées sur Debian/Ubuntu Syncthing propose directement un dépôt.

Ajouter la clé du dépôt :

sudo mkdir -p /etc/apt/keyrings
sudo curl -L -o /etc/apt/keyrings/syncthing-archive-keyring.gpg https://syncthing.net/release-key.gpg

Ajouter le dépôt “stable” :

echo "deb [signed-by=/etc/apt/keyrings/syncthing-archive-keyring.gpg] https://apt.syncthing.net/ syncthing stable" | sudo tee /etc/apt/sources.list.d/syncthing.list

Mettre à jour et installer Syncthing :

sudo apt-get update
sudo apt-get install syncthing

Autres systèmes d'exploitation Linux

Pour les autres systèmes d'exploitation Linux Syncthing se trouve dans une archive *.tar.gz, pour la décompresser et lancer le service :

tar –xvf syncthing-linux-amd64-v*.tar.gz
cd
syncthing-linux-amd64-v*/
chmod +x syncthing
./syncthing

Cela lancera Syncthing sous votre utilisateur courant (il peut être lancé en root, ou pour plus de sécurité, avec un utilisateur dédié à Syncthing).

Sous Windows

Syncthing se présente comme un exécutable (dans un fichier *.zip) qui lancera le service et ouvrira son interface Web (http://127.0.0.1:8384 par défaut). Une fenêtre DOS est ouverte, c’est la condition pour utiliser Syncthing sous Windows.

Sous Android

L'application Android Syncthing est disponible sur F-Droid ou Google Play.

Configurer Syncthing

Normalement, lors du lancement de Syncthing l’interface web s’ouvre automatiquement avec votre navigateur par défaut. Si ce n'est pas le cas, après le lancement de Syncthing, rendez vous sur l'url : http://127.0.0.1:8384 (le port 8384 étant celui par défaut)

Si l'interface est en anglais, vous pouvez changer la langue depuis le menu. Pour configurer Syncthing il faut aller dans le menu “Actions” > “Configuration”.

La fenêtre suivante s’ouvre et vous permet de modifier quelques options telles que le nom du périphérique, l’adresse de son interface Web, la mise en place de l’HTTPS et d’une authentification (plus que nécessaire si on y accède depuis l’extérieur).

La première chose à faire étant de donner un “Nom convivial local de l'appareil”. Par exemple : “PC Atelier Syncthing OAVL 2024”.

Les paramètres permettent de changer aussi l’adresse de l’interface web (à remplacer par 0.0.0.0 :8080 pour y accéder depuis l’extérieur), forcer l’utilisation d’HTTPS et plusieurs autres options à configurer en fonction de vos besoins.

Identifiant de l'appareil

Lors du premier lancement de Syncthing, un identifiant unique pour votre appareil est créer. Vous pouvez l'afficher depuis le menu “Actions” > “Afficher mon ID”

C'est cet identifiant qu'il faudra échanger avec les autres appareils que vous souhaitez “lier” à votre appareil.

Ajouter un nouvel appareil

Avant de pouvoir partager un dossier entre deux appareils, il faut les “lier”. Pour cela, cliquez sur “+ Ajouter un appareil” et coller l'identifiant de l'appareil que vous souhaitez “lier”.

Les paramètres par défauts permettent d’utiliser une identification du serveur dynamique (contrairement au fait de rentrer une adresse IP et un port de synchronisation).

Dans un simple échange entre deux appareils, on peut laisser en dynamique, mais pour avoir quelque chose de plus fiable et sécurisé, il est préférable de rentrer les paramètres « statiques ».

Si l'appareil n'est pas de confiance (ex. serveur hébergé sur une infra que l'on ne maitrise pas) vous pouvez “retirer la confiance” de l'appareil pour chiffrer tous les partages avec cet appareil. Voir : https://docs.syncthing.net/users/untrusted.html.

Une fois configuré, l'appareil ajouté va recevoir une notification (dans l'interface Syncthing) pour accepter ou non cette “liaison”.

Lorsque la liaison est acceptée, le nouvel appareil apparait dans la liste Autres appareils mais son statut est normalement “Non utilisé” car aucun partage n'a encore été créé entre les deux appareils.

Ajouter un partage

une fois que deux appareils sont liés, on peut maintenant partager des dossiers entre les deux appareils. Pour créer un nouveau partage Cliquez sur “+ Ajouter un partage”

Plusieurs paramètres de configuration sont disponibles :

Général

  • Nom du partage : C'est le nom local du partage qui sera affiché dans l'interface Syncthing. Vous pouvez mettre ce que vous voulez. Son usage est simplement mnémotechnique et apparaîtra uniquement sur votre appareil (dans l'interface Syncthing). Vous pourrez le modifier à tout moment.
  • ID du partage : C'est l'identifiant unique du partage. Il ne sera pas modifiable une fois le partage créé. Cet identifiant sera visible par tous les appareils qui auront accepté le partage.
  • Chemin racine du partage : C'est chemin du dossier que vous souhaitez partager.

Partages

Dans l'onglet “Partages” cochez les appareils avec lesquels vous souhaitez partager le dossier.

Préservation des fichiers

Syncthing prend en charge l'archivage de l'ancienne version d'un fichier lorsqu'il est supprimé ou remplacé par une version plus récente. C'est ce qu'on appelle le « versioning de fichiers ». Vous pouvez définir le type d'archivage dans cette onglet.

Exclusions

Des masques d'exclusions (ou d'inclusions) sont possible pour éviter de synchroniser certains fichiers/dossiers (par exemple, pour ne pas synchroniser les dossiers mac .DS_Store.

Un dépôt GitHub recense les dossiers/fichiers les plus commun à ne pas synchroniser : https://github.com/M-Mono/Syncthing-Ignore-Patterns.

Avancé

L'onglet “Avancé” pour permet notamment de choisir le “Type de partage” :

  • Envoi & réception : Il s'agit du mode standard. Avec ce paramètre, un partage enverra et recevra des modifications depuis les appareils distants.
  • Envoi seulement : En mode envoi uniquement, toutes les modifications provenant des autres appareils sont ignorées. Les notifications de modifications sont toujours reçues, le dossier peut donc devenir « désynchronisé », mais aucune modification ne sera appliquée.
  • Réception seulement : Dans ce mode, toutes les modifications des autres appareils sont appliquées et redistribuées à d'autres appareils, comme c'est le cas dans le mode d'envoi-réception par défaut. Cependant, les modifications locales ne sont pas envoyées aux autres appareils. Ce mode est utile pour les miroirs de réplication, les destinations de sauvegarde ou d'autres cas où aucune modification locale n'est attendue ou autorisée.

Une fois le partage ajouté, les appareils l'appareil concerné vont recevoir une notification (dans l'interface syncthing) pour accepter ou non ce partage.

Lorsque le partage est accepté, la synchronisation se lance automatiquement entre les deux partages.

Exemples d'utilisations et cas d'usages

Partager des fichiers

Le cas d'usage le plus fréquent étant d'utiliser Syncthing pour simplement partager un dossier et son contenu entre deux ou plusieurs appareils.

Synchroniser les photos de son téléphone Android avec un ordinateur

L'application Android Syncthing disponible sur F-Droid ou Google Play permet de partager n'importe quel dossier de votre téléphone (dont notamment le dossier DCIM ou sont stockées les photos/vidéos) avec un autre appareil.

En installant aussi Syncthing sur votre ordinateur vous pouvez donc facilement synchroniser le dossier des photos/vidéos de votre téléphone avec un dossier de votre ordinateur.

Activer la synchronisation instantanée avec un serveur toujours connecté

Le fonctionnement de Syncthing étant par défaut décentralisé, dans le cas où deux appareils liés avec un partage commun ne sont pas connectés au même moment, aucune synchronisation n'est possible.

Si vous avez besoin d'une synchronisation toujours disponible, même si l'un des deux appareils est déconnecté, vous pouvez installer Syncthing sur un 3ème appareil (par exemple sur un serveur dédié ou virtualisé) qui lui restera toujours allumé et connecté au réseau (local ou Internet). Il fera ainsi office de serveur de synchronisation, toujours disponible, sans vous soucier d'avoir les appareils liés connectés au même moment.

Synchroniser un site Internet avec un partage Syncthing

Plutôt que d'utiliser une connexion FTP/SSH pour mettre à jour un site Internet, vous pouvez installer Syncthing sur votre serveur web et partager le dossier du site Internet concerné avec un ou plusieurs appareils.

Pour mettre à jour le site Internet, il suffira simplement aux appareils liés avec le serveur web de modifier directement le contenu du dossier partagé. Le dossier sera alors synchronisé automatiquement avec celui du site Internet sur le serveur web.

Ajouter un dossier partagé avec Syncthing dans Nextcloud

Syncthing et Nextcloud peuvent très bien cohabiter sur un même serveur. Pour ajouter un dossier Syncthing dans Nextcloud, vous pouvez utiliser la fonctionnalité “Stockage externe” de Nextcloud. Ainsi un dossier synchronisé avec Syncthing pourra être consultable facilement par un utilisateur qui n'a pas installé Syncthing ni Nextcloud sur son appareil grâce au système de partage de Nextcloud.

Utiliser l'API Syncthing pour sauvegarder et synchroniser un partage périodiquement

Le fonctionnement par défaut de Syncthing n'est pas recommandé pour faire de la sauvegarde. Syncthing synchronisant instantanément les modifications d'un partage, il suffit qu'un des appareils lié par un partage Syncthing supprime le contenu du dossier partagé (virus, CryptoLocker…) pour que cette modification soit instantanément répercutée sur tous les autres appareils liés au dossier partagé.

Pour éviter cette synchronisation automatique, une astuce est d'utiliser l'API REST Syncthing pour activer périodiquement la synchronisation (par exemple avec CRON) d'un partage. Ainsi, vous pouvez par exemple, configurer un mini serveur de sauvegarde qui synchronise les dossiers partagés avec Syncthing uniquement une fois par semaine.

Pour aller plus loin

Lancer automatiquement Syncthing au démarrage de votre appareil

Par défaut Syncthing ne s’exécute pas automatiquement. Pour activer la synchronisation il faut démarrer Syncthing. Vous pouvez, si vous le souhaitez, activer l’exécution automatique de Syncthing au démarrage de de votre appareil.

Par exemple sous Linux, vous pouvez utiliser systemd avec la commande suivante :

sudo systemctl enable syncthing@votre_login_linux.service

Sous Ubuntu (Gnome), et si vous avez installé SyncThing à partir du dépôt APT, il suffit de copier le fichier de démarrage comme ceci :

cp /usr/share/applications/synthing-start.desktop /home/votreuser/.config/autostart

Pour les autres systèmes vous pouvez consulter la documentation : https://docs.syncthing.net/users/autostart.html

Indicateurs pour la barre d'état

Par défaut, Syncthing est prévu pour fonctionner sans interface graphique et ne propose pas d'indicateur dans la barre d'état de votre système d'exploitation.

Plusieurs logiciels/extensions existe pour palier ce manque :

Les relais

La synchronisation peut faire rebondir le trafic via un relais lorsqu'il n'est pas possible d'établir une connexion directe entre deux appareils. Il existe un certain nombre de relais publics disponibles à cet effet. L’avantage est qu’il rend possible une connexion là où elle ne le serait pas autrement (firewall, blocage IP…). L'inconvénient est que le taux de transfert est bien inférieur à ce que permettrait une connexion directe.

Le relais est activé par défaut mais ne sera utilisé que si deux appareils ne peuvent pas communiquer directement entre eux.

Lorsqu'il est connecté via un relais, Syncthing réessayera périodiquement une connexion directe et, si une est établie, cessera de communiquer via le relais.

Syncthing s'appuie sur un réseau de serveurs relais communautaire. N'importe qui peut exécuter un serveur de relais, celui-ci rejoindra automatiquement le pool de relais et sera disponible pour les utilisateurs de Syncthing. La liste actuelle des relais peut être trouvée sur https://relays.syncthing.net/.

syncthing.txt · Dernière modification : de Labomedia