Comment installer Syncthing sur Ubuntu 20.04

Syncthing est un outil open-source utilisé pour synchroniser des fichiers entre deux ou plusieurs ordinateurs sur un réseau. Il utilise une architecture peer-to-peer et échange tes données directement entre tes appareils. Toutes les données transmises entre plusieurs appareils sont cryptées avec TLS. Chaque fois que tu crées, modifies ou supprimes des données sur une machine Syncthing, elles sont automatiquement répliquées sur d’autres serveurs. Il peut être installé dans tous les principaux systèmes d’exploitation, notamment Linux, Windows, Mac OS X, etc.

Dans ce guide, nous allons te montrer comment installer et configurer le serveur Syncthing sur Ubuntu 20.04.

Conditions préalables

  • Deux serveurs fonctionnant sous Ubuntu 20.04.
  • Un nom de domaine valide pointé avec l’IP de ton serveur.
  • Un mot de passe root est configuré sur les deux serveurs.

Démarrage

Tout d’abord, mets les paquets système à la version mise à jour en exécutant la commande suivante :

apt-get update -y

Une fois que tous les paquets sont mis à jour, tu peux passer à l’étape suivante.

Installe le serveur Syncthing sur les deux serveurs

Par défaut, le paquet Syncthing n’est pas inclus dans le dépôt par défaut d’Ubuntu 20.04. Tu devras donc ajouter le dépôt de Syncthing à l’APT.

Tout d’abord, installe toutes les dépendances requises sur les deux serveurs avec la commande suivante :

apt-get install gnupg2 curl apt-transport-https -y

Ensuite, télécharge et ajoute la release key avec la commande suivante :

curl -s https://syncthing.net/release-key.txt | apt-key add -

Ensuite, ajoute le référentiel Syncthing à APT avec la commande suivante :

echo "deb https://apt.syncthing.net/ syncthing release" > /etc/apt/sources.list.d/syncthing.list

Ensuite, mets à jour le référentiel et installe le serveur Syncthing avec la commande suivante :

apt-get update -y
apt-get install syncthing -y

Une fois l’installation terminée, vérifie la version de Syncthing avec la commande suivante :

syncthing --version

Tu devrais obtenir la sortie suivante :

syncthing v1.18.0 "Fermium Flea" (go1.16.5 linux-amd64) [email protected] 2021-06-21 20:53:50 UTC [noupgrade]

À ce stade, Syncthing est installé sur les deux serveurs. Tu peux maintenant passer à l’étape suivante.

Crée un fichier d’unité Systemd sur les deux serveurs

Ensuite, tu devras créer un fichier d’unité systemd pour gérer le service Syncthing. Tu peux le créer sur les deux serveurs avec la commande suivante :

nano /etc/systemd/system/[email protected]

Ajoute les lignes suivantes :

[Unit]
Description=Syncthing - Open Source Continuous File Synchronization for %I
Documentation=man:syncthing(1)
After=network.target

[Service]
User=%i
ExecStart=/usr/bin/syncthing -no-browser -gui-address="0.0.0.0:8384" -no-restart -logflags=0
Restart=on-failure
SuccessExitStatus=3 4
RestartForceExitStatus=3 4

[Install]
WantedBy=multi-user.target

Enregistre et ferme le fichier lorsque tu as terminé. Ensuite, recharge le démon systemd pour appliquer la configuration :

systemctl daemon-reload

Ensuite, démarre le service Syncthing avec la commande suivante :

systemctl start [email protected]

Pour vérifier l’état du service Syncthing, exécute la commande suivante :

systemctl status [email protected]

Tu devrais voir la sortie suivante :

? [email protected] - Syncthing - Open Source Continuous File Synchronization for root
     Loaded: loaded (/etc/systemd/system/[email protected]; disabled; vendor preset: enabled)
     Active: active (running) since Fri 2021-07-09 04:40:12 UTC; 5s ago
       Docs: man:syncthing(1)
   Main PID: 2878 (syncthing)
      Tasks: 14 (limit: 2353)
     Memory: 44.2M
     CGroup: /system.slice/system-syncthing.slice/[email protected]
             ??2878 /usr/bin/syncthing -no-browser -gui-address=0.0.0.0:8384 -no-restart -logflags=0
             ??2889 /usr/bin/syncthing -no-browser -gui-address=0.0.0.0:8384 -no-restart -logflags=0

Jul 09 04:40:14 node1 syncthing[2878]: [WPOF6] INFO: QUIC listener ([::]:22000) starting
Jul 09 04:40:14 node1 syncthing[2878]: [WPOF6] INFO: Loading HTTPS certificate: open /root/.config/syncthing/https-cert.pem: no such file or d>
Jul 09 04:40:14 node1 syncthing[2878]: [WPOF6] INFO: Creating new HTTPS certificate
Jul 09 04:40:14 node1 syncthing[2878]: [WPOF6] INFO: Completed initial scan of sendreceive folder "Default Folder" (default)
Jul 09 04:40:14 node1 syncthing[2878]: [WPOF6] INFO: GUI and API listening on [::]:8384
Jul 09 04:40:14 node1 syncthing[2878]: [WPOF6] INFO: Access the GUI via the following URL: http://127.0.0.1:8384/
Jul 09 04:40:14 node1 syncthing[2878]: [WPOF6] INFO: My name is "node1"
Jul 09 04:40:14 node1 syncthing[2878]: [WPOF6] WARNING: Syncthing should not run as a privileged or system user. Please consider using a norma>
Jul 09 04:40:14 node1 syncthing[2878]: [WPOF6] INFO: quic://0.0.0.0:22000 detected NAT type: Not behind a NAT
Jul 09 04:40:14 node1 syncthing[2878]: [WPOF6] INFO: quic://0.0.0.0:22000 resolved external address quic://45.58.35.6:22000 (via stun.syncthin>

À ce stade, le service Syncthing est démarré et écoute sur le port 8384. Tu peux le vérifier avec la commande suivante :

ss -antpl | grep 8384

Tu devrais voir le résultat suivant :

LISTEN    0         4096                     *:8384                   *:*        users:(("syncthing",pid=2889,fd=12))    

Accéder à l’interface Web de Syncthing

Ensuite, ouvre ton navigateur Web et accède à l’interface Web de Syncthing en utilisant les URLs http://first-server-ip:8384 et http://first-server-ip:8384.

Tu devrais voir l’écran suivant :

Interface d'administration de Syncthing

Clique sur les Paramètres pour définir l’utilisateur et le mot de passe de l’administrateur comme indiqué ci-dessous :

Défin un mot de passe

Indique ton nom d’utilisateur, ton mot de passe et clique sur le bouton Enregistrer pour appliquer les modifications. Tu seras redirigé vers la page de connexion de Syncthing :

sign-in

Indique ton nom d’utilisateur admin, ton mot de passe et clique sur le bouton Connexion. Tu devrais voir l’écran suivant :

Dossiers

Ensuite, tu devras ajouter l’ID de l’appareil de chaque serveur à un autre serveur afin de synchroniser les fichiers entre les deux serveurs. Pour ce faire, clique sur le bouton Actions > Afficher l’ID sur les deux serveurs. Tu devrais voir l’écran suivant :

Identification de l'appareil

identifier le nœud 2

Sur le premier serveur, clique sur Ajouter un périphérique distant. Tu devrais voir l’écran suivant :

Ajoute un appareil

Indique l’ID du périphérique du deuxième serveur et clique sur le bouton Enregistrer.

Sur le deuxième serveur, clique sur Ajouter un périphérique distant. Tu devrais voir l’écran suivant :

ID du dispositif

Indique l’ID de l’appareil du premier serveur et clique sur le bouton Enregistrer. Tu devrais voir l’écran suivant :

Dossiers et périphériques

Maintenant, tu vas devoir ajouter et partager le dossier que tu veux synchroniser avec le deuxième serveur. Clique sur le bouton Ajouter un dossier. Tu devrais voir l’écran suivant :

Ajoute un dossier

Indique le nom de ton dossier, son chemin d’accès et clique sur l’onglet Partage. Tu devrais voir l’écran suivant :

Partage de dossiers

Coche la case du deuxième serveur et clique sur le bouton Enregistrer. Tu devrais voir l’écran suivant :

Dossiers et appareils dans Syncthing

Ensuite, va sur le deuxième serveur et clique sur le bouton Rescan All. Tu devrais voir l’écran suivant :

Rescanner tous les

Clique sur Ajouter pour ajouter le dossier Backup partagé sur le premier serveur. Tu devrais voir l’écran suivant :

Synchronisation des dossiers

Maintenant, chaque fois que tu créeras ou modifieras des fichiers dans le dossier Backup sur le premier serveur, ils seront synchronisés automatiquement sur le deuxième serveur.

Configurer Nginx en tant que Reverse Proxy pour Syncthing

Tu peux aussi configurer Nginx comme proxy inverse pour accéder au serveur Syncthing via le port 80.

Tout d’abord, installe le serveur Nginx avec la commande suivante :

apt-get install nginx -y

Ensuite, crée un fichier de configuration d’hôte virtuel Nginx avec la commande suivante :

nano /etc/nginx/conf.d/syncthing.conf

Ajoute les lignes suivantes :

server {
  listen 80;
  server_name syncthing.example.com;

  access_log /var/log/nginx/syncthing.access.log;
  error_log /var/log/nginx/syncthing.error.log;
  location / {
    proxy_pass http://127.0.0.1:8384;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
  }
}

Sauvegarde et ferme le fichier puis vérifie que Nginx n’a pas d’erreur de syntaxe avec la commande suivante :

nginx -t

Tu devrais obtenir le résultat suivant :

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Ensuite, recharge le Nginx pour appliquer les modifications.

systemctl reload nginx

Tu peux aussi vérifier l’état de Nginx à l’aide de la commande suivante :

systemctl status nginx

Tu devrais voir la sortie suivante :

? nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2021-07-09 05:01:36 UTC; 21s ago
       Docs: man:nginx(8)
   Main PID: 3394 (nginx)
      Tasks: 2 (limit: 2353)
     Memory: 6.2M
     CGroup: /system.slice/nginx.service
             ??3394 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             ??3395 nginx: worker process

Jul 09 05:01:36 node1 systemd[1]: Starting A high performance web server and a reverse proxy server...
Jul 09 05:01:36 node1 systemd[1]: Started A high performance web server and a reverse proxy server.

Maintenant, tu peux accéder au serveur Syncthing en utilisant l’URL http://syncthing.example.com.

Conclusion

Félicitations ! Tu as réussi à installer et à configurer Syncthing sur deux serveurs Ubuntu 20.04 et à configurer la synchronisation entre les deux serveurs. J’espère que ce tutoriel t’aidera à sauvegarder ton serveur.

Vous aimerez aussi...