From 8e2c7ffa1c87e5677f9f26104d824e1563c82307 Mon Sep 17 00:00:00 2001 From: fleaz Date: Tue, 5 Mar 2024 23:19:38 +0100 Subject: [PATCH] Added pkg and module for matrix-alertmanager-receiver --- default.nix | 1 + matrix-alertmanager-receiver/default.nix | 19 ++++++++++++ modules/default.nix | 1 + modules/matrix-alertmanager-receiver.nix | 37 ++++++++++++++++++++++++ 4 files changed, 58 insertions(+) create mode 100644 matrix-alertmanager-receiver/default.nix create mode 100644 modules/matrix-alertmanager-receiver.nix diff --git a/default.nix b/default.nix index 8ee8e90..f604fad 100644 --- a/default.nix +++ b/default.nix @@ -17,4 +17,5 @@ self: super: { neolink = self.callPackage ./neolink { }; mealie = self.callPackage ./mealie { }; gohome = self.callPackage ./gohome { }; + matrix-alertmanager-receiver = self.callPackage ./matrix-alertmanager-receiver { }; } diff --git a/matrix-alertmanager-receiver/default.nix b/matrix-alertmanager-receiver/default.nix new file mode 100644 index 0000000..680c8ef --- /dev/null +++ b/matrix-alertmanager-receiver/default.nix @@ -0,0 +1,19 @@ +{ lib +, buildGoModule +, pkgs +, fetchFromGitHub +}: + +buildGoModule rec { + pname = "matrix-alertmanager-receiver"; + version = "0.1"; + + src = fetchFromGitHub { + owner = "fleaz"; + repo = "matrix-alertmanager-receiver"; + hash = "sha256-wu6vyb0Wqoi4PJ7VyIF1huu2RJ/6Rto/laLuSi9ANN0="; + rev = "v${version}"; + }; + + vendorHash = "sha256-A1sFGSzR9SQEv92h8mVv5a1wwvzTefVJrSpk5H4fZVY="; +} diff --git a/modules/default.nix b/modules/default.nix index 017b18b..8d62b24 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -2,5 +2,6 @@ imports = [ #./gotosocial.nix ./mealie.nix + ./matrix-alertmanager-receiver.nix ]; } diff --git a/modules/matrix-alertmanager-receiver.nix b/modules/matrix-alertmanager-receiver.nix new file mode 100644 index 0000000..7e2b5b3 --- /dev/null +++ b/modules/matrix-alertmanager-receiver.nix @@ -0,0 +1,37 @@ +{ config, lib, pkgs, ...}: +let + cfg = config.services.matrix-alertmanager-receiver; +in +{ + options.services.matrix-alertmanager-receiver = { + enable = lib.mkEnableOption "matrix-alertmanager-receiver, a Matrix bridge for Alertmanager webhooks"; + + configFile = lib.mkOption { + type = lib.types.path; + default = ""; + example = "/run/secrets/matrix-alertmanager-receiver.toml"; + description = '' + The TOML config file + ''; + }; + }; + + config = lib.mkIf cfg.enable { + systemd.services.matrix-alertmanager-receiver = { + description = "Matrix bridge for Alertmanager webhooks"; + after = [ + "network.target" + "network-online.target" + ]; + wantedBy = [ + "multi-user.target" + ]; + + serviceConfig = { + DynamicUser = true; + User = "matrix-alertmanager-receiver"; + ExecStart = "${pkgs.matrix-alertmanager-receiver}/bin/matrix-alertmanager-receiver -config ${cfg.configFile}"; + }; + }; + }; +}