From e172fe2752c72b0c1d71388fa76b14d96951ed2d Mon Sep 17 00:00:00 2001 From: Kopatz <7265381+Kropatz@users.noreply.github.com> Date: Fri, 12 Apr 2024 17:40:14 +0200 Subject: [PATCH] add grafana --- modules/collections/server.nix | 2 +- modules/services/adguard.nix | 4 +++ modules/services/grafana.nix | 52 ++++++++++++++++++++++++++++++++++ 3 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 modules/services/grafana.nix diff --git a/modules/collections/server.nix b/modules/collections/server.nix index 6f605fe..2398477 100644 --- a/modules/collections/server.nix +++ b/modules/collections/server.nix @@ -7,7 +7,7 @@ ../services/github-runner.nix ../services/gitolite.nix ../services/kavita.nix - ../services/netdata.nix + ../services/grafana.nix ../services/nextcloud.nix ../services/nginx.nix ../services/postgres.nix diff --git a/modules/services/adguard.nix b/modules/services/adguard.nix index ce80232..9600cab 100644 --- a/modules/services/adguard.nix +++ b/modules/services/adguard.nix @@ -58,6 +58,10 @@ in "domain" = "kavita.home.arpa"; "answer" = ip; } + { + "domain" = "grafana.home.arpa"; + "answer" = ip; + } { "domain" = "yt.home.arpa"; "answer" = ip; diff --git a/modules/services/grafana.nix b/modules/services/grafana.nix new file mode 100644 index 0000000..7a33b0c --- /dev/null +++ b/modules/services/grafana.nix @@ -0,0 +1,52 @@ +{pkgs, config, lib, ...}: +let + useHttps = config.services.step-ca.enable; + fqdn = "grafana.home.arpa"; +in +{ + services.grafana = { + enable = true; + settings.server = { + domain = fqdn; + http_port = 2342; + http_addr = "127.0.0.1"; + }; + }; + + systemd.services.grafana = { + after = [ "step-ca.service" ]; + }; + + security.acme.certs."${fqdn}".server = "https://127.0.0.1:8443/acme/acme/directory"; + # nginx reverse proxy + services.nginx.virtualHosts.${fqdn} = { + forceSSL = useHttps; + enableACME = useHttps; + quic = useHttps; + http3 = useHttps; + locations."/" = { + proxyPass = "http://127.0.0.1:${toString config.services.grafana.settings.server.http_port}"; + proxyWebsockets = true; + }; + }; + + services.prometheus = { + enable = true; + port = 9001; + exporters = { + node = { + enable = true; + enabledCollectors = [ "systemd" ]; + port = 9002; + }; + }; + scrapeConfigs = [ + { + job_name = "scrapema"; + static_configs = [{ + targets = [ "127.0.0.1:${toString config.services.prometheus.exporters.node.port}" ]; + }]; + } + ]; + }; +}