# revocatio [![builds.sr.ht status](https://builds.sr.ht/~reesmichael1/revocatio.svg)](https://builds.sr.ht/~reesmichael1/revocatio?) A health monitor for your backups. ## Summary (For a detailed breakdown, consult [the project wiki](https://man.sr.ht/~reesmichael1/revocatio), but here's an overview copied from there.) `revocatio` is _not_ a backup tool itself. It cannot and will not make backups of your computer, databases, or anything else you have running. `revocatio` _is_ a tool to verify that your backups (written by other services) are where you expect them to be, being updated, and still valid. A common usage is to schedule it to run daily as a cron job or similar. It will then look for the backups specified in its configuration file and check a variety of criteria for each one. For example, all of the following checks are possible: * For backups that are simply written to a file, is there a file with the correct title larger than 1 MB written within the last two days? * For backups made with [BorgBackup](https://borgbackup.org), is the most recent archive from within the last day? Does it pass `borg --verify-data`? * For backups of a Postgres database made with `pg_dump`, are the backups present and recent enough, and do they successfully extract with `pg_restore`? Furthermore, `revocatio` can be configured to run any command--such as sending an email--when any checks fail. To get started, run `revocatio --create-config` to scaffold the default configuration. You'll need to edit the newly created file to match your setup (see the command output to find out where the file is located). ## Installing If you have a [Rust](https://rust-lang.org) toolchain installed, `revocatio` can be installed with [cargo](https://doc.rust-lang.org/cargo/): ``` cargo install revocatio ``` The current stable release is v0.1.0. Don't let the low version number scare you--`revocatio` is well tested, both in its own test suite and in real world usage! ## Features `revocatio` recognizes several backup formats: - [BorgBackup](https://www.borgbackup.org) - Compressed/plain files - `pg_restore` dumps from a database [Other formats are planned](https://todo.sr.ht/~reesmichael1/revocatio?search=status%3Aopen%20label%3A%22new-format%22), and patches with formats you would like to see included are welcomed! You can also request support for a new format by emailing [the project discussion list](https://lists.sr.ht/~reesmichael1/revocatio-discuss). ## Contributing Please send any contributions to the [project development mailing list](https://lists.sr.ht/~reesmichael1/revocatio-dev). If you're unfamiliar with sending patches to a mailing list, check out [this guide for getting started](https://git-send-email.io). Also, please ensure that you run these commands before mailing the development list: ``` git config format.subjectPrefix 'PATCH revocatio'. git config sendemail.to ~reesmichael1/revocatio-dev@lists.sr.ht ``` ## Resources Documentation is available on [the project wiki](https://man.sr.ht/~reesmichael1/revocatio). You can ask any questions you may have about the project on the [general discussion mailing list](https://lists.sr.ht/~reesmichael1/revocatio-discuss). Please file any bugs, improvements, feature/format requests, etc., on the [project ticket tracker](https://todo.sr.ht/~reesmichael1/revocatio).