Tools on top of restic?

Hi!

First thing I want to say. Restic. Is. Awesome. It’s like Docker for backups. And my problem is I want to build a little Kubernetes on top of your Docker.

I know that today there is autorestic, restic-PyBM, prestic, and restic-robot. One provides cron-like scheduling, another provides metrics, and each of them has some configuration format. Oh, and there’s also backupninja, that I didn’t tried yet.

I want to have some high-level concepts or enterprise features that Restic doesn’t have:

  • Web UI.
  • REST API plus WebSocket endpoint.
  • Extensibility, that means some (web)hooks, authentication providers support, and so on.
  • Maybe RBAC or other way to provide read-only or partial restore scenarios of some backups.
  • Controller/Agent model, where Controller has database, API and scheduler, and agents do backup/restore tasks.
  • Pluggable integrations with backup sources (databases, storage systems), monitoring systems, credential managers (Vault).
  • Configuration. Personally, I want to try out Terraform language, aka HCL.

My question is not “Am I insane or yes”. I want to ask developers (especially the ones that reads feature requests) and end users: What features users wants? What interesting features do you wanted to see in restic, but they’re outside of his borders?

Thank you.

  • Igor
2 Likes

Hey @kam1sh

You might want to take a look at Relica. It was developed by Matt Holt, author of Caddy Web server, CertMagic and more. It provides a GUI and is built with restic so it’s designed to be more accessible than restic on it’s own. However, there’s also a CLI for users with a bit more technical know-how.

As Matt explains below, the software has some built-in settings designed to make backing up less of a headache. There’s a good explainer already posted, although the software has been updated a few times since. If you try it out, I’d love to hear what you think as I’m managing the software.

1 Like

Relica has since been sold by Matt to someone else - not that it would matter much, but to some it might. https://mobile.twitter.com/mholt6/status/1428739966029336577 + somewhere he confirmed the sale.

I think this one is just excellent: GitHub - creativeprojects/resticprofile: Configuration profiles manager and scheduler for restic backup

Here’s a curated list of awesomeness too: GitHub - rubiojr/awesome-restic: Awesome Restic related projects

4 Likes

Resitc was originally designed to backup one device to one other.
Features which users have pushed for:

  • backing up to internet sites for offsite protection. Efficient use of local and remote backups so that restores will try to use a local backup but will automatically use the offsite if necessary.

  • having multiple backups in case some are damaged

  • backing up one machine which has multiple users but being able to keep permissions correct and allowing users to be able to restore their own files but not the files of others.

  • efficient backup of a large number of similar machines. For example backing up all workstations in a corporation where the os is controlled.

  • Restic can detect if hashes are not correct but does not have a builtin feature to store more bits to be able to recover from the occasional bit flip from a bad disk. This might be solved by using a RAID system.

  • passwords cannot be changed. When an employee leaves changing passwords is common or expected but the backups would have to be restored and reencrypted.

  • Perhaps a better or different method of tagging backups and efficiently forgetting and pruning. For example should files which have been changing every hour be backed up in a slightly different manner because the backups will likely be deleted soon?

  • Can compression on files be done before encryption so the backup is smaller?

  • Integration with operating systems which use a file system which has snapshots, or Window’s File History.

1 Like

First of all, I know this is not what you asked, but I just want to make it clear that I want restic to be as simple as lightweight as possible. The one-job philosophy if you will. I would much prefer development to focus on portability, stability, performance and safety rather than adding new features.

That said, having tools/UI/APIs that work on top of restic would be great. Personally the main things I enjoy when using a backup software with a UI (e.g. Arq Backup) are:

  1. Live backup status.
  2. Backup file browser (I’m on a Mac so no mounting for me).
  3. Configuration.

One of the things I do worry about sometimes is forgetting where I’ve backed up what. Having some sort of unified global configuration/cache/status state/UI thing would be great. Arq does this (although not perfectly), but I do worry also with Arq that if I loose my laptop I will have to spend hours re-connecting all my backup locations and browse through them manually to figure out where stuff is. Having some sort of configuration that could be synced and recovered would be great. I’m currently using nix home-manager for this, and it works well, but it requires a lot of customization to e.g. encrypt environment variables etc.

2 Likes

Just use resticprofile which I linked to above :wink:

2 Likes

I wanted a couple of features outside of restic’s mission, so I ended up building a CLI / GUI app for restic which works under Linux and Windows, called NPBackup, that adds:

  • Prometheus backup result export and upload to push gateway
  • Config file encryption
  • VSS fallback
  • Cloud files ignore option (nextcloud, onedrive etc which only have junction points to the file in the cloud
  • File browser
  • CPU and IO priority settings
  • Optional end user GUI for self care (it’s optional because the app can run headless in CLI mode)

@kam1sh Especially RBAC would be required for restic multiple hosts to deduplicate into the same repository.

My main missing feature as of today would be restic allowing to run housekeeping (forget & prune) on repositories without being able to read the repository content, thus allowing a “special housekeeping client” to handle the operations directly on the machine rest-server / S3 resides, while still guarantee that only the end user can access / restore it’s files.

1 Like

@joistef Thanks for the info!