aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Fischer <martin@push-f.com>2026-01-24 09:49:01 +0100
committerMartin Fischer <martin@push-f.com>2026-01-24 10:00:12 +0100
commit9cbeb3d9b3878d57f2c0def4bbe3d928001a69c5 (patch)
treebb94753dd7626ed494ffca37825b459454cef446
parentfd62f221db9eb59938166147bc923d6059553a5c (diff)
tweak(tente): send Grafana alerts via email instead of Matrix
Less moving parts. Instead of: Grafana -> Forwarder -> Conduit -> UnifiedPush? -> Matrix client just Grafana -> Mail server -> Mail client
-rw-r--r--nixos/hosts/tente/default.nix2
-rw-r--r--nixos/hosts/tente/grafana.nix28
-rw-r--r--nixos/hosts/tente/secrets/alerts-smtp.age7
-rw-r--r--nixos/hosts/tente/secrets/grafana-matrix-forwarder-env.agebin449 -> 0 bytes
-rw-r--r--nixos/npins/sources.json15
-rw-r--r--nixos/shared/grafana-matrix-forwarder/default.nix10
-rw-r--r--nixos/shared/grafana-matrix-forwarder/service.nix31
7 files changed, 18 insertions, 75 deletions
diff --git a/nixos/hosts/tente/default.nix b/nixos/hosts/tente/default.nix
index 8297fc9..2dcfe62 100644
--- a/nixos/hosts/tente/default.nix
+++ b/nixos/hosts/tente/default.nix
@@ -102,8 +102,6 @@ in
grafana = {
port = ports.grafana;
- matrixForwarderPort = ports.grafanaMatrixForwarder;
- matrixServerUrl = "http://localhost:${toString ports.matrix}";
};
headscale = {
diff --git a/nixos/hosts/tente/grafana.nix b/nixos/hosts/tente/grafana.nix
index 73ea0d3..f6db5ca 100644
--- a/nixos/hosts/tente/grafana.nix
+++ b/nixos/hosts/tente/grafana.nix
@@ -9,20 +9,13 @@ in
port = lib.mkOption {
type = lib.types.int;
};
- matrixForwarderPort = lib.mkOption {
- type = lib.types.int;
- };
- matrixServerUrl = lib.mkOption {
- type = lib.types.str;
- };
};
- imports = [
- <top/shared/grafana-matrix-forwarder/service.nix>
- ];
-
config = {
- age.secrets.grafana-matrix-forwarder-env.file = ./secrets/grafana-matrix-forwarder-env.age;
+ age.secrets.alerts-smtp = {
+ file = ./secrets/alerts-smtp.age;
+ owner = "grafana";
+ };
services.grafana = {
enable = true;
@@ -31,6 +24,13 @@ in
http_addr = "0.0.0.0";
http_port = cfg.port;
};
+ smtp = rec {
+ enabled = true;
+ host = "smtp.migadu.com:465";
+ user = "alerts@push-f.com";
+ from_address = user;
+ password = "$__file{${config.age.secrets.alerts-smtp.path}}";
+ };
};
provision = {
@@ -61,11 +61,5 @@ in
];
};
};
- services.grafana-matrix-forwarder = {
- enable = true;
- port = cfg.matrixForwarderPort;
- homeserver = cfg.matrixServerUrl;
- environmentFile = config.age.secrets.grafana-matrix-forwarder-env.path;
- };
};
}
diff --git a/nixos/hosts/tente/secrets/alerts-smtp.age b/nixos/hosts/tente/secrets/alerts-smtp.age
new file mode 100644
index 0000000..d673690
--- /dev/null
+++ b/nixos/hosts/tente/secrets/alerts-smtp.age
@@ -0,0 +1,7 @@
+age-encryption.org/v1
+-> ssh-ed25519 aqtcmw knuL8pL0ot3fE042Apaw2CVQ19E8poqNsSznVcqAtSg
+Dp6+7IShnd8MZrSYjh0LqGH7HUc3Tji/76dQCVIwzMA
+-> ssh-ed25519 PMTW+A nvriZ1urwJLuEpCbiZxrKu4juhASLSAQFBA9h4pLzxQ
+zqYNxGJLyl6TU0doc3+BLLvek09cgZ1NS4cO+mx7BPo
+--- 8T5MKNAsvZMtgfIAL3OIKnXeBA3uJkqvQ9SPYwg9p2A
+\Ä MKxª–l>µ¥s­œ™DÿÒ”9;‰}#’øL<G+ŠR|‚2ÿe‚"2¸TO½µ§ \ No newline at end of file
diff --git a/nixos/hosts/tente/secrets/grafana-matrix-forwarder-env.age b/nixos/hosts/tente/secrets/grafana-matrix-forwarder-env.age
deleted file mode 100644
index 84cab14..0000000
--- a/nixos/hosts/tente/secrets/grafana-matrix-forwarder-env.age
+++ /dev/null
Binary files differ
diff --git a/nixos/npins/sources.json b/nixos/npins/sources.json
index f93120c..385fbbb 100644
--- a/nixos/npins/sources.json
+++ b/nixos/npins/sources.json
@@ -12,21 +12,6 @@
"url": null,
"hash": "1d4m7hsq727q7ndjqmgyl8vkbkqjwps962ygmv2mcc5dbqzgn963"
},
- "grafana-matrix-forwarder": {
- "type": "GitRelease",
- "repository": {
- "type": "Git",
- "url": "https://gitlab.com/hctrdev/grafana-matrix-forwarder.git"
- },
- "pre_releases": false,
- "version_upper_bound": null,
- "release_prefix": null,
- "submodules": false,
- "version": "v0.8.3",
- "revision": "a77a360503ea12c8244646753a3bf271428ddd02",
- "url": null,
- "hash": "1mdgv6jfbjs3xsqk9dxli6w345jws8j5qgzqf6wljmxlvibbic6y"
- },
"my-cmd50": {
"type": "Git",
"repository": {
diff --git a/nixos/shared/grafana-matrix-forwarder/default.nix b/nixos/shared/grafana-matrix-forwarder/default.nix
deleted file mode 100644
index 7a04dcb..0000000
--- a/nixos/shared/grafana-matrix-forwarder/default.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{ buildGoModule }:
-let
- sources = import <top/npins>;
-in
-buildGoModule {
- pname = "grafana-matrix-forwarder";
- version = sources.grafana-matrix-forwarder.version;
- src = sources.grafana-matrix-forwarder;
- vendorHash = "sha256-ifkeakyRkIF2Y/4otUWhTvUzsPwRb1Wxx6gqN0806c4=";
-}
diff --git a/nixos/shared/grafana-matrix-forwarder/service.nix b/nixos/shared/grafana-matrix-forwarder/service.nix
deleted file mode 100644
index 5ad511c..0000000
--- a/nixos/shared/grafana-matrix-forwarder/service.nix
+++ /dev/null
@@ -1,31 +0,0 @@
-{ config, lib, pkgs, ... }:
-
-let
- grafanaMatrixForwarder = pkgs.callPackage ./default.nix {};
- cfg = config.services.grafana-matrix-forwarder;
-in
-{
- options.services.grafana-matrix-forwarder = {
- enable = lib.mkEnableOption "grafana-matrix-forwarder";
- port = lib.mkOption {
- type = lib.types.int;
- };
- homeserver = lib.mkOption {
- type = lib.types.str;
- };
- environmentFile = lib.mkOption {
- type = lib.types.path;
- };
- };
-
- config = lib.mkIf cfg.enable {
- systemd.services.grafana-matrix-forwarder = {
- serviceConfig = {
- ExecStart = "${grafanaMatrixForwarder}/bin/grafana-matrix-forwarder --port=${toString cfg.port} --homeserver ${cfg.homeserver}";
- EnvironmentFile = cfg.environmentFile;
- DynamicUser = "true";
- };
- wantedBy = ["multi-user.target"];
- };
- };
-}