I've been investigating self-hosted Dropbox alternatives. Partly privacy, partly due to running low on space all the time. Based on time
investment, it would have been cheaper to just pay Dropbox but here we are.
Requirements
- multi-OS. At a minimum need support for Android, Linux, Windows, & macOS.
- revision control. At least be able to undelete files. Preferably fewer steps than git; just want to save and have it autosync
- handle conflicts. Don't blindly overwrite! Dropbox's approach is fine here, just create duplicate files and I'll resolve conflicts manually.
- uni or bidirectional sync. For some folders, such as ebooks, I just want to push them to a device but not have that device send anything back. This is the case for most things on phone. Other than photos, very little of what gets downloaded on phone should come back. Maybe Downloads folder could go to a common 'Downloads' dumping ground
- sync single folder. While I'll try keeping a single root "Sync" folder, I'd like to be able to add random folders to sync
- ignore files in a folder. I had a desire for this at some point, though cannot remember what it was for
For no reason in particular, the current shortlist is Syncthing and Nextcloud. For score reasonably green on Wikipedia's Comparison of file sync software. Also considering Seafile, but have not looked for into it yet.
Syncthing
This seems like a Dropbox replacement.
- peer-to-peer sharing, can turn off server whenever and it will sync later
- sync single folders, share individual folders with devices
- block-level transfer - faster sync of diffs
- may get confusing if I have folders with same name from different devices. e.g. 'Music' is a different thing on Phone vs Media pc
Nextcloud
More of an application suite that also does file sync.
- good UI and setup process (docs, letsencrypt etc). Took 10 mins to install and setup.
- User management and admin-y stuff. Good to share links/files easily
- some internet reports of slowness after using for a while. Hard to guage without using for a while, but would want to keep exit strategy in mind.
- less obvious about volume location. Docs say it's easier to nuke/restart than move storage location which is not great
At this stage I've installed both Nextcloud and Syncthing, and doing some trial syncs for a few different workflows. Will try adding a tonne of files to Nextcloud and see if I get any slowdown or resource usage. Would be happy enough to continue using both, use Syncthing primarily, and as a backend for Nextcloud files, then use Nextcloud for more application-y stuff.
Next thing to look into is backups.