Greetings Allison, Steve, and my fellow Nosillacastaways. Bill here with too many problems to solve but for one; I am a grouchy obstinate old geek that is headstrong when it comes to computers. As the old saying goes, I hate all computers, I just hate my Macintosh the least.
Despite being a long-time user of Dropbox there is one thing I have always hated–everything has to go into that one silly Dropbox folder. iCloud has its own folder, and OneDrive has its own folder. They force me to use their directory to use their syncing. My Dropbox folder is a real mess.
I need a syncing solution that allows me to say, “Sync this directory, that directory, and another one on this computer but over on that computer those same directories can be anywhere I want them to be even with different names. Furthermore, I have a folder I want to sync with my friend over there and no one else. Oh wow, how about something really silly (and this really just happened), I want to synchronize a folder in Dropbox on my Mac with a folder in OneDrive on my friend’s computer and a folder on a Linux server that doesn’t have either. I need the power!
Enter Syncthing at syncthing.net. Syncthing in simple terms is a private, secure, and free Dropbox limited only by the size of your hard drives. Its only downfall is it has no iOS capabilities directly although that doesn’t stop me. The Syncthing developers are very proud of how Syncthing is very “open” as in it is based on an open protocol, is open source (available on GitHub), open and active development, and open to discussion regarding that development. It works on the Mac, Windows, Linux, several BSD flavors, and a couple of others.
On the Mac there are two ways to install Syncthing; you can download a binary installer which turns a mostly command line app into what looks like a native Mac application. You can also install it using Homebrew but it isn’t as Mac-like. I recommend the official binary installer found at Github. It just makes life easier.
Once installed, most people configure it using the admin GUI which runs on a built-in web server that was installed and launched by Syncthing. You access it using any browser located on the computer on which Syncthing is installed. If you used the binary installer on the Mac, it is as easy as selecting Open from the menu bar.
You can also install it remotely say on a Linux server like I did using the command line. After installing, you first make a couple of configuration changes on that remote computer, primarily to give remote access to the admin GUI. After which you use a web browser to finish the configuration. But when working on Macs (or Windows), the setup is mostly painless and obvious when you use the installer.
It is important that I point out, because Syncthing has a lot of options and ways of doing things, some people find it intimidating. However, the documentation is well-written and provides all the answers you need to get up and running. I found that I could quickly get two Macs syncing with each other within 15 minutes using the basic configuration and very little reading of the docs.
Because of the way it works, I didn’t have to worry about IP addresses. Each computer is given a Syncthing ID which you use to connect the two since part of Syncthing’s protocols involves discovery servers and relay servers which makes connecting computers all over the place easy and because everything is encrypted, secure.
Once set up, it works just like Dropbox. If I do something on one computer it is eventually changed on all the remotes. Now, the keyword there you may caught on to is eventually. Sometimes Syncthing isn’t necessarily fast at synchronizing. I truthfully haven’t noticed it but others sometimes complain about the speed. Apparently, this is due often to someone incorrectly configuring Syncthing by messing around with things that not ought to be changed but sometimes it is due to the way it moves data across the network.
It encrypts and breaks the data up into blocks to transfer the data sort of like BitTorrent but it is not the same protocol so no worries there. Ironically, because of the way it transfers data, the more computers you synchronize to, the faster each computer may be updated.
Bonus: The data transfer method also means very large file transfers are not a problem.
As I said, I want the power and Syncthing does its best to give it to me with all kinds of options. For example, I have Syncthing watch a directory that contains my active projects. My projects mostly are git repositories but it can be a waste of space and bandwidth to synchronize the hidden .git directory not to mention an occasional git merge conflict. Syncthing allows one to exclude files and directories by name or even regular expressions per folder and per computer. That way, my local copy of a website under git can synchronize with a website on a web server but there it doesn’t have the thousands of hidden git files. I have the power!
I have been using Syncthing for several years with no issues and a lot of peace of mind that those things that I wanted sync’d are done so securely and without issues. As I have changed computers, added and removed folders to be synchronized, and even replaced my main Mac after a catastrophic failure, I haven’t lost any data that was synchronized. So if you want your own private and secure and free Dropbox-like experience, check out Syncthing.