Moving from SpiderOak to Syncthing for local Sync
Firstly, I know there are simpler ways to deal with the following problem, but just bear with me!
At home I regularly work between 3 machines - my desktop workhorse Windows 10 box, my Linux laptop (an 8 yr old ThinkPad), and sometimes the family Dell XPS Windows 11 laptop. I need to have my ‘current projects’ folder sync’d between these machines, which comes to about 300MB of mainly text and small image files.
I really only do the photo and video stuff on the desktop, but the text work (personal projects, writing, notes and so on) I like to work on from one of the two laptops.
I used to keep these in sync using SpiderOakOne, which was also (and still is) my online backup service. The sync functionality is a kind of side benefit of the SpiderOak system, and has the upside that my other machines don’t need to be on at the same time, they just update from SpiderOak the next time they’re switched on - yes, I keep my systems powered off for the most part.
The main problem was that sometimes it would take a long time to sync, and now and then files would be missed, meaning a lengthy refresh on a machine. To be fair again, it’s not the application’s main usage - it’s fine at doing secure backups.
So what were my options? Since I use Linux, ‘shared drive’ solutions like OneDrive or GoogleDrive are awkward from the desktop.
I went looking for an open source sync solution with solid security, was fast, ran on Linux and was somewhat configurable. (It was that or a horrible roll-my-own combo of rsync and robocopy).
Eventually I found Syncthing, and got it up and running on those three machines, but then I found an issue - I needed to have two on and syncing to propogate changes and updates, so not a whole solution.
Therefore I went where you always go with a minor technical issue around the house - I built a Raspberry Pi 2 instance to act as an ‘always on’ device!
This means if any of my machines are powered on, they can sync to the Pi and any other machine configured for it, and then I can shut them off with their updates present on the Pi.
When I go to another machine, it too syncs with the Pi at boot and gets those updates. So far this sync has functioned much quicker than SpiderOak ever did, and I can control how each machine connects and quite a bit more.
I can also setup snapshots, deletion and versions in case I accidentally delete something. I can also limit it to a specific VLAN if needed, which I wanted to - just have it on one of my local networks.
It’s been a bit over a month, and so far, no issues at all; the app is stable on all platforms, and doesn’t use much in the way of resources - certainly less than SpiderOak, especially with disk space - as either part of the backup, SpiderOak can take up quite a lot of space for its local databases.
As with any service, there was a few firewall ports to gice access to, some startup config, and that really was it for a basic install.
Having the Pi ‘in the middle’ is working nicely too, and whilst I worry about integrity on that SD card, the app and services on the Pi are monitoring and should catch anything. Hopefully.