Má všeobecná wiki

Kdo je blbý, ať si kůpi notes, já mám tuto wiki...

Uživatelské nástroje

Nástroje pro tento web


linux:syncthing

Syncthing

Syncthing je nástroj pro synchronizaci adresářů se soubory.

Instalace

Postup instalace se může lišit pro různé operační systémy, většinou je přítomen v repozitáři Linuxové distribuce.

Pro systémy používající deb balíčky je také k dispozici repozitář Syncthing.

Webové GUI rozhraní

Defaultně je na localhostu na portu 8384. http://127.0.0.1:8384

Je možné nastavit uživatelské jméno a heslo, dále lze zapnout zabezpečení HTTPS a dá se změnit naslouchací adresa i port.

Lighttpd reverzní proxy

Na stránkách Syncthing je návod pro nastavení reverzní proxy pro různé webové servery, jen ne pro lighttpd.

Předem ještě dodám, že lighttpd mod_proxy v současnosti nepodporuje SSL/TLS spojení k backend serveru, takže pro syncthing webové GUI doporučuji mít vypnuté HTTPS zabezpečení a to si zajistit na úrovni lighttpd, například skriptem dehydrated získat certifikáty Lets Encrypt.

Jméno a heslo pro přihlášení lze mít buď přes syncthing GUI nebo přes lighttpd mod_auth.

Upravíme soubor /etc/lighttpd/lighttpd.conf, případně jiný soubor s konfigurací našeho webserveru. Pro příklad předpokládejme adresu http://domain.com/examplesync/

sudo vim /etc/lighttpd/lighttpd.conf

a do souboru vložíme:

$HTTP["url"] =~ "^/examplesync/" {
      proxy.server  = ( "" => ( (
                        "host" => "127.0.0.1",
                        "port" => 8384
                        ) )
                      )
      proxy.header = (
           "map-urlpath" => (
               "/examplesync/" => "/"
           )
      )
}

Nastavení map-urlpath je velmi důležité v případě, že chceme nějakou cestu za doménami (složku examplesync), protože lighttpd zjevně defaultně kopíruje tuto cestu i v rámci proxy, když s tím aplikace nepočítá.

Po uložení konfigurace lighttpd znovu načteme jeho konfiguraci.

sudo /etc/init.d/lighttpd force-reload

Syncthing má implementovanou ochranu proti DNS rebinding útoku a pokud jsme nastavili naslouchací adresu na localhost, při přístupu přes reverse proxy se zobrazí hlášení Host check error. Více informací je ve FAQ.

Jedno z řešení je vypnout kontrolu hosta. Ve webovém GUI to jde zaškrtnout v AkcePokročiléGrafické rozhraníInsecure Skip Hostcheck, nebo se musí upravit soubor ~/.config/syncthing/config.xml.

Otevřeme soubor ~/.config/syncthing/config.xml

vim ~/.config/syncthing/config.xml

a do sekce <gui> </gui> vložíme direktivu <insecureSkipHostcheck>true</insecureSkipHostcheck>

<gui enabled="true" tls="false" debugging="false">
    <address>127.0.0.1:8384</address>
    <insecureSkipHostcheck>true</insecureSkipHostcheck>
    <user>someuser</user>
    <password>somehashedpassword</password>
    <apikey>someapikey</apikey>
    <theme>default</theme>
</gui>

Poté znovu spustíme syncthing a mělo by vše fungovat.

Spouštění syncthing

V této části zápisku popíšu spouštění jak na serveru, tak i v grafickém prostředí.

Trvalý běh v systému bez systemd

V balíčku jsou přítomny systemd service soubory, viz návod, ale pokud systemd nemáme, návod doporučuje program supervisord.

Já jsem se rozhodl jít cestou přes cron a screen. Otevřeme si uživatelský cron:

crontab -e

a do souboru vložíme:

*/5 *  * * *  if [ `screen -list | grep [.]syncthing | wc -l` = '0' ]; then screen -h 1024 -dmS syncthing syncthing ; fi

Tento způsob může mít tu nevýhodu, že při vypínání systému by teoreticky mohlo dojít k ukončení syncthing a jeho opětovném zapnutí před ukončením cronu.

Běh v desktopovém prostředí

GTK varianta

Na desktopu lze nainstalovat balíček syncthing-gtk z repozitáře a v tomto GUI je možné nastavit start programu i s démonem syncthing zároveň s přihlášením do desktopového prostředí.

QT varianta

syncthingtray jako balíček je v době psaní tohoto zápisku přítomný v Debianu jen v testing větvi (bookworm).

Z uvedených závislostí lze vycházet i pro starší vydání, snad jen s dodatkem, že knihovny, které začínají názvem libmartchus nejsou ve starší verzi distribuce nutné.

Ze stránky projektu lze stáhnout binární soubor pro architekturu x86-64 (archiv syncthingtray) a je možné jej vložit například do adresáře /opt/syncthingtray.

cd /opt/
tar xf syncthingtray-1.3.2-x86_64-pc-linux-gnu.tar.xz

Pro ostatní architektury bude nezbytné přeložit program ze zdrojového kódu.

Podle potřeby vytvoříme .desktop soubor nebo záznam v nabídce programů pro snazší spouštění. V programu se dá nastavit jeho spouštění do tray v panelu po přihlášení do uživatelského prostředí a tento program si zároveň spustí démona syncthing.

linux/syncthing.txt · Poslední úprava: 2023/02/16 21:55 autor: mirda