old
 1{
 2  myvars,
 3  config,
 4  ...
 5}: {
 6  services.grafana = {
 7    enable = true;
 8    # See https://grafana.com/docs/grafana/latest/setup-grafana/configure-grafana/#configuration-options
 9    settings = {
10      server = {
11        http_addr = "127.0.0.1";
12        http_port = 3982;
13        protocol = "http";
14        domain = "grafana.hpcesia.com";
15        serve_from_sub_path = false;
16        root_url = "%(protocol)s://%(domain)s:%(http_port)s/";
17        read_timeout = "180s";
18        enable_gzip = true;
19      };
20      security = {
21        admin_user = myvars.username;
22        admin_email = myvars.useremail;
23        admin_password = "$__file{${config.sops.secrets."grafana-admin-password".path}}";
24      };
25      users = {
26        allow_sign_up = false;
27        default_theme = "dark";
28        default_language = "detect";
29      };
30    };
31
32    provision = {
33      datasources.settings.datasources = [
34        {
35          name = "prometheus-pardofelis";
36          type = "prometheus";
37          access = "proxy";
38          url = "http://${config.services.victoriametrics.listenAddress}";
39          jsonData = {
40            httpMethod = "POST";
41            manageAlerts = true;
42            prometheusType = "Prometheus";
43            prometheusVersion = "2.49.0";
44            cacheLevel = "High";
45            disableRecordingRules = false;
46            incrementalQueryOverlapWindow = "10m";
47          };
48        }
49      ];
50      dashboards.settings.providers = [
51        {
52          name = "Default";
53          type = "file";
54          options.path = ./dashboards;
55        }
56      ];
57    };
58  };
59}