Was ist Syncthing?

Syncthing ist ein Open-Source-Programm, das Ordner zwischen Ihren Geräten direkt und ohne zentralen Server synchron hält. Das Projekt stellt ein offizielles Image bereit, syncthing/syncthing, dessen Web-GUI auf Port 8384 lauscht und dessen Synchronisierungsprotokoll Port 22000 für TCP und QUIC verwendet. Geräte im selben Netzwerk finden einander über Broadcasts auf Port 21027.

Toolbeschreibung

Dieses Tool erstellt eine compose.yaml für Syncthing gemäß der Docker-README des Projekts. Standardmäßig wird das Host-Netzwerk verwendet, wie es in der README empfohlen wird, da Syncthing dadurch die Geräte in Ihrem lokalen Netzwerk sehen kann. In diesem Modus entfernt das Tool STGUIADDRESS, sodass die GUI auf der Adresse aus den Syncthing-Einstellungen lauscht, standardmäßig 127.0.0.1:8384. Sie können auch den Bridge-Modus auswählen. Das Tool veröffentlicht dann den GUI-Port, den Synchronisierungsport für TCP und UDP sowie den Discovery-Port und weist auf die Nachteile des Bridge-Modus hin. Sie legen den Hostnamen, den Benutzer und die Gruppe mit PUID und PGID, ein optionales UMASK und PCAP, den Datenordner sowie weitere Ordner vom Host fest. Eine Gesundheitsprüfung, die der GUI-Adresse folgt, wird hinzugefügt. Alles wird in Ihrem Browser erstellt.

Funktionen

  • Host-Netzwerk wie empfohlen oder Bridge-Modus mit den veröffentlichten Ports 8384, 22000/tcp, 22000/udp und 21027/udp
  • Die GUI-Listening-Adresse im Host-Modus sowie eine Warnung, wenn sie von anderen Rechnern erreicht werden kann
  • Eine Bind-Adresse für den GUI-Port im Bridge-Modus, beispielsweise 127.0.0.1
  • PUID, PGID, UMASK und PCAP sowie ein Hostname für den Gerätenamen
  • Ein Datenordner auf dem Host oder ein benanntes Docker-Volume, das für Sie deklariert wird
  • Weitere zu synchronisierende Ordner, die jeweils optional schreibgeschützt sein können
  • Die Gesundheitsprüfung aus der README, angepasst an Port und Adresse der GUI
  • Beliebige weitere Umgebungsvariablen, Kommentare zur Erklärung der Datei sowie ein Download als compose.yaml

Beispiele

Die Standardeinstellungen ergeben das Beispiel aus der Syncthing-Docker-README:

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

Tipps

  • Speichern Sie das Ergebnis als compose.yaml und starten Sie es mit docker compose up -d. Öffnen Sie anschließend http://127.0.0.1:8384
  • Der standardmäßige Bridge-Modus von Docker verbirgt die lokalen Adressen Ihrer Geräte, sodass diese sich langsam oder über Relays verbinden. Verwenden Sie nach Möglichkeit den Host-Modus
  • Das Image lauscht standardmäßig auf 0.0.0.0:8384. Deshalb entfernt der Host-Modus STGUIADDRESS, und deshalb sollte der veröffentlichte GUI-Port im Bridge-Modus an 127.0.0.1 gebunden werden, sofern Sie nicht von anderen Rechnern darauf zugreifen möchten
  • Wenn die GUI von anderen Rechnern aus erreichbar ist, legen Sie in den Syncthing-Einstellungen ein GUI-Passwort fest und aktivieren Sie TLS
  • Der Datenordner und die hinzugefügten Ordner müssen für PUID und PGID beschreibbar sein
  • Die hier hinzugefügten Ordner erscheinen in Syncthing unter dem Pfad im Container. Wählen Sie daher diesen Pfad aus, wenn Sie den Ordner in der GUI hinzufügen
  • Der Synchronisierungsport bleibt 22000, da Syncthing anderen Geräten mitteilt, dass sie sich mit diesem Port verbinden sollen