Na synchronizaci dat mezi počítači používám bezplatný a otevřený nástroj Syncthing. Dříve jsem používal Resilio Sync, ale poté co změnili licenční politiku a pro běh na serverovém OS je třeba měsíční platba, přešel jsem právě na Syncthing. A na kanálu Z-TECH jsem o něm vytvořil seriál:
- Základní představení a instalace na Windows
 - Instalace na Linux a Raspberry Pi
 - Pokročilejší nastavení synchronizace
 - Instalace na Windows jako služba
 
Instalace na Windows je poměrně přímočará, ale na Linuxu je to o něco složitější, je tam více manuálních kroků. Proto jsem připravil návod krok za krokem.
Instalace aplikace Syncthing na Linuxu
Tento návod popisuje, jak nainstalovat synchronizační software na Linux. Počítá s následujícími distribucemi, aktuálními ke dni vydání článku:
- Ubuntu Linux 24.04 LTS
 - Raspberry Pi OS 2024-03-15 (Debian 12 - Bookworm)
 
Z mého pohledu je důležitá zejména instalace na Raspberry Pi, protože pomocí něj a externího disku (ukážu vám, jak ho zprovoznit) si můžete jednoduše vytvořit off-site zálohu. V práci, u známého, kdekoliv kde je připojení k Internetu, si můžete jednoduše vytvořit zálohovací server, který ochrání vaše data i v případě, že by primární lokace byla zničena, například požárem.
Návodů na zprovoznění Syncthingu na Linuxu jsem našel spoustu, ale mají z mého pohledu dvě zásadní vady z hlediska bezpečnosti:
- Syncthing běží pod rootem, nebo pod uživatelem s vysokými oprávněními. Můj návod počítá s vytvořením speciálního uživatele s nízkými právy.
 - Jeho webové administrační rozhraní je dostupné přímo z vnější sítě (případně z Internetu). Můj návod schovává rozhraní za nginx proxy.
 
Základní instalace
| 1. | Připojte se na server z konzole nebo přes SSH.  | 
|---|---|
| 2. | Následujícími příkazy plně aktualizujte systém 
Vyčkejte, dokud vše neproběhne, což může v závislosti na rychlosti vašeho připojení a počítače trvat i několik desítek minut.  | 
Instalace aplikace Syncthing
| 3. | Přidejte klíč APT repository Syncthingu mezi důvěryhodné:  | 
|---|---|
| 4. | Přidejte repository do systému:  | 
| 5. | Aktualizujte seznam dostupných balíčků:  | 
| 6. | Nainstalujte aplikaci Syncthing:  | 
Vytvoření uživatele
Chceme, aby aplikace běžela nikoliv pod rootem (nebo jiným uživatelem s vysokými právy), ale pod svým vlastním uživatelem syncthing s minimálními oprávněními.
| 7. | Následujícím příkazem vytvoříte pro službu uživatele:  | 
|---|---|
| 8. | Přepněte se do kontextu tohoto uživatele:  | 
| 9. | Spusťte z konzole Syncthing, aby se vytvořila konfigurace:  | 
| 10. | Měli byste vidět log, zhruba jako na následujícím obrázku: 
 Ukončete aplikaci stiskem Ctrl+C.  | 
| 11. | Opusťte kontext uživatele služby:  | 
Konfigurace aplikace a registrace daemona
Protože budeme chtít webové rozhraní aplikace publikovat do Internetu pomocí nginxu, je třeba provést změnu v konfiguraci, aby fungovala publikace pomocí proxy. Také je nutné nastavit Syncthing jako daemona, automaticky spouštěnou aplikaci běžící na pozadí.
| 12. | Otevřete konfigurační soubor v editoru Nano:  | 
|---|---|
| 13. | Najděte v XML dokumentu element  
  | 
| 14. | Stiskem Ctrl+S uložte změny a stiskem Ctrl+X ukončete editor.  | 
| 15. | Vytvořte v editoru Nano soubor s definicí služby:  | 
| 16. | Zadejte do něj následující text:  | 
| 17. | Stiskem Ctrl+S uložte změny a stiskem Ctrl+X ukončete editor.  | 
| 18. | Následujícími příkazy službu zaregistrujte a nastartujte:  | 
| 19. | Následujícím příkazem si ověřte, že úspěšně běží (je tam  
  | 
Nyní již Syncthing běží a mohli byste se k němu připojit pomocí adresy   | 
Publikace pomocí nginxu
Nechceme, aby byl Syncthing do sítě (Internetu) vystaven přímo, ale prostřednictvím proxy nginx. Z bezpečnostních důvodů a i z důvodů praktických -- například je výrazně jednodušší nastavit automatické vystavení a obnovování HTTPS certifikátů od Let's Encrypt CA pro nginx než přímo pro Syncthing.
| 20. | Nainstalujte nginx:  | 
|---|---|
| 21. | Vytvořte v editoru Nano konfigurační soubor pro naši site:  | 
| 22. | Zadejte do něj následující obsah:  | 
| 23. | Stiskem Ctrl+S uložte změny a stiskem Ctrl+X ukončete editor.  | 
| 24. | Zakažte výchozí demo site a povolte nově vytvořenou site pro Syncthing:  | 
| 25. | Reloadněte konfiguraci nginxu:  | 
Základní zabezpečení
| 26. | Podívejte se v prohlížeči na IP adresu nebo název vašeho serveru. Zobrazí se vám webové GUI aplikace Syncthing: 
  | 
|---|---|
| 27. | V tomto okamžiku není nastaveno pro webové rozhraní žádné uživatelské jméno a heslo. 
 
  | 
Po klepnutí na Save se Syncthing restartuje, což chvíli trvá. Nenechte se zmást chybovými hlášeními jako například 502 Gateway Timeout. Chvíli vyčkejte a obnovte stránku.  | 
|
| 28. | Nyní budete před vstupem do uživatelského rozhraní vyzváni k zadání jména a hesla, které jste zvolili v kroku 27.  | 
| 29. | Abychom zvýšili zabezpečení celého systému, nastavíme pravidla na firewallu tak, aby byly povoleny pouze vybrané porty. Nainstalujte Uncomplicated firewall (UFW):  | 
Instalace UFW není nezbytná, lze přímo konfigurovat iptables, ale to není dvakrát pohodlné, proto je lepší toto jednoduché rozhraní.  | 
|
| 30. | Následujícími příkazy povolíte porty 22, 80 a 443:  | 
| 31. | Následujícím příkazem firewall aktivujete: 
Na dotaz   | 
| 32. | Následujícím příkazem restartujte server a ověřte si, že všechny služby po rebootu řádně nastartovaly:  | 
Instalace dalšího disku
Syncthing nám úspěšně běží a můžeme s ním běžným způsobem pracovat. Nicméně v případě Raspberry Pi máme k dispozici pouze úložiště na paměťové kartě, což není ideální. Následujícím postupem lze připojit k Raspberry externí disk pomocí USB a zpřístupnit ho pro použití Syncthingem.
Tento postup předpokládá, že disk je zcela nový, prázdný, bez partitions atd. Pokud tomu tak není, budete v kroku 38 muset nejprve smazat existující partitions.  | 
|
| 33. | Nejprve zjistěte, jak se váš disk systémově jmenuje. To záleží na mnoha okolnostech, ale typicky to bude   | 
Je velmi důležité si být jisti, že pracujete se správným diskem! Pokud budete příkazy volat proti špatnému disku, přijdete o veškerá data na něm!  | 
|
| 34. | Následujícím příkazem si vypište seznam všech disků:  | 
| 35. | Najděte svůj disk. Poznáte jej podle velikosti (zde 931,51 GiB) a modelu (zde 024 HN-M101MBB). Pro náš případ se tento disk jmenuje  
  | 
Pokud se váš disk jmenuje jinak, musíte   | 
|
| 36. | Spusťte interaktivní aplikaci pro vytvoření partitions cfdisk:  | 
| 37. | Jako label type zvolte výchozí hodnotu  
  | 
| 38. | Pokud je váš disk prázdný, uvidíte pouze informaci Free space. Pokud by na něm byly partitions, musíte všechny smazat (Delete), dokud se do tohoto stavu nedostanete. 
  | 
| 39. | Šipkami vyberte New a klepněte na Enter.  | 
| 40. | Potvrďte výchozí velikost (použije se celý disk) tím, že klepnete na Enter.  | 
| 41. | Vyberte Write. Na otázku Are you sure you want to write the partition table to disk? odpovězte   | 
| 42. | Podívejte se, jak se jmenuje nově vytvořená partition. Zde  
  | 
Pokud se vaše partition jmenuje jinak, musíte   | 
|
| 43. | Následujícím příkazem partition naformátujte na souborový systém EXT4. První parametr (  | 
Pokud budete vyzváni k přepsání existující partition, odpovězte   | 
|
| 44. | Vytvořte prázdný adresář   | 
| 45. | Přimountujte novou partition do tohoto adresáře:  | 
Nyní je váš disk dostupný pro operační systém. Můžete se o tom přesvědčit příkazem   | 
|
| 46. | Učiňte uživatele   | 
| 47. | Zakažte přístup komukoliv kromě vlastníka:  | 
| 48. | Nyní všechno funguje, ale po rebootu přestane. Aby byl disk funkční i po restartu (automaticky se přimountoval), editujte soubor   | 
| 49. | Přidejte na konec souboru následující řádek (oddělovač je tabulátor): 
  | 
| 50. | Stiskem Ctrl+S uložte změny a stiskem Ctrl+X ukončete editor.  | 
| 51. | Následujícím příkazem restartujte server:  | 
| 52. | Po restartu se přesvědčte, že je disk řádně namountován (uvidíte v něm jako root adresář   | 









