From 0e90a80680a284b800b41581ae7398d0856b0a4a Mon Sep 17 00:00:00 2001 From: Dan Helfman Date: Thu, 9 Jun 2022 13:41:22 -0700 Subject: [PATCH] Add links in documentation for ntfy monitoring hook (#543). --- NEWS | 2 ++ README.md | 1 + docs/how-to/monitor-your-backups.md | 20 +++++++++++--------- docs/static/ntfy.png | Bin 0 -> 10266 bytes 4 files changed, 14 insertions(+), 9 deletions(-) create mode 100644 docs/static/ntfy.png diff --git a/NEWS b/NEWS index fd58490..c640d13 100644 --- a/NEWS +++ b/NEWS @@ -3,6 +3,8 @@ for hunting down that file you accidentally deleted so you can extract it. See the documentation for more information: https://torsion.org/borgmatic/docs/how-to/inspect-your-backups/#searching-for-a-file + * #543: Add a monitoring hook for sending push notifications via ntfy. See the documentation for + more information: https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/#ntfy-hook * Deprecate "borgmatic list --successful" flag, as listing only non-checkpoint (successful) archives is now the default in newer versions of Borg. diff --git a/README.md b/README.md index 24a1324..310d23a 100644 --- a/README.md +++ b/README.md @@ -71,6 +71,7 @@ borgmatic is powered by [Borg Backup](https://www.borgbackup.org/). Cronitor      Cronhub      PagerDuty      +ntfy      BorgBase      diff --git a/docs/how-to/monitor-your-backups.md b/docs/how-to/monitor-your-backups.md index ea9f001..615a5a8 100644 --- a/docs/how-to/monitor-your-backups.md +++ b/docs/how-to/monitor-your-backups.md @@ -38,17 +38,19 @@ below for how to configure this. borgmatic integrates with monitoring services like [Healthchecks](https://healthchecks.io/), [Cronitor](https://cronitor.io), -[Cronhub](https://cronhub.io), and [PagerDuty](https://www.pagerduty.com/) and -pings these services whenever borgmatic runs. That way, you'll receive an -alert when something goes wrong or (for certain hooks) the service doesn't -hear from borgmatic for a configured interval. See [Healthchecks +[Cronhub](https://cronhub.io), [PagerDuty](https://www.pagerduty.com/), and +[ntfy](https://ntfy.sh/) and pings these services whenever borgmatic runs. +That way, you'll receive an alert when something goes wrong or (for certain +hooks) the service doesn't hear from borgmatic for a configured interval. See +[Healthchecks hook](https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/#healthchecks-hook), [Cronitor hook](https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/#cronitor-hook), [Cronhub hook](https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/#cronhub-hook), -and [PagerDuty -hook](https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/#pagerduty-hook) +[PagerDuty +hook](https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/#pagerduty-hook), +and [ntfy hook](https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/#ntfy-hook) below for how to configure this. While these services offer different features, you probably only need to use @@ -270,9 +272,9 @@ If you have any issues with the integration, [please contact us](https://torsion.org/borgmatic/#support-and-contributing). -## Ntfy hook +## ntfy hook -[Ntfy](https://ntfy.sh) is a free, simple, service (either hosted or self-hosted) +[ntfy](https://ntfy.sh) is a free, simple, service (either hosted or self-hosted) which offers simple pub/sub push notifications to multiple platforms including [web](https://ntfy.sh/stats), [Android](https://play.google.com/store/apps/details?id=io.heckel.ntfy) and [iOS](https://apps.apple.com/us/app/ntfy/id1625396347). @@ -281,7 +283,7 @@ Since push notifications for regular events might soon become quite annoying, this hook only fires on any errors by default in order to instantly alert you to issues. The `states` list can override this. -As Ntfy is unauthenticated, it isn't a suitable channel for any private information +As ntfy is unauthenticated, it isn't a suitable channel for any private information so the default messages are intentionally generic. These can be overridden, depending on your risk assessment. Each `state` can have its own custom messages, priorities and tags or, if none are provided, will use the default. diff --git a/docs/static/ntfy.png b/docs/static/ntfy.png new file mode 100644 index 0000000000000000000000000000000000000000..641ccfdfc293c46c534c0a1c27cca24b62df6807 GIT binary patch literal 10266 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 BGB5xD literal 0 HcmV?d00001