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}