47 lines
1.2 KiB
Nix
47 lines
1.2 KiB
Nix
{config, ...}: let
|
|
domain = "metrics.${config.services.nginx.domain}";
|
|
in {
|
|
services.grafana = {
|
|
enable = true;
|
|
settings = {
|
|
server.http_port = 3001; # Default overlaps with gitea
|
|
|
|
security = {
|
|
admin_user = "tlater";
|
|
admin_password = "$__file{${config.sops.secrets."grafana/adminPassword".path}}";
|
|
secret_key = "$__file{${config.sops.secrets."grafana/secretKey".path}}";
|
|
cookie_secure = true;
|
|
cookie_samesite = "strict";
|
|
content_security_policy = true;
|
|
};
|
|
|
|
database = {
|
|
user = "grafana";
|
|
name = "grafana";
|
|
type = "postgres";
|
|
host = "/run/postgresql";
|
|
};
|
|
};
|
|
|
|
provision = {
|
|
enable = true;
|
|
|
|
datasources.settings.datasources = [
|
|
{
|
|
name = "Victoriametrics - tlater.net";
|
|
url = "http://localhost:8428";
|
|
type = "prometheus";
|
|
}
|
|
];
|
|
};
|
|
};
|
|
|
|
services.nginx.virtualHosts."${domain}" = {
|
|
forceSSL = true;
|
|
enableACME = true;
|
|
enableHSTS = true;
|
|
enableAuthorization = true;
|
|
locations."/".proxyPass = "http://localhost:${toString config.services.grafana.settings.server.http_port}";
|
|
};
|
|
}
|