Restic – Simple Backups
github.com
github.com
It has a paid GUI version, $20 for the first year and $5 for subsequent years with discounts for multiple machines [2]. At least once they've run a promotion for a very cheap lifetime license.
Use it just from the CLI is free.
My setup is pretty simple, Syncthing and Duplicacy (GUI version) run in a docker container on my home server. Everything gets sync'd to the server and then Duplicacy backs it up hourly to a Hetzner Storage Box and BackBlaze B2.
The deduplication is a huge data saver on the cloud storage especially for pictures or videos that may be on multiple computers and different syncthing folders.
[0] https://duplicacy.com/ [1] https://github.com/gilbertchen/duplicacy [2] https://duplicacy.com/buy.html
restic on the other hard is still incredibly slow, but ships as a single binary, and has served me well — during backups as well as restores.
I just wish backup tools shipped with standard systemd units, instead of having to copy, customize and stick into cron my hand-made /usr/local/bin/backup.sh script. Thank God for healthchecks.io that lets me know if backups stop working before it's too late.
(Not affiliated with any of these services, just a happy user)
Restic's performance to scan the local disk depends on the target you are storing the backup at. I switched recently from a local NAS server to AWS. Before that change scaning 300 GiB of data took 1 min, now it takes more than an hour.
I think it could be included in default in Linux distributions. Perhaps it could be integrated into Deja dup (default , not experimental) and gnome. A GUI for restic in gnome!
I use bash scripts and have a ntfy.sh update if it fails.
Recommend it. Main issue with borg was a gigantic cache.
I personally use this Ansible role [1] to deploy restic and then just configure my buckets with the ACLs described in the README and a lifecycle policy so that an override of a file creates a new version instead. Currently I have it so old versions expire on their own, and no one except the account admin can delete them.
[0] https://ruderich.org/simon/notes/append-only-backups-with-re... [1] https://gitlab.com/byh0ki-org/infra/ansible/roles/restic/