SyncThing
This article will show you how to install and configure SyncThing. This software will allow you to sync to another computer or device via the BitTorrent protocol.
You'll need to execute some commands via SSH to use this software. There is a separate guide on how to connect to your slot via SSH. Commands are kept as simple as possible and in most cases will simply need to be copied and pasted into the terminal window (then executed by pressing the Enter key).
Table of contents
Installation
Install SyncThing by logging in via SSH, then copying and pasting the following:
wget -qO ~/syncthing.tar.gz https://github.com/syncthing/syncthing/releases/download/v1.9.0/syncthing-linux-amd64-v1.9.0.tar.gz mkdir -p ~/bin; tar xvzf ~/syncthing.tar.gz -C ~/; mv ~/syncthing-linux-amd64-v1.9.0/syncthing ~/bin/; chmod +x ~/bin/syncthing; ~/bin/syncthing -generate="~/.config/syncthing" rm ~/syncthing.tar.gz ; rm -rf ~/syncthing-linux-amd64-v1.9.0
Configuring before starting Syncthing
The config needs to be tweaked before you can run Syncthing. Copy and paste these commands:
sed -i 's|127.0.0.1:[0-9]*|0.0.0.0:'$(shuf -i 10001-49000 -n 1)'|g' ~/.config/syncthing/config.xml sed -i 's|<localAnnounceEnabled>true</localAnnounceEnabled>|<localAnnounceEnabled>false</localAnnounceEnabled>|g' ~/.config/syncthing/config.xml sed -i 's|<natEnabled>true</natEnabled>|<natEnabled>false</natEnabled>|g' ~/.config/syncthing/config.xml
Once started you must set a password and limit concurrency.
Starting, stopping and restarting
This section covers the SyncThing process - starting it, stopping it and restarting it. It also covers checking if the process is running, in case that becomes necessary.
- start
- screen -dmS syncthing ~/bin/syncthing && echo http://$(hostname -f):$(sed -rn 's|.*<address>0.0.0.0:(.*)</address>.*|\1|p' ~/.config/syncthing/config.xml)
- check running
- pgrep -laf syncthing
- stop
- pkill -f syncthing
- restart
- pkill -f syncthing && sleep 5 && screen -dmS syncthing ~/bin/syncthing && echo http://$(hostname -f):$(sed -rn 's|.*<address>.0.0.0:(.*)</address>.*|\1|p' ~/.config/syncthing/config.xml)
- kill (force stop)
- pkill -9 -f syncthing
The check running command will return a process number if SyncThing is running. If it doesn't return anything, SyncThing is not running.
Automatically restarting SyncThing if it is not running
Cron jobs can be used to check if SyncThing is running and start it up if it is not. There is a separate page on configuring cron jobs.
Configuring
Creating a username and password for the webUI
Once you access the webUI using the URL provided by the start command you'll get a popup asking whether you want to send anonymouse usage reporting, dismiss it by accepting or not. Once it's done you will see an information that there is no password set up for webUI, click on Settings button and proceed to GUI tab to set password for the account.
Limiting concurrency
By default syncthing will use as many threads as there are cores on the server. This concurrency leads to the disk being easily overwhelmed slowing down performance for your own programs and others on the server. Here's how to limit concurrency so that it doesn't cause any problems:
At the top-right of the menu, select the drop-down "Actions" then "Advanced". Under "Options" change "Max Folder Concurrency" to 0 (all cores) to 1. Then for each "Folder ..." listed change "Hashers" and "Copiers" from 0 to 1. This will then also need to be applied to the "Default Folder" to auto-apply against any newly created folders. You will then need to click "Save" to apply the settings.
Troubleshooting
If you experience issues or crashes using SyncThing the first thing to try and do is restart the software using the command listed in the section above, Starting, stopping and restarting.
Uninstallation
The commands below will completely remove the software and its config files - back up important data first!
pkill -9 -f syncthing rm -rf ~/.config/syncthing/ ~/bin/syncthing ~/Sync