Toto je starší verze dokumentu!
Syncthing je nástroj pro synchronizaci adresářů se soubory.
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.
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.
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á.
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.