diff --git a/modules/services/alertmanager/config.nix b/modules/services/alertmanager/config.nix
index fcf2581..1c031fa 100644
--- a/modules/services/alertmanager/config.nix
+++ b/modules/services/alertmanager/config.nix
@@ -19,6 +19,12 @@
to = "server@buehler.rocks";
}
];
+ webhook_configs = [
+ {
+ url = "http://localhost:4050/services/hooks/YWxlcnRtYW5hZ2VyX3NlcnZpY2U";
+ send_resolved = true;
+ }
+ ];
}
];
}
diff --git a/modules/services/alertmanager/default.nix b/modules/services/alertmanager/default.nix
index df65e2e..fd94e4e 100644
--- a/modules/services/alertmanager/default.nix
+++ b/modules/services/alertmanager/default.nix
@@ -85,6 +85,49 @@ in
# for mail delivery
services.postfix.enable = true;
+ services.go-neb.config.services = [
+ {
+ ID = "alertmanager_service";
+ Type = "alertmanager";
+ UserId = config.my.services.matrix-bot.Username;
+ Config = {
+ # url contains "alertmanager_service" encoded as base64
+ webhook_url = "http://localhost:4050/services/hooks/YWxlcnRtYW5hZ2VyX3NlcnZpY2U";
+ rooms = {
+ "${config.my.services.matrix-bot.RoomID}" = {
+ #bots:nixos.org
+ text_template = ''
+ {{range .Alerts -}} [{{ .Status }}] {{index .Labels "alertname" }}: {{index .Annotations "description"}} {{ end -}}
+ '';
+ # $$severity otherwise envsubst replaces $severity with an empty string
+ html_template = ''
+ {{range .Alerts -}}
+ {{ $$severity := index .Labels "severity" }}
+ {{ if eq .Status "firing" }}
+ {{ if eq $$severity "critical"}}
+ [FIRING - CRITICAL]
+ {{ else if eq $$severity "warning"}}
+ [FIRING - WARNING]
+ {{ else }}
+ [FIRING - {{ $$severity }}]
+ {{ end }}
+ {{ else }}
+ [RESOLVED]
+ {{ end }}
+ {{ index .Labels "alertname"}}: {{ index .Annotations "summary"}}
+ (
+ 📈 Grafana,
+ 🔥 Prometheus,
+ 🔕 Silence
+ )
+ {{end -}}'';
+ msg_type = "m.text"; # Must be either `m.text` or `m.notice`
+ };
+ };
+ };
+ }
+ ];
+
my.services.nginx.virtualHosts = [
{
subdomain = "alerts";