I have two laptops, two servers, a phone, and a tablet. I have a variety of content and media spread across all of these devices. Some of the data can only live in one place. I can’t put my employer’s files on my personal devices, and I elect not to put some personal data onto my employer’s laptop. But some data, like my todo list or my collection of notes, I do want to have available on whichever device I might have at hand.
Dropbox was the first real solution for me to this problem. It was easy to enable synchronization of my data through Dropbox. I pretty quickly hit the 5GB limit they offered to free accounts, so then I needed to start selecting which data to synchronize, rather than just sync all of it. Google Docs, and eventually Google Drive, offered much the same value with greater capacities, but many of the same technical and operational challenges.
All of these offerings had one major problem: my data resided elsewhere, outside of my control. It’s not that I worry that Dropbox or Google employees will be looking inside the contents of my files. It’s just a personal preference to have more control over my stuff. Even a service like Spideroak, which makes it impossible (or purports to, at any rate) for employees to access the contents of my data, still don’t sit quite right with me. What happens if one of these providers has an outage? What happens if they change their pricing model, or simply close up shop?
ownCloud was a very appealing solution for me for a long time. I installed and managed ownCloud, and used it to solve a variety of data sync and sharing issues. The recent ownCloud / nextCloud split left me pretty dissatisfied with both options, and I’ve also started to realize that even ownCloud isn’t quite what I want in a solution. ownCloud offers a lot of functionality I simply don’t use; and while it’s neat that it can edit a variety of documents online, the reality is that I don’t want to use my browser to edit all of these kinds of documents. Additionally, managing ownCloud’s dependencies on my server is getting tiresome: I support technology all day long professionally. In my personal life, I want greater simplicity.
I recently discovered Syncthing. It offers a slightly different approach to file synchronization than other tools. It uses a global discovery server, but all data transfer is only between devices participating in a shared sync. This means that my laptops and my phone send data only to each other, and not via a third party (outside of the ISPs involved in moving the bits, obviously).
Syncthing allows me to choose which directories to share. It also lets me share different directories with different devices. This means I don’t need to sync all of my data with all of my devices: I can instead sync just the things I need.
Syncthing is open source, which is important to me. It’s a single binary that listens on a single port, which makes it play well with home routers and firewalls. It offers a relatively easy way to configure it, and has a strong focus on security. The documentation was clear enough to get me up and running very quickly. I now have a Syncthing daemon running on my Mac laptop and on my Fedora server. I’ll be installing it on my lesser-used Fedora laptop soon enough. I’m basically using my server as a backup copy of some variable data, in the event of problems with my laptop. But I could easily use the data on my server just as easily as I use it on my laptop.
I’ve also installed the Android Syncthing client onto my phone. I’ve configured this to run only on demand, rather than all the time, so as to minimize battery drain. I don’t need to sync things to my phone in realtime all the time. I’m content to launch the client as needed to fetch the latest data, and leave it running while I manipulate things. When I’m done, I shut the client down.
So far, I’m quite pleased with Syncthing. It has opened up some new conveniences for me, and I’m looking forward to being better organized.