Personal “cloud” storage without anxiety
I built a minilab server rack, the hardware is done (for now) and I've provisioned a lot of stuff on it that I'm using pretty much every day. What was missing though was "cloud" storage that I can use reliably instead of Apple iCloud+ or other public cloud storage. Before now I've been too anxious about hosting my own storage after some pretty scary data losses when I tried to do this a few years ago with Nextcloud. This time I think I've worked it out using Syncthing, at least for the near future as I continue to prove it out to myself.
Building a personal cloud with Syncthing
I've used Syncthing before for syncing files between devices without a central always-on server. Now that I've got reliable, properly configured, and well-spec'd servers with plenty of storage (and backups!) I have a perfect environment for another go at a personal cloud. The key to getting it right however is understanding how the Syncthing UX works to encrypts data, and the hub & spoke architecture.
- The "hub"...
- The "spoke" or client device...
This architecture kinda results in a cloud storage system where your data is fully accessible from anywhere regardless of what device is on or off, synced as changes are made to your data, and completely encrypted end to end.
How though?
For this to work there are some rules you need to follow:
- Mark the hub server device on your clients as untrusted
- Set up folders on your client devices first
- Folders that are part of the "cloud" are always shared with the hub
That's it really. Using this method you could even rent a VPS from a cloud provider and throw your files up there, just make sure to mark those hub servers as untrusted.
There is one caveat with this; untrusted devices cannot act as introducers. My workaround is to mark each of my devices as introducers, ideally I want all the devices in my Syncthing network to be meshed together as well.
Alternatives
Landing here after what feels now like a journey around the world of cloud storage providers makes a lot of sense. I think open source and personal clouds are becoming more important with the ever increasing costs of subscriptions (thanks AI) and enshittification going on. For many this isn't a necessarily something to be solved or changed either, and even if it was the open source alternatives aren't exactly non-engineer friendly yet.
OwnCloud
I tried to make OwnCloud work for a good few weeks, until I needed to move a VM disk and the underlying files... I didn't move the files in the right way and the OwnCloud installation lost everything. Turns out they store file metadata on the files themselves which wasn't copied when I moved things around. Immediately killed it after that. My files need to remain portable.
Nextcloud
The big name in the personal cloud space, I have had many battles with this one. The latest iteration was using Nextcloud AIO, which works much better than previous installations where I was managing the infra myself. Unfortunately it's still heavy, it does too much, and it's a pretty big maintenance and security burden. I need simplicity and peace of mind.
Filebrowser Quantum & Copyparty
These aren't really syncing clients, they technically do exactly what I'd want, but there's friction involved in managing my files through a web interface. Copyparty in particular looks fantastic but I've learned that I'm looking for file sync, not a file browser.
Public Cloud
I've tried Apple iCloud, MEGA, pCloud, Google Drive, Dropbox, Tresorit, OneDrive, Sync.com, and a few others that have since gone under or been acquired. These are all great options (except for OneDrive at this point) and work extremely well but I have my own hardware now and the skills to manage it, and a strong sense that public cloud is going to become more hostile in the future.
Closing thoughts
I haven't touched on multi-user support or backups here but at least for now I'm confident in Syncthing being the tool to use going forward and can wholeheartedly recommend giving it a shot at replacing your public cloud storage providers if you've got ownership over an always-on server.