Czym jest Syncthing?

Syncthing to program open source, który synchronizuje foldery między Twoimi urządzeniami bezpośrednio i bez centralnego serwera. Projekt udostępnia oficjalny obraz syncthing/syncthing, którego webowy GUI nasłuchuje na porcie 8384, a protokół synchronizacji używa portu 22000 dla TCP i QUIC. Urządzenia w tej samej sieci odnajdują się za pomocą rozgłoszeń na porcie 21027.

Opis narzędzia

To narzędzie tworzy plik compose.yaml dla Syncthing zgodnie z plikiem README projektu dotyczącym Dockera. Domyślnie używa sieci hosta, co jest zalecane w README, ponieważ dzięki temu Syncthing może wykrywać urządzenia w sieci lokalnej. W tym trybie narzędzie usuwa zmienną STGUIADDRESS, więc GUI nasłuchuje na adresie określonym w ustawieniach Syncthing, czyli domyślnie 127.0.0.1:8384. Możesz także wybrać tryb bridge. W takim przypadku narzędzie publikuje port GUI, port synchronizacji dla TCP i UDP oraz port wykrywania, a także ostrzega o kosztach korzystania z trybu bridge. Ustawiasz nazwę hosta, użytkownika i grupę za pomocą PUID i PGID, opcjonalne wartości UMASK i PCAP, folder danych oraz dodatkowe foldery z hosta. Dodawane jest sprawdzanie stanu zgodne z adresem GUI. Wszystko jest tworzone w przeglądarce.

Funkcje

  • Sieć hosta zgodnie z zaleceniami lub tryb bridge z opublikowanymi portami 8384, 22000/tcp, 22000/udp i 21027/udp
  • Adres nasłuchiwania GUI w trybie hosta wraz z ostrzeżeniem, gdy GUI może być dostępne z innych maszyn
  • Adres przypisania dla portu GUI w trybie bridge, na przykład 127.0.0.1
  • PUID, PGID, UMASK i PCAP oraz nazwa hosta używana jako nazwa urządzenia
  • Folder danych na hoście lub nazwany wolumin Docker, który zostanie zadeklarowany automatycznie
  • Dodatkowe foldery do synchronizacji, z opcjonalnym ustawieniem tylko do odczytu dla każdego z nich
  • Sprawdzanie stanu z README, dostosowane do portu i adresu GUI
  • Dowolne inne zmienne środowiskowe, komentarze wyjaśniające zawartość pliku oraz pobieranie pliku jako compose.yaml

Przykłady

Ustawienia domyślne tworzą przykład z README Syncthing dla Dockera:

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

Wskazówki

  • Zapisz wynik jako compose.yaml i uruchom go poleceniem docker compose up -d. Następnie otwórz http://127.0.0.1:8384
  • Domyślny tryb bridge Dockera ukrywa lokalne adresy Twoich urządzeń, więc łączą się one wolno lub za pośrednictwem przekaźników. Jeśli możesz, używaj trybu hosta
  • Obraz domyślnie nasłuchuje na 0.0.0.0:8384. Dlatego w trybie hosta zmienna STGUIADDRESS jest usuwana, a w trybie bridge opublikowany port GUI powinien być przypisany do 127.0.0.1, chyba że chcesz uzyskiwać do niego dostęp z innych maszyn
  • Jeśli GUI może być dostępne z innych maszyn, ustaw hasło GUI i włącz TLS w ustawieniach Syncthing
  • Folder danych i dodane foldery muszą mieć uprawnienia zapisu dla PUID i PGID
  • Dodane tutaj foldery pojawią się w Syncthing pod ścieżką w kontenerze, więc wybierz tę ścieżkę podczas dodawania folderu w GUI
  • Port synchronizacji pozostaje ustawiony na 22000, ponieważ Syncthing informuje inne urządzenia, aby łączyły się z tym portem