;;;;;
title: Syncthing: Syncing...
tags: software, file-synchronization
date: 2014-07-05 22:06
format: md
;;;;;

[SyncThing](http://syncthing.net/) is a very interesting distributed
file sharing option. It is a lot like (what I understand of) Dropbox
and the file sharing capabilities of ownCloud, as well as
SparkleShare, SeaFile and others. The biggest difference compared to
all of these, though, is that SyncThing is distributed, or
peer-to-peer, there is no central server used in the file sharing.

Setting it up is a breeze. Install it, run it and you're almost done.
Once you have it installed on at least two computers (or know someone
else who has installed it), you have to let them know eachother. You
do this by exchanging their node ids. SyncThing know two things: Nodes
and Repositories. Nodes are the different machines you want to share
with and repositories are the different directories you want to share
with certain nodes. Exchanging node ids requires an actual exchange.
If you're managing both machines yourself it shouldn't be too hard to
manage, if you're sharing with someone else you need another channel
of communication to get this data across. Once you've exchanged node
ids and your firewall is setup properly (it needs to let through a
special TCP port for global discovery) your machines will connect. If
you're both on a local network it should happen quickly, if you're
across a large gap of land it should still happen fairly quickly.

After both your machines are connected, or even before, you should
setup some repositories and share them with the node you just
connected with, otherwise nothing will happen. Again there's some
communication involved here, because both sides will have to share a
repository with the same name. If either side doesn't share a
repository with the other side, it won't sync. After you've
communicated which names to use, though, all should go smoothly. It
check once every 60 seconds whether or not anything's changed and if
it has it'll try and sync with the other machine(s).

One downside to this program, at least on Linux, compared to ownCloud,
at least using the ownCloud Client, is that there is no notification
of newly arrived files. So again you'd have to send the person owning
the node you're sharing with a message telling them that something new
should be waiting for them.

A very nice thing on the other hand, is that everything is encrypted.
And because there's no central server involved, only the people you
choose to share with (and possibly they choose to share with) will
have the files. There is no single server that can get hacked into
where all your files can be found. It's also open source, which of
course makes it possible for you, or anyone else, to look at, improve,
audit or do anything with the code you want to or need to to ensure to
yourself that it's not doing anything it shouldn't be doing.

I haven't been able to test it thoroughly in the real world. I'm
currently just sharing between my desktop PC and my laptop, and I'm
sharing with a good friend of mine. So I'm looking forward to seeing
more of it.

<!-- Local Variables: -->
<!-- mode: markdown -->
<!-- End: -->
