Switching backups to Restic

I have used Duplicati uneasily for some time to back up my personal server which hosts Nextcloud and other bits.

My needs are extremely modest, <100Gb across roughly 20 snapshots, with little data removed between each snapshot, only added. In a DR situation, Duplicati makes me wait >6h while rebuilding it's database, before I can even begin the restore process. The database is metadata only & <500Mb. I'm not comfortable relying on this process due to the time, reliability & transparency of it.

Storage is cheap, really cheap. At my scale (or even 100x my scale) backing up (& restoring!) my data with a couple of different methods simultaneously is a no brainer & so I've been feeling out a few alternatives over the last few months including Restic, Duplicity & others.

Restic mount

One feature of Restic has really stood out for me.

Imagine you want to find the oldest snapshot containing a file, because it was modified in more recent snapshots? Restoring often is not just a matter of combining the right parameters to restore what you require. Sometimes, you first need to interrogate the backup archive to discover what you want to restore in the first place.

Most of the options I've considered have their own nuanced command line interfaces full of gotchas & that includes Restic, but restic mount feels magic:

$ mkdir tmp-restore
$ restic mount tmp-restore/
repository e9f7270e opened successfully, password is correct
Now serving the repository at tmp-restore/
Don't forget to umount after quitting!

And in seconds, your repository is fuse mounted and ready for interrogation however you fancy:

$ ls -l tmp-restore/snapshots/
total 0
dr-xr-xr-x 4 pricey pricey 0 Aug 31 22:32 2019-08-31T21:32:41Z
dr-xr-xr-x 4 pricey pricey 0 Sep  1 04:00 2019-09-01T03:00:17Z
lrwxrwxrwx 1 pricey pricey 0 Sep  1 04:00 latest -> 2019-09-01T03:00:17Z
$ head tmp-restore/snapshots/latest/nextcloud/config/config.php 
 
  array (
    0 => 
    array (
      'path' => '/var/www/nextcloud/apps',
      'url' => '/apps',
      'writable' => true,
    ),

It's not a unique feature (at least Borg also has it) but I think it's worth shouting about.