{ config, lib, pkgs, ... }: let cfg = config.my.services.grafana; in { options.my.services.grafana = with lib; { enable = mkEnableOption "grafana observability stack"; }; config = lib.mkIf cfg.enable { services.grafana = { enable = true; # Bind to all interfaces. addr = ""; security.adminUser = "fcuny"; analytics.reporting.enable = false; provision = { enable = true; datasources = [{ name = "prometheus"; type = "prometheus"; isDefault = true; url = "http://localhost:9090"; }]; dashboards = [{ disableDeletion = true; options.path = ./dashboards; }]; }; }; my.services.backup = { paths = [ "/var/lib/grafana/data" ]; }; }; }