puter/classes/headless/grafana.nix

46 lines
1.2 KiB
Nix
Raw Normal View History

2025-03-23 21:48:46 +00:00
{config, ...}: let
virtualHostName = "grafana.helveticanonstandard.net";
in {
2025-03-01 21:21:00 +00:00
services.grafana = {
enable = true;
2025-03-09 15:37:21 +00:00
settings.server = {
2025-03-23 21:48:46 +00:00
domain = virtualHostName;
2025-03-09 15:37:21 +00:00
http_port = 9010;
http_addr = "127.0.0.1";
root_url = "http://192.168.1.10:8010"; # TODO
protocol = "http";
};
2025-03-01 21:21:00 +00:00
analytics.reporting.enable = false;
provision = {
enable = true;
2025-03-09 15:37:21 +00:00
datasources.settings.datasources = [
2025-03-01 21:21:00 +00:00
{
name = "Prometheus";
type = "prometheus";
access = "proxy";
2025-03-23 21:48:46 +00:00
url = "http://127.0.0.1:${builtins.toString config.services.prometheus.port}";
2025-03-01 21:21:00 +00:00
}
{
name = "Loki";
type = "loki";
access = "proxy";
2025-03-23 21:48:46 +00:00
url = "http://127.0.0.1:${builtins.toString config.services.loki.configuration.server.http_listen_port}";
2025-03-01 21:21:00 +00:00
}
];
};
};
2025-03-23 21:48:46 +00:00
services.nginx.virtualHosts.${virtualHostName} = {
2025-03-01 21:21:00 +00:00
locations."/" = {
2025-03-23 21:48:46 +00:00
proxyPass = let
2025-03-09 15:37:21 +00:00
host = config.services.grafana.settings.server.http_addr;
2025-03-23 21:48:46 +00:00
port = builtins.toString config.services.grafana.settings.server.http_port;
in "http://${host}:${port}";
2025-03-01 21:21:00 +00:00
proxyWebsockets = true;
};
};
}