From edd5c01698f321f530a8656d3678e39a3a1e98c2 Mon Sep 17 00:00:00 2001 From: Valentin Date: Tue, 11 Nov 2025 16:52:22 +0100 Subject: =?UTF-8?q?Grafana=20f=C3=BCr=20Darstellung=20von=20Metriken=20auf?= =?UTF-8?q?gesetzt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tharos/grafana.nix | 84 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 tharos/grafana.nix (limited to 'tharos/grafana.nix') diff --git a/tharos/grafana.nix b/tharos/grafana.nix new file mode 100644 index 0000000..fa2259e --- /dev/null +++ b/tharos/grafana.nix @@ -0,0 +1,84 @@ +{ self, lib, ... }: +{ + flake.machines.tharos = { + nixos = + { config, ... }: + let + grafana = { + domain = config.services.grafana.settings.server.domain; + port = config.services.grafana.settings.server.http_port; + database = config.services.grafana.settings.database; + }; + in + { + services.grafana = { + enable = true; + openFirewall = true; + settings = { + server = { + domain = "grafana.${self.domain}"; + root_url = "https://${grafana.domain}"; + }; + database = { + type = "postgres"; + user = grafana.database.name; + host = + let + nextcloud = config.services.nextcloud; + in + lib.mkIf nextcloud.enable nextcloud.config.dbhost; + }; + security = { + disable_initial_admin_creation = true; + }; + "auth.anonymous" = { + enabled = true; + org_role = "Viewer"; + }; + }; + }; + services.postgresql = { + enable = true; + ensureDatabases = [ grafana.database.name ]; + ensureUsers = [ + { + name = grafana.database.user; + ensureDBOwnership = true; + } + ]; + }; + services.caddy = { + virtualHosts.${grafana.domain}.extraConfig = '' + reverse_proxy http://localhost:${toString grafana.port} + ''; + }; + }; + + vm = + { pkgs, config, ... }: + let + grafana = { + domain = config.services.grafana.settings.server.domain; + port = config.services.grafana.settings.server.http_port; + }; + in + { + services.grafana = { + settings.server = { + domain = lib.mkForce "grafana.localhost"; + root_url = lib.mkForce "http://${grafana.domain}:${toString grafana.port}"; + }; + }; + + services.caddy.virtualHosts = { + "http://${grafana.domain}:${toString config.virtualisation.exposedPorts.http.port}".extraConfig = + config.services.caddy.virtualHosts.${grafana.domain}.extraConfig; + }; + services.getty.helpLine = lib.mkBefore '' + Grafana: http://${grafana.domain}:${ + with config.virtualisation; toString (portOffset + exposedPorts.http.port) + } + ''; + }; + }; +} -- cgit v1.2.3 From 14cfede293410bcf60bb096a410257fce2d20886 Mon Sep 17 00:00:00 2001 From: Valentin Date: Wed, 12 Nov 2025 22:11:01 +0100 Subject: =?UTF-8?q?=C3=9Cberwachung=20der=20Systemlast?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tharos/grafana.nix | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'tharos/grafana.nix') diff --git a/tharos/grafana.nix b/tharos/grafana.nix index fa2259e..9ad5ecc 100644 --- a/tharos/grafana.nix +++ b/tharos/grafana.nix @@ -36,6 +36,23 @@ org_role = "Viewer"; }; }; + provision = { + enable = true; + datasources.settings = { + prune = true; + datasources = [ + { + name = "Prometheus"; + type = "prometheus"; + access = "proxy"; + url = "http://localhost:${toString config.services.prometheus.port}"; + } + ]; + }; + dashboards.settings.providers = [ + { options.path = ./dashboards; } + ]; + }; }; services.postgresql = { enable = true; @@ -68,6 +85,9 @@ domain = lib.mkForce "grafana.localhost"; root_url = lib.mkForce "http://${grafana.domain}:${toString grafana.port}"; }; + settings."auth.anonymous" = { + org_role = lib.mkForce "Admin"; + }; }; services.caddy.virtualHosts = { -- cgit v1.2.3 From 264c47f084b567ddb0eb21678443ebb41c50d8c7 Mon Sep 17 00:00:00 2001 From: Valentin Date: Thu, 20 Nov 2025 16:23:31 +0100 Subject: System-Monitor auf Grafana-Startseite anzeigen --- tharos/grafana.nix | 2 ++ 1 file changed, 2 insertions(+) (limited to 'tharos/grafana.nix') diff --git a/tharos/grafana.nix b/tharos/grafana.nix index 9ad5ecc..be723c6 100644 --- a/tharos/grafana.nix +++ b/tharos/grafana.nix @@ -35,6 +35,8 @@ enabled = true; org_role = "Viewer"; }; + users.default_language = "de-DE"; + dashboards.default_home_dashboard_path = "${./dashboards + "/system.json"}"; }; provision = { enable = true; -- cgit v1.2.3