Qu'est-ce que Syncthing ?

Syncthing est un programme open source qui maintient les dossiers synchronisés entre vos appareils, directement et sans serveur central. Le projet fournit une image officielle, syncthing/syncthing, dont l'interface web écoute sur le port 8384 et dont le protocole de synchronisation utilise le port 22000 pour TCP et QUIC. Les appareils du même réseau se trouvent grâce à des diffusions sur le port 21027.

Description de l'outil

Cet outil crée un fichier compose.yaml pour Syncthing qui suit le README Docker du projet. Par défaut, il utilise le réseau de l'hôte, comme le recommande le README, car Syncthing peut ainsi détecter les appareils de votre réseau local. Dans ce mode, l'outil supprime STGUIADDRESS, afin que l'interface écoute sur l'adresse définie dans les paramètres de Syncthing, qui est 127.0.0.1:8384 par défaut. Vous pouvez également choisir le mode bridge. L'outil publie alors le port de l'interface, le port de synchronisation pour TCP et UDP, ainsi que le port de découverte, et vous avertit des contreparties du mode bridge. Vous définissez le nom d'hôte, l'utilisateur et le groupe avec PUID et PGID, un UMASK et un PCAP facultatifs, le dossier de données et d'autres dossiers de l'hôte. Un contrôle de santé qui suit l'adresse de l'interface est ajouté. Tout est créé dans votre navigateur.

Fonctionnalités

  • Réseau de l'hôte comme recommandé, ou mode bridge avec publication des ports 8384, 22000/tcp, 22000/udp et 21027/udp
  • Adresse d'écoute de l'interface en mode hôte, avec un avertissement lorsqu'elle peut être accessible depuis d'autres machines
  • Adresse de liaison pour le port de l'interface en mode bridge, comme 127.0.0.1
  • PUID, PGID, UMASK et PCAP, ainsi qu'un nom d'hôte pour le nom de l'appareil
  • Dossier de données sur l'hôte ou volume Docker nommé, déclaré automatiquement
  • Dossiers supplémentaires à synchroniser, chacun pouvant être configuré en lecture seule
  • Contrôle de santé du README, adapté au port et à l'adresse de l'interface
  • Toute autre variable d'environnement, des commentaires expliquant le fichier et un téléchargement sous la forme de compose.yaml

Exemples

Les paramètres par défaut donnent l'exemple du README Docker de Syncthing :

services:
  syncthing:
    image: syncthing/syncthing
    container_name: syncthing
    hostname: syncthing
    network_mode: host
    environment:
      PUID: "1000"
      PGID: "1000"
      STGUIADDRESS: ""
    volumes:
      - ./st-sync:/var/syncthing
    healthcheck:
      test: curl -fkLsS -m 2 127.0.0.1:8384/rest/noauth/health | grep -o --color=never OK || exit 1
      interval: 1m
      timeout: 10s
      retries: 3
    restart: unless-stopped

Conseils

  • Enregistrez le résultat sous le nom compose.yaml et démarrez-le avec docker compose up -d. Ouvrez ensuite http://127.0.0.1:8384
  • Le mode bridge par défaut de Docker masque les adresses locales de vos appareils, qui se connectent donc lentement ou par l'intermédiaire de relais. Utilisez le mode hôte lorsque c'est possible
  • L'image écoute par défaut sur 0.0.0.0:8384. C'est pourquoi le mode hôte supprime STGUIADDRESS et pourquoi le mode bridge devrait lier le port publié de l'interface à 127.0.0.1, sauf si vous souhaitez y accéder depuis d'autres machines
  • Lorsque l'interface peut être accessible depuis d'autres machines, définissez un mot de passe pour l'interface et activez TLS dans les paramètres de Syncthing
  • Le dossier de données et les dossiers que vous ajoutez doivent être accessibles en écriture par PUID et PGID
  • Les dossiers que vous ajoutez ici apparaissent dans Syncthing sous le chemin du conteneur ; choisissez donc ce chemin lorsque vous ajoutez le dossier dans l'interface
  • Le port de synchronisation reste 22000, car Syncthing indique aux autres appareils de se connecter à ce port