# [ntfy-alertmanager] [![builds.sr.ht status](https://builds.xenrox.net/~xenrox/ntfy-alertmanager/commits/master.svg)](https://builds.xenrox.net/~xenrox/ntfy-alertmanager/commits/master?) A bridge between ntfy and Alertmanager. ## Installation Simply use go build or the [docker image] with [docker-compose file]. `ntfy-alertmanager:latest` is built from the latest tagged release while `ntfy-alertmanager:dev` is built from the master branch. ## Configuration You can specify the configuration file location with the `--config` flag. By default the configuration file will be read from `/etc/ntfy-alertmanager/config`. The format of this file is [scfg]. ntfy-alertmanager has support for setting ntfy [priority], [tags], [icon] and [action buttons] (which can be used to create an Alertmanager silence). Define a decreasing order of labels in the config file and map those labels to tags, priority or an icon. - For priority and icon the first found value will be chosen. An icon for "resolved" alerts will take precedence. - Tags are added together. Example: ``` # Public facing base URL of the service (e.g. https://ntfy-alertmanager.xenrox.net) # This setting is required for the "Silence" feature. base-url https://ntfy-alertmanager.xenrox.net # http listen address http-address :8080 # Log level (either debug, info, warning, error) log-level info # When multiple alerts are grouped together by Alertmanager, they can either be sent # each on their own (single mode) or be kept together (multi mode) (either single or multi; default is single) alert-mode single # Optionally protect with HTTP basic authentication user webhookUser password webhookPass labels { order "severity,instance" severity "critical" { priority 5 tags "rotating_light" icon "https://foo.com/critical.png" } severity "info" { priority 1 } instance "example.com" { tags "computer,example" } } # Settings for resolved alerts resolved { tags "resolved,partying_face" icon "https://foo.com/resolved.png" } ntfy { # URL of the ntfy topic - required topic https://ntfy.sh/alertmanager-alerts # ntfy authentication via Basic Auth (https://docs.ntfy.sh/publish/#username-password) user user password pass # ntfy authentication via access tokens (https://docs.ntfy.sh/publish/#access-tokens) # Either access-token or a user/password combination can be used - not both. access-token foobar } alertmanager { # If set, the ntfy message will contain a "Silence" button, which can be used # to create a silence via the Alertmanager API. Because of limitations in ntfy, # the request will be proxied through ntfy-alertmanager. Therefore ntfy-alertmanager # needs to be exposed to external network requests and base-url has to be set. # # When alert-mode is set to "single" all alert labels will be used to create the silence. # When it is "multi" common labels between all the alerts will be used. WARNING: This # could silence unwanted alerts. silence-duration 24h # Basic authentication (https://prometheus.io/docs/alerting/latest/https/) user user password pass # By default the Alertmanager URL gets parsed from the webhook. In case that # Alertmanger is not reachable under that URL, it can be overwritten here. url https://alertmanager.xenrox.net } # When the alert-mode is set to single, ntfy-alertmanager will cache each single alert # to avoid sending recurrences. cache { # The type of cache that will be used (either memory or redis; default is memory). type memory # How long messages stay in the cache for duration 24h # Memory cache settings # Interval in which the cache is cleaned up cleanup-interval 1h # Redis cache settings # URL to connect to redis (default: redis://localhost:6379) redis-url redis://user:password@localhost:6789/3 } ``` ### Alertmanager config ```yaml receivers: - name: "ntfy" webhook_configs: - url: "http://127.0.0.1:8080" http_config: basic_auth: username: "webhookUser" password: "webhookPass" ``` ## Contributing Report bugs on the [issue tracker]. [ntfy-alertmanager]: https://hub.xenrox.net/~xenrox/ntfy-alertmanager/ [scfg]: https://git.sr.ht/~emersion/scfg [priority]: https://ntfy.sh/docs/publish/#message-priority [tags]: https://ntfy.sh/docs/publish/#tags-emojis [icon]: https://docs.ntfy.sh/publish/#icons [action buttons]: https://docs.ntfy.sh/publish/#action-buttons [issue tracker]: https://todo.xenrox.net/~xenrox/ntfy-alertmanager [docker image]: https://hub.docker.com/r/xenrox/ntfy-alertmanager [docker-compose file]: https://git.xenrox.net/~xenrox/ntfy-alertmanager/tree/master/item/docker/docker-compose.yml