diff --git a/modules/nixos/bundles/common/networking.nix b/modules/nixos/bundles/common/networking.nix index ccf5ea1..6b96544 100644 --- a/modules/nixos/bundles/common/networking.nix +++ b/modules/nixos/bundles/common/networking.nix @@ -49,6 +49,14 @@ in { port = 5201; public = true; }; + grafana = { + port = 5500; + internal = true; + }; + prometheus = { + port = 5501; + internal = true; + }; }; tsuki = { @@ -61,10 +69,6 @@ in { internal = true; public = true; }; - grafana = { - port = 5500; - internal = true; - }; jellyfin = { port = 8096; internal = true; diff --git a/modules/nixos/services/apps/prometheus/default.nix b/modules/nixos/services/apps/prometheus/default.nix new file mode 100644 index 0000000..9e16e67 --- /dev/null +++ b/modules/nixos/services/apps/prometheus/default.nix @@ -0,0 +1,27 @@ +{ + config, + lib, + namespace, + ... +}: let + inherit (lib) mkIf; + inherit (lib.${namespace}) getAttrByNamespace hostHasService flattenHostServices getServicePort; + inherit (config.networking) hostName; + + networkCfg = getAttrByNamespace config "${namespace}.services.networking"; + networkServices = flattenHostServices networkCfg.network-services; + + isEnabled = hostHasService networkCfg.network-services hostName "prometheus"; + port = getServicePort networkServices "prometheus" 9090; +in { + config = mkIf isEnabled { + services.prometheus = { + enable = true; + port = port; + }; + + ${namespace}.services.storage.impermanence.folders = [ + "/var/lib/prometheus2" + ]; + }; +}