diff options
Diffstat (limited to 'nixos')
-rw-r--r-- | nixos/hosts/tente/default.nix | 5 | ||||
-rw-r--r-- | nixos/hosts/tente/monitoring.nix | 15 | ||||
-rw-r--r-- | nixos/npins/sources.json | 15 | ||||
-rw-r--r-- | nixos/secrets/grafana-matrix-forwarder-env.age | bin | 0 -> 449 bytes | |||
-rw-r--r-- | nixos/secrets/secrets.nix | 2 | ||||
-rw-r--r-- | nixos/shared/grafana-matrix-forwarder/default.nix | 10 | ||||
-rw-r--r-- | nixos/shared/grafana-matrix-forwarder/service.nix | 31 |
7 files changed, 77 insertions, 1 deletions
diff --git a/nixos/hosts/tente/default.nix b/nixos/hosts/tente/default.nix index 6063b2c..f03156b 100644 --- a/nixos/hosts/tente/default.nix +++ b/nixos/hosts/tente/default.nix @@ -11,7 +11,7 @@ let helpers = import <top/helpers.nix> { inherit config lib pkgs; }; pkgs-unstable = import sources.nixpkgs-unstable {}; in -{ +rec { _module.args = { inherit pkgs-unstable; }; imports = [ ./hardware-configuration.nix @@ -118,6 +118,7 @@ in monitoring.grafanaUiPort = 3000; monitoring.alloyUiPort = 3001; + monitoring.grafanaMatrixForwarderPort = 3002; monitoring.lokiPort = 3030; gotify.port = 4000; monitoring.prometheusNodeExporterPort = 9002; @@ -125,6 +126,8 @@ in headscale.port = 8080; matrix.port = 8008; + monitoring.matrixServerUrl = "http://localhost:${toString matrix.port}"; + # Use the GRUB 2 boot loader. boot.loader.grub.enable = true; # boot.loader.grub.efiSupport = true; diff --git a/nixos/hosts/tente/monitoring.nix b/nixos/hosts/tente/monitoring.nix index a999c8a..f6ed7cf 100644 --- a/nixos/hosts/tente/monitoring.nix +++ b/nixos/hosts/tente/monitoring.nix @@ -9,6 +9,9 @@ in grafanaUiPort = lib.mkOption { type = lib.types.int; }; + grafanaMatrixForwarderPort = lib.mkOption { + type = lib.types.int; + }; lokiPort = lib.mkOption { type = lib.types.int; }; @@ -21,13 +24,19 @@ in prometheusSqlExporterPort = lib.mkOption { type = lib.types.int; }; + matrixServerUrl = lib.mkOption { + type = lib.types.str; + }; }; imports = [ <top/shared/prometheus-sql-exporter/service.nix> + <top/shared/grafana-matrix-forwarder/service.nix> ]; config = { + age.secrets.grafana-matrix-forwarder-env.file = <top/secrets/grafana-matrix-forwarder-env.age>; + services.grafana = { enable = true; settings = { @@ -54,6 +63,12 @@ in ]; }; }; + services.grafana-matrix-forwarder = { + enable = true; + port = cfg.grafanaMatrixForwarderPort; + homeserver = cfg.matrixServerUrl; + environmentFile = config.age.secrets.grafana-matrix-forwarder-env.path; + }; services.prometheus = { enable = true; diff --git a/nixos/npins/sources.json b/nixos/npins/sources.json index be3b136..6f86eaa 100644 --- a/nixos/npins/sources.json +++ b/nixos/npins/sources.json @@ -16,6 +16,21 @@ "url": "https://api.github.com/repos/ryantm/agenix/tarball/0.15.0", "hash": "01dhrghwa7zw93cybvx4gnrskqk97b004nfxgsys0736823956la" }, + "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-geopos-link": { "type": "Git", "repository": { diff --git a/nixos/secrets/grafana-matrix-forwarder-env.age b/nixos/secrets/grafana-matrix-forwarder-env.age Binary files differnew file mode 100644 index 0000000..84cab14 --- /dev/null +++ b/nixos/secrets/grafana-matrix-forwarder-env.age diff --git a/nixos/secrets/secrets.nix b/nixos/secrets/secrets.nix index 6021803..282ee6c 100644 --- a/nixos/secrets/secrets.nix +++ b/nixos/secrets/secrets.nix @@ -3,7 +3,9 @@ let hamac = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJmjbC0gk2s/qDQ+QR//GJH0ZPld99L0EtX7dPP5h2RN"; ev = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINCSypbTOnAYBO32vUUieOsb6ws32gCsDg8nB8JhuFuI"; + tente = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGTyZdGXxkAjzRulRFB23AX0T/lVLZOaSaFJi+thsjgx"; in { "vpn-se-privKey.age".publicKeys = [ martin hamac ev ]; + "grafana-matrix-forwarder-env.age".publicKeys = [ martin tente ]; } diff --git a/nixos/shared/grafana-matrix-forwarder/default.nix b/nixos/shared/grafana-matrix-forwarder/default.nix new file mode 100644 index 0000000..7a04dcb --- /dev/null +++ b/nixos/shared/grafana-matrix-forwarder/default.nix @@ -0,0 +1,10 @@ +{ 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 new file mode 100644 index 0000000..5ad511c --- /dev/null +++ b/nixos/shared/grafana-matrix-forwarder/service.nix @@ -0,0 +1,31 @@ +{ 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"]; + }; + }; +} |