Syncthing est un logiciel open source. Il permet de synchroniser les répertoires de plusieurs machines à travers Internet au moyen d'une connexion P2P sécurisée. Il fonctionne sur diverses plateformes en plus de Linux, dont Windows, OS-X, Android… Ce qui permet de créer son propre cloud sans passer par des serveurs hébergés par des tiers !
Depuis Ubuntu 18.04, Syncthing est dans les dépôts officiels. Il suffit donc d'installer le paquet syncthing.
Pour les versions plus anciennes ou pour bénéficier des mises à jours fréquentes de Syncthing, il faut utiliser le PPA:
curl -s https://syncthing.net/release-key.txt | sudo apt-key add -
echo "deb https://apt.syncthing.net/ syncthing release" | sudo tee /etc/apt/sources.list.d/syncthing.list
Depuis Ubuntu 18.04, les fichiers de config pour lancer Syncthing en tant que service Systemd sont inclus dans les paquets. Pour que le service soit lancé automatiquement pour l'utilisateur Toto, il suffit de taper dans une console :
sudo systemctl enable syncthing@toto.service sudo systemctl start syncthing@toto.service
Auparavant, il fallait créer les fichiers de configuration manuellement.
Pour cela, commençons par créer le fichier syncthing@.service dans /etc/systemd/system/
Et copiez y les infos suivantes :
[Unit] Description=Syncthing - Open Source Continuous File Synchronization for %I Documentation=man:syncthing(1) After=network.target Wants=syncthing-inotify@.service [Service] User=%i ExecStart=/usr/bin/syncthing -no-browser -no-restart -logflags=0 Restart=on-failure SuccessExitStatus=3 4 RestartForceExitStatus=3 4 UMask=0002 [Install] WantedBy=multi-user.target
Reste à activer le service pour le ou les utilisateurs qui souhaitent utiliser Syncthing et démarrer le service (remplacer Toto par le nom d'utilisateur) :
systemctl enable syncthing@Toto.service systemctl start syncthing@Toto.service
Si vous souhaitez contrôler que tout est dans l'ordre :
systemctl status syncthing@Toto.service
Ou consulter les logs :
journalctl -e -u syncthing@Toto.service
Si vous avez correctement configuré le service Syncthing, vous devez y accéder dans votre navigateur web sur le port par défaut 8384 en entrant l'adresse localhost:8384. Sinon, lancez Syncthing en tapant la commande suivante dans un terminal :
syncthing
Vous obtenez alors une fenêtre proche de celle ci :
Sur la partie gauche de la fenêtre intitulée partage, vous trouverez la liste des répertoires partagés et leur statut (actuellement aucun). Sur la partie de droite, vous trouverez les informations relative à votre cluster de machines synchronisées (actuellement, il n'y a que la machine locale intitulée Zbox)
Syncthing ayant pour but de synchroniser des répertoires entre plusieurs machines, il vous faut au moins une autre machine sur laquelle est installée Syncthing.
Supposons que vous souhaitiez synchroniser des répertoires entre deux machines (ou appareils selon la terminologie de Syncthing) nommées A et B. A doit connaître l’existence de B et inversement. Pour cela, Syncthing identifie les machines à l'aide d'un identifiant unique crée lors de la première utilisation sur une nouvelle machine. Pour connaître l'identifiant de la machine A, il faut aller sur la page Afficher mon ID du menu Actions. On obtient alors la page suivante :
Copiez l’identifiant apparu et faites-le parvenir par un moyen ou un autre à la machine B (par e-mail par exemple)
Aller alors sur votre machine B et cliquez sur le bouton en bas à droite + Ajouter un appareil distant. Dans la fenêtre qui s'affiche, collez l'identifiant de la machine A, donnez lui un nom intelligible et enregistrez.
Après un petit temps d'attente, le statut de la machine A apparaissant dans le GUI de la machine B devrait passer de Déconnecté à non utilisé
Procédez de même de la machine B sur la machine A pour que les 2 machines se connaissent.
Il faut désormais indiquer à Syncthing les répertoires qui doivent être synchronisés. Pour cela, il faut cliquer sur le bouton + Ajouter un partage dans la zone de gauche du GUI et renseigner les diverses informations de la page.
Procédez de même sur vos autres machines ou attendez de recevoir et acceptez l'invitation au partage de la première machine configurée sur les autres.
La synchronisation de vos répertoires entre vos diverses machines devrait commencer.
Si vous souhaitez accéder à la console d'administration de Syncthing depuis une autre machine, vous pouvez utiliser 2 méthodes :
Si vous n'avez pas modifié le port standard de syncthing de votre serveur 192.168.0.20, vous vous y connectez en local sur le port 8384. Sur la machine client depuis laquelle vous souhaitez vous connecter à distance, nous allons rediriger le GUI sur le port 9090 :
ssh -L 9090:127.0.0.1:8384 Toto@192.168.0.20
Entrez maintenant l'adresse localhost:9090 dans votre navigateur préféré et vous vous retrouverez sur la console d'administration de votre serveur 192.168.0.20
Dans la page Configuration , il suffit de remplacer l'adresse du GUI 127.0.0.1:8384 par 0.0.0.0:8384
Pour supprimer cette application, il suffit de supprimer son paquet. Selon la méthode choisie, la configuration globale de l'application est conservée ou supprimée. Les journaux du système, et les fichiers de préférence des utilisateurs dans leurs dossiers personnels sont toujours conservés.
—- Contributeurs principaux : zarmu.