diff --git a/hosts/genepi/default.nix b/hosts/genepi/default.nix index 8cb86dd..0aa876c 100644 --- a/hosts/genepi/default.nix +++ b/hosts/genepi/default.nix @@ -16,7 +16,7 @@ ./freshrss.nix ./hardware.nix ./immich.nix - ./monitoring.nix + ./monitoring ./network.nix ./nginx.nix ./persistence.nix diff --git a/hosts/genepi/monitoring/default.nix b/hosts/genepi/monitoring/default.nix new file mode 100644 index 0000000..aea5039 --- /dev/null +++ b/hosts/genepi/monitoring/default.nix @@ -0,0 +1,6 @@ +{ + imports = [ + ./grafana.nix + ./prometheus.nix + ]; +} diff --git a/hosts/genepi/monitoring/grafana.nix b/hosts/genepi/monitoring/grafana.nix new file mode 100644 index 0000000..7bea765 --- /dev/null +++ b/hosts/genepi/monitoring/grafana.nix @@ -0,0 +1,40 @@ +{ config, ... }: +let + domain = "home.rpqt.fr"; +in +{ + services.grafana = { + enable = true; + settings = { + server = { + http_port = 3000; + domain = "grafana.${domain}"; + }; + }; + provision = { + enable = true; + datasources = { + settings = { + datasources = [ + { + name = "Prometheus"; + type = "prometheus"; + access = "proxy"; + url = "http://127.0.0.1:${toString config.services.prometheus.port}"; + isDefault = true; + } + ]; + }; + }; + }; + }; + + services.nginx.virtualHosts.${config.services.grafana.settings.server.domain} = { + forceSSL = true; + useACMEHost = "${domain}"; + locations."/" = { + proxyPass = "http://127.0.0.1:${toString config.services.grafana.settings.server.http_port}"; + proxyWebsockets = true; + }; + }; +} diff --git a/hosts/genepi/monitoring.nix b/hosts/genepi/monitoring/prometheus.nix similarity index 63% rename from hosts/genepi/monitoring.nix rename to hosts/genepi/monitoring/prometheus.nix index e71b3a3..fcf4d20 100644 --- a/hosts/genepi/monitoring.nix +++ b/hosts/genepi/monitoring/prometheus.nix @@ -1,12 +1,9 @@ { - config, lib, self, ... }: let - domain = "home.rpqt.fr"; - allHosts = self.nixosConfigurations; hostInTailnetFilter = k: v: v.config.services.tailscale.enable; @@ -47,41 +44,6 @@ let ); in { - services.grafana = { - enable = true; - settings = { - server = { - http_port = 3000; - domain = "grafana.${domain}"; - }; - }; - provision = { - enable = true; - datasources = { - settings = { - datasources = [ - { - name = "Prometheus"; - type = "prometheus"; - access = "proxy"; - url = "http://127.0.0.1:${toString config.services.prometheus.port}"; - isDefault = true; - } - ]; - }; - }; - }; - }; - - services.nginx.virtualHosts.${config.services.grafana.settings.server.domain} = { - forceSSL = true; - useACMEHost = "${domain}"; - locations."/" = { - proxyPass = "http://127.0.0.1:${toString config.services.grafana.settings.server.http_port}"; - proxyWebsockets = true; - }; - }; - services.prometheus = { enable = true; port = 9001;