Tropic Host

Syncthing: co to je a jak nastavit synchronizaci souborů na VPS

7 min čtení
Tropic
Syncthing: co to je a jak nastavit synchronizaci souborů na VPS

Language: cs

Syncthing: synchronizace souborů mezi zařízeními bez cizího cloudu

Ráno upravíte dokument na notebooku a vypnete ho. Večer otevřete domácí počítač a nejnovější verze už je tam. Soubor nikdy neprošel přes Google Drive ani Dropbox: přijal ho váš vlastní uzel Syncthing.

Syncthing přímo synchronizuje vybrané složky mezi důvěryhodnými zařízeními a vy máte kontrolu nad tím, kde jsou data uložená. Centrální server je volitelný.

Pokud však dva počítače bývají online jen zřídka současně, výměna změn je obtížná. VPS zapnuté nepřetržitě tento problém řeší: přijme soubory z jednoho zařízení a později je předá druhému.

Je důležité vědět, k čemu je Syncthing určený. Není to síťový disk ani správce souborů v prohlížeči, ale nástroj pro automatické replikování vybraných složek.

Syncthing v pěti krocích

Minimální nastavení vypadá takto:

  1. Nainstalujte Syncthing na potřebné počítače.
  2. Spusťte další instanci Syncthing na VPS.
  3. Otevřete administrační rozhraní serveru přes SSH tunel.
  4. Vyměňte identifikátory zařízení a schvalte připojení.
  5. Přidejte sdílenou složku, vyberte režim synchronizace a zapněte verzování souborů.

Co je Syncthing a jak funguje

Syncthing je bezplatný software s otevřeným zdrojovým kódem pro průběžnou synchronizaci souborů. Funguje ve Windows, macOS, Linuxu i v dalších desktopových a serverových operačních systémech.

Každá instalace dostane jedinečné Device ID, tedy kryptografický identifikátor. Než si dva uzly začnou vyměňovat data, musíte je přidat navzájem a výslovně povolit přístup ke konkrétní složce. Neexistuje jediný účet Syncthing, který by ukládal vaše zařízení a soubory.

Když se soubor změní, Syncthing ho rozdělí na bloky, porovná kontrolní součty a přenese jen chybějící části. Malá úprava uvnitř velkého souboru proto nemusí znamenat odeslání celého souboru znovu.

Vyhledávací služby pomáhají zařízením najít se navzájem, ale soubory neukládají. Pokud přímé spojení není možné, může šifrovaný provoz procházet pomalejším relayem.

Co se změní s VPS

Bez serveru může notebook synchronizovat data přímo s domácím počítačem, ale obě zařízení musí být online současně, byť jen krátce. VPS promění toto nastavení v neustále dostupný výměnný bod.

Například notebook ráno nahraje projekt na server a potom se vypne. Večer si domácí počítač stáhne novou verzi z VPS.

Syncthing se hodí pro dokumenty, poznámky Obsidianu, zdrojový kód, fotografie a rodinné složky. Mezipaměti, node_modules a výstupy sestavení je lepší vyloučit pomocí .stignore. Aktivní databáze a obrazy virtuálních počítačů by se synchronizovat neměly.

VPS také vytváří kopii dat mimo váš domov. Tato kopie se však stane skutečnou zálohou až v kombinaci s verzováním a samostatným archivem záloh: náhodné smazání se může rozšířit na všechna zařízení.

Syncthing nebo Nextcloud: co si vybrat?

Tyto dva nástroje se často porovnávají, přestože řeší odlišné problémy.

KritériumSyncthingNextcloud
ModelSložky se kopírují mezi zařízenímiSoubory jsou uložené na centrálním serveru
Vyžaduje serverNe, VPS je volitelnéAno
Přístup k souborům v prohlížečiNe, ne jako plnohodnotný webový diskAno
Veřejné odkazyNeAno
Spolupráce na dokumentechNení k dispoziciLze doplnit
Nejlepší použitíUdržování stejných složek na vlastních zařízeníchOsobní nebo týmový cloud

Syncthing zvolte pro nenápadnou synchronizaci na pozadí. Nextcloud je vhodnější, pokud potřebujete webový přístup, odkazy pro sdílení, uživatelské účty, kalendář a funkce spolupráce.

Jak nainstalovat Syncthing na VPS s Docker Compose

Následující kroky jsou určeny pro VPS s Ubuntu 24.04. Administrační rozhraní zůstane svázané s lokální adresou serveru a připojíte se k němu přes SSH tunel.

1. Instalace Dockeru

sudo apt update
sudo apt install -y docker.io docker-compose-v2
sudo systemctl enable --now docker

2. Vytvoření složky a souboru Compose

sudo mkdir -p /opt/syncthing/data
sudo chown -R 1000:1000 /opt/syncthing/data
cd /opt/syncthing
sudo nano compose.yaml

Vložte následující obsah:

services:
  syncthing:
    image: syncthing/syncthing:latest
    container_name: syncthing
    hostname: syncthing-vps
    environment:
      - PUID=1000
      - PGID=1000
      - STGUIADDRESS=
    volumes:
      - ./data:/var/syncthing
    network_mode: host
    restart: unless-stopped

Tato konfigurace používá oficiální obraz Syncthing. Režim sítě host usnadňuje přímá připojení, zatímco prázdná hodnota STGUIADDRESS ponechá administrační rozhraní na adrese 127.0.0.1:8384.

Spusťte container:

sudo docker compose up -d
sudo docker compose ps

3. Povolení synchronizačních připojení

Nejprve povolte SSH, abyste se omylem neodřízli od serveru:

sudo ufw allow OpenSSH
sudo ufw allow 22000/tcp
sudo ufw allow 22000/udp
sudo ufw enable

22000/TCP používá hlavní synchronizační protokol, zatímco 22000/UDP slouží pro QUIC. Port administračního rozhraní 8384 nemusíte vystavovat. Lokální vyhledávací port 21027/UDP je na veřejném VPS obvykle zbytečný.

4. Otevření rozhraní přes SSH

Na svém počítači spusťte:

ssh -L 9999:127.0.0.1:8384 root@SERVER_IP

Terminál nechte otevřený a navštivte:

http://127.0.0.1:9999

Po otevření rozhraní přejděte do Actions → Settings → GUI a nastavte uživatelské jméno a heslo. Pokud budete chtít rozhraní později zpřístupnit přes domain, umístěte ho za HTTPS reverse proxy a ponechte zapnuté ověřování.

5. Přidání zařízení a složky

Nainstalujte Syncthing do počítače a potom:

  1. Na počítači i VPS vyberte Actions → Show ID.
  2. Přidejte Device ID každého uzlu do druhého zařízení.
  3. Na počítači klikněte na Add Folder, vyberte složku a sdílejte ji se serverem.
  4. Na VPS složku přijměte a zvolte cestu, například /var/syncthing/Files.

Na počítačích ponechte zapnutý režim Send & Receive, aby synchronizace fungovala obousměrně. Na VPS bývá praktický režim Receive Only: server bude dál přijímat změny a předávat je mezi uzly, ale náhodné lokální úpravy provedené přímo na VPS se nerozšíří do celé sítě.

Proč Syncthing nenahrazuje zálohu

Pokud je soubor na jednom zařízení smazán nebo zašifrován, může se tato změna rozšířit i na ostatní. Proto otevřete nastavení složky na VPS a zapněte File Versioning.

Praktickou volbou je Staggered File Versioning s dobou uchování 30–90 dnů. Když vzdálený uzel soubor nahradí nebo smaže, předchozí verze se přesune do .stversions. Starší kopie zabírají místo na disku, proto nastavte limit uchování.

Spolehlivé řešení má tři vrstvy:

  1. Syncthing udržuje pracovní kopie aktuální.
  2. Verzování pomáhá vrátit některé chyby.
  3. Samostatná naplánovaná záloha se ukládá nezávisle na Syncthingu.

Může VPS ukládat soubory, aniž by viděl jejich obsah?

Syncthing obsahuje režim nedůvěryhodného zařízení. Na hlavním počítači nastavíte heslo pro složku a na VPS vyberete Receive Encrypted. Server ukládá zašifrovaná data a může je předat jinému důvěryhodnému zařízení, které používá stejné heslo.

Obsah, názvy souborů, časová razítka i struktura adresářů zůstanou skryté. Viditelné zůstanou informace o sdílené složce a přibližné velikosti souborů.

Vývojáři tuto funkci stále považují za experimentální. Heslo a Folder ID ukládejte odděleně: bez nich může být obnovení zašifrované složky nemožné.

Jaké VPS Syncthing potřebuje?

Využití prostředků nezávisí jen na množství dat, ale také na počtu souborů, četnosti jejich změn a procesu prvotního indexování. Pro osobní uzel s dokumenty a několika desítkami gigabajtů dat obvykle stačí základní konfigurace:

  • 1 vCPU;
  • 1 GB RAM;
  • úložiště SSD nebo NVMe;
  • dostatek místa pro soubory a .stversions;
  • stabilní síťové připojení.

Velká knihovna fotografií nebo stovky tisíc souborů budou vyžadovat více prostředků. Nejvyšší zatížení obvykle nastává při prvním skenování a výpočtu kontrolních součtů.

Pro tento úkol se hodí základní Ubuntu VPS od tropic.host. Začněte s malou konfigurací a podle růstu sbírky prostředky navyšujte. Při výběru kapacity disku počítejte nejen se současnými složkami, ale také s budoucími soubory, dočasnými daty a historií verzí.

Pět chyb, kterým se vyhnout

  • Vystavení portu 8384 celému Internetu. Pro nastavení používejte SSH tunel. Pro trvalý webový přístup použijte HTTPS, heslo a reverse proxy.
  • Považování kopie na serveru za úplnou zálohu. Zapněte verzování a vytvářejte samostatné archivy záloh.
  • Synchronizace mezipamětí a závislostí. Zbytečné adresáře vylučte pomocí .stignore.
  • Ignorování využití disku. Adresář .stversions může časem výrazně narůst.
  • Ponechání ztraceného zařízení mezi důvěryhodnými. Odeberte ho z ostatních uzlů a chraňte konfiguraci Syncthingu, která obsahuje klíče zařízení.

Co byste měli vědět o chytrých telefonech

Oficiální aplikace pro Android byla na konci roku 2024 ukončena, komunitní klienti jsou však k dispozici. Oficiální klient neexistuje ani pro iOS: omezení běhu na pozadí ztěžují průběžnou synchronizaci. Než připojíte hlavní knihovnu fotografií, otestujte vybranou mobilní aplikaci s malou složkou.

Závěr

Syncthing se hodí každému, kdo chce mít stejné složky na několika zařízeních bez povinného cloudového prostředníka. VPS systém zpříjemní: počítače už nemusí být online současně a získáte stále dostupnou kopii mimo domov.

Pro bezpečné nastavení nevystavujte administrační rozhraní přímo do Internetu, zapněte verzování a doplňte synchronizaci o nezávislou zálohu.

FAQ

Potřebuji pro Syncthing VPS?

Ne. Zařízení se mohou synchronizovat přímo. VPS funguje jako uzel zapnutý nepřetržitě a umožní jim vyměňovat změny v různých časech.

Mohu soubory Syncthing otevřít v prohlížeči?

Webové rozhraní je určeno pro konfiguraci, ne pro procházení dokumentů jako v Google Drive. Pokud potřebujete webový disk, vhodnější volbou je Nextcloud.

Je Syncthing řešením pro zálohování?

Ne. Mazání i poškození se mohou rozšířit na další zařízení. Verzování pomáhá, ale nenahrazuje nezávislou zálohu.

Musím otevřít port 8384?

Ne. Ponechte rozhraní na 127.0.0.1:8384 a připojujte se přes SSH tunel. Pro synchronizaci otevřete 22000/TCP a 22000/UDP.

Může vlastník VPS číst soubory?

Při standardním nastavení potenciálně ano. Režim Receive Encrypted je ukládá v zašifrované podobě, tato funkce je však stále považována za experimentální a vyžaduje bezpečné uložení hesla a Folder ID.