Disclaimer: This is not a April Fools post
I currently have three devices which I use for work and personal matters. Having documents and other files synced between them is a really big quality of life improvement. Being able to edit a TODO checklist on my home desktop and edit later on my work later is fantastic.
While using cloud utilities like Google Drive I ran into major issues, having the possibility of my account being deleted for no reason, having to use a proprietary (and sometimes hard to install) program to actually sync the files, or having only a few gigabytes of storage.
That’s when I discovered Syncthing a few years ago, and while I’ve used sparringly over the times, it’s rock solid nowadays and I depend heavily on it.
Syncthing is a open source file syncing program that makes it easier for computers to share files between them. A folder can be shared between multiple computers and changes are propagated with a matter of seconds.
Syncthing uses a few relay servers, which you can self-host if you want, to make discovery between devices easier, and the protocols are open, if you want to check it out.
If you have a VPS (or any always on computer), you can share folders to it and with all your devices and you’ll have a simple and highly available file sharing setup, which will always be synchronized.
As a simple use-case, I’m currently editing this blog post in a markdown file in my phone which is in a folder syncronized with Synthing. Every file change triggers a rescan which syncs the modified files to my other devices. I will later on move to my desktop to finish this article and push it into my blog repo.
Another feature is that you can encrypt certain folders on certain devices if you don’t fully trust them. If, for instance, you have a server in a insecure cloud, you can share the folder from multiple devices with the same encryption key and that folder on the server will still be accessible from both devices, but not from the server. Do note that this feature is still not implemented on android devices as of this post.
Syncthing also implements optional file versioning, ignore files, configurable rescan intervals, and all in a nice to use web interface.
However, do note that Syncthing is not a backup strategy. A modification made or a corrupted file in one device will be synced in all devices. Even with file versioning, is better to be sure. I highly recommend restic or borg for that purpose.
Syncthing is helping me be more productive, I have my notes shared with all my devices, I no longer lose notes because I forgot on my desktop while being outside, my retroarch save/state files and my music files are also being shared with Syncthing. It’s a fantastic piece of software and I highly recommend it.