resticprofile

Configuration profiles manager for restic backup

resticprofile bridges the gap between a configuration file and restic backup. Although creating a configuration file for restic has been discussed, it remains a low priority.

With resticprofile:

  • No need to remember command parameters and environment variables
  • Create multiple profiles in one configuration file
  • Profiles can inherit options from other profiles
  • Run the forget command before or after a backup (in a section called retention)
  • Check a repository before or after a backup
  • Create groups of profiles to run sequentially
  • Run shell commands before or after running a profile, useful for mounting and unmounting backup disks
  • Run a shell command if an error occurs
  • Send a backup stream via stdin
  • Start restic at different priorities (Priority Class in Windows, nice in Unix, and/or ionice in Linux)
  • Check for enough memory before starting a backup
  • Generate cryptographically secure random keys for a restic key file
  • Easily schedule backups, retentions, and checks (supports systemd, crond, launchd, and Windows Task Scheduler)
  • Generate a simple status file for monitoring software to ensure backups are running smoothly
  • Use template syntax in your configuration file
  • Automatically clear stale locks
  • Export a prometheus file after a backup or send the report to a push gateway
  • Run shell commands in the background when non-fatal errors are detected
  • Send messages to HTTP hooks before, after a successful or failed job (backup, forget, check, prune, copy)
  • Automatically initialize the secondary repository using the copy-chunker-params flag
  • Send resticprofile logs to a syslog server
  • Prevent the system from idle sleeping
  • View help for both restic and resticprofile via the help command or -h flag
  • Avoid scheduling a job when the system is on battery
  • [new for v0.29.0] Schedule a group of profiles (configuration v2 only)

The configuration file supports various formats:

  • TOML: files with extensions .toml and .conf (for compatibility with versions before 0.6.0)
  • JSON: files with extension .json
  • YAML: files with extension .yaml
  • HCL: files with extension .hcl