For example, iOS has these features:
- iCloud backup restore or peer-to-peer transfer, very early in the device setup process
- Two ways for things to be stored in iCloud, each with a corresponding list of per-app (not per-folder) toggle switches in iCloud Settings
- “Saved to iCloud” normal syncing
- Requires apps to use the right APIs and to handle conflicting changes
- Allows same data to be read and modified by multiple devices
- iCloud backup
- Available for all apps
- Separate backup per device
- Only downloaded when setting up a new device
- In app sandboxes, only excludes
tmp
(Flatpak equivalent is somewhere in/run
) andLibrary/Caches
(equivalent tocache
directory in Flatpak sandbox) by default - Allows apps to set
isExcludedFromBackup
attribute for specific files (useful for things that are easy to recreate via download but are expected by the user to not be automatically deleted) - Includes system configuration such as home screen layout
- Backs up a list of installed apps without backing up their executables and assets
- “Saved to iCloud” normal syncing
- Synced list of previously installed apps, not separate per-device
you want a solution for your computer? or for your phone?
if it’s for your phone and it is still iOS then no, the Apple Ecosystem is closed, there are some reverse engineered offers but they tend to be patched out or not be reliable.
Support for both iOS and GNU + Linux is a noteworthy convenient feature of a syncing system, but I’m more focused on what’s currently available on GNU + Linux, which probably needs to be built upon to replicate Apple’s level of quality.
As others suggested the backend is probably already installed on most computers but not setup, namely :
- ssh to manage passworldless across multiple computers (you need that for data to be safe)
- scp/rsync/rdiff-backup to actually copy the data thanks to ssh keys
One could imagine a dedicated user per machine that is for read-only of data (maybe after some encryption, limited to very specific directoriess) and another for storing only of data (with no access except to write on disk and with a maximum quota).
What this highlight though is that the centralized managed cloud model is challenging to replicate as purely p2p at home, namely backing up your phone to your desktop might be find but the other way around, probably not. Maybe even more challenging, what do you actually backup? I would argue your home directory but… clearly not your e.g. Steam games (humongous) or other backups or video files downloaded from the Web. So… probably a select set of directories in home then, but which ones? ~/Documents only? This specific part implies some decision from the end user.
Anyway I believe all the tools are there, but I think what most people lack is to view the result and for that maybe some equivalent of https://gitlab.com/ikus-soft/rdiffweb/ which shows when was the last backup done, how big it was, etc basically some form of visual to feel safe.
Finally to skip the CLI key management part the closest I know, for end users, is KDE Connect https://kdeconnect.kde.org/ which I discovered after building my own https://git.benetou.fr/utopiah/offline-octopus kind of equivalent, namely a way to use devices on LAN. Backup is not a default feature though but could be.
Linux Mint + Filen
Maybe nextcloud? IDK I just use Borg. But Nextcloud allows that type of syncing that you describe, I think. I run a small nextcloud server for other purposes and don’t use that feature.
https://gitlab.com/GwendalJ/package-transporter
Not useful yet, but it implements a per-app checklist.