https://github.com/embik/davyjones
Alertmanager webhook receiver for ntfy with support for a dead man's switch.
https://github.com/embik/davyjones
alertmanager alertmanager-webhook-receiver deadmanswitch ntfy
Last synced: about 2 months ago
JSON representation
Alertmanager webhook receiver for ntfy with support for a dead man's switch.
- Host: GitHub
- URL: https://github.com/embik/davyjones
- Owner: embik
- License: apache-2.0
- Created: 2024-06-20T10:50:43.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-07-21T10:57:31.000Z (about 1 year ago)
- Last Synced: 2024-10-29T12:06:20.479Z (12 months ago)
- Topics: alertmanager, alertmanager-webhook-receiver, deadmanswitch, ntfy
- Language: Rust
- Homepage:
- Size: 67.4 KB
- Stars: 1
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# davyjones
`davyjones` is a simple [webhook receiver for Prometheus Alertmanager](https://prometheus.io/docs/alerting/latest/configuration/#webhook_config) to send notifications to a [ntfy](https://ntfy.sh) instance for ~~calling the kraken~~ mobile push notifications.
In addition to translating alerts `davyjones` also comes with the ability to configure dead man switches, which can be used to send notifications when a "watchdog" alert hasn't been triggered for a certain amount of time.
> [!WARNING]
> `davyjones` is in a very early state and subject to changes. Please don't expect a finished software product. If you want to use it I welcome issues and pull requests, but I cannot guarantee this project is secure or works correctly.## Features
- [x] Basic webhook support for processing Alertmanager webhook calls.
- [ ] Watchdog support for sending alerts if no Alertmanager webhook calls came in for a while.For feature requests, please open a [GitHub issue](https://github.com/embik/davyjones/issues).
## Usage
`davyjones` can either be built from source or be used from a container image hosted on [GitHub Packages](https://github.com/embik/davyjones/pkgs/container/davyjones). The container image can be used with Docker, Podman or Kubernetes.
By default, `davyjones` binds to `localhost`. You might have to tweak that with the `--host` flag. `davyjones` does **not** support basic authentication right now, so it is recommended to deploy it behind a reverse proxy that secures access.
```sh
Usage: davyjones [OPTIONS]Options:
-v, --verbose Enable verbose (debug) logging
-c, --config Configuration file to start davyjones with
-p, --port Port to listen on when starting webhook server [default: 8080]
--host Host to listen on when starting webhook server [default: localhost]
-h, --help Print help
```## Configuration
`davyjones` is configured via a configuration file in TOML. An example can be found [here](./examples/config.toml).
### Alertmanager
`davyjones` exposes an endpoint (`/v1/webhooks/alerts`) for Alertmanager. To configure Alertmanager, add a new [receiver](https://prometheus.io/docs/alerting/latest/configuration/#receiver) to your Alertmanager configuration file. `davyjones` requires a [webhook_config](https://prometheus.io/docs/alerting/latest/configuration/#webhook_config), like this:
```yaml
- name: davyjones
webhook_configs:
- send_resolved: true
http_config:
# only if you run davyjones behind a reverse proxy with basic auth
basic_auth:
username:
password:
url: https:///v1/webhooks/alerts
```