Syncthing

Syncthing is a modern file synchronization tool. It synchronizes files between various devices and operating systems. It is a great tool for automatic backup of personal files and smartphones. It has several usefull features:

For this setup we will use GlusterFS as the file store backend.

Software

Start by installing syncthing

apt-get install syncthing

Filesystem

Configure your system as a GlusterFS client, so you have the following in your fstab.

/etc/glusterfs/home.vol /srv/home glusterfs defaults,_netdev,rw 0 0

Configuration

For each user that is going to synchronize against this system, create a directory for them in /srv/home and give it the correct ownership.

mkdir /srv/home/kale
chown -R kale:kale /srv/home/kale

For each user add the syncthing service to default runlevel and start it.

systemctl enable syncthing@kale.service
systemctl start syncthing@kale.service

When the syncthing service starts, it creates a set of config files in the users home directory. Edit /home/kale/.config/syncthing/config.xml and look for the section below. Change the address, so the service responds to all hosts <address>0.0.0.0:8384</address>

   1 <gui enabled="true" tls="true" debugging="false">
   2     <address>127.0.0.1:8384</address>
   3     <user>kale</user>
   4     <password>password hash</password>
   5     <apikey>apikey</apikey>
   6     <theme>default</theme>
   7 </gui>

Restart the service for the specific user.

systemctl restart syncthing@kale.service

Instances

References

* https://theselfhostingblog.com/posts/how-to-set-up-a-headless-syncthing-network/