nixos/grafana: set plugins path, fix image generation

Also add options to configure which organization should have anonymous access.

+20 -2
+17
nixos/modules/services/monitoring/grafana.nix
··· 9 10 envOptions = { 11 PATHS_DATA = cfg.dataDir; 12 PATHS_LOGS = "${cfg.dataDir}/log"; 13 14 SERVER_PROTOCOL = cfg.protocol; ··· 37 USERS_AUTO_ASSIGN_ORG_ROLE = cfg.users.autoAssignOrgRole; 38 39 AUTH_ANONYMOUS_ENABLED = b2s cfg.auth.anonymous.enable; 40 41 ANALYTICS_REPORTING_ENABLED = b2s cfg.analytics.reporting.enable; 42 } // cfg.extraOptions; ··· 196 default = false; 197 type = types.bool; 198 }; 199 }; 200 201 analytics.reporting = { ··· 222 "Grafana passwords will be stored as plaintext in the Nix store!" 223 ]; 224 225 systemd.services.grafana = { 226 description = "Grafana Service Daemon"; 227 wantedBy = ["multi-user.target"]; ··· 234 }; 235 preStart = '' 236 ln -fs ${cfg.package}/share/grafana/conf ${cfg.dataDir} 237 ''; 238 }; 239
··· 9 10 envOptions = { 11 PATHS_DATA = cfg.dataDir; 12 + PATHS_PLUGINS = "${cfg.dataDir}/plugins"; 13 PATHS_LOGS = "${cfg.dataDir}/log"; 14 15 SERVER_PROTOCOL = cfg.protocol; ··· 38 USERS_AUTO_ASSIGN_ORG_ROLE = cfg.users.autoAssignOrgRole; 39 40 AUTH_ANONYMOUS_ENABLED = b2s cfg.auth.anonymous.enable; 41 + AUTH_ANONYMOUS_ORG_NAME = cfg.auth.anonymous.org_name; 42 + AUTH_ANONYMOUS_ORG_ROLE = cfg.auth.anonymous.org_role; 43 44 ANALYTICS_REPORTING_ENABLED = b2s cfg.analytics.reporting.enable; 45 } // cfg.extraOptions; ··· 199 default = false; 200 type = types.bool; 201 }; 202 + org_name = mkOption { 203 + description = "Which organization to allow anonymous access to"; 204 + default = "Main Org."; 205 + type = types.str; 206 + }; 207 + org_role = mkOption { 208 + description = "Which role anonymous users have in the organization"; 209 + default = "Viewer"; 210 + type = types.str; 211 + }; 212 + 213 }; 214 215 analytics.reporting = { ··· 236 "Grafana passwords will be stored as plaintext in the Nix store!" 237 ]; 238 239 + environment.systemPackages = [ cfg.package ]; 240 + 241 systemd.services.grafana = { 242 description = "Grafana Service Daemon"; 243 wantedBy = ["multi-user.target"]; ··· 250 }; 251 preStart = '' 252 ln -fs ${cfg.package}/share/grafana/conf ${cfg.dataDir} 253 + ln -fs ${cfg.package}/share/grafana/vendor ${cfg.dataDir} 254 ''; 255 }; 256
+3 -2
pkgs/servers/monitoring/grafana/default.nix
··· 1 - { lib, buildGoPackage, fetchurl, fetchFromGitHub }: 2 3 buildGoPackage rec { 4 version = "3.1.0"; ··· 22 postInstall = '' 23 tar -xvf $srcStatic 24 mkdir -p $bin/share/grafana 25 - mv grafana-*/{public,conf} $bin/share/grafana/ 26 ''; 27 28 meta = with lib; {
··· 1 + { lib, buildGoPackage, fetchurl, fetchFromGitHub, phantomjs2 }: 2 3 buildGoPackage rec { 4 version = "3.1.0"; ··· 22 postInstall = '' 23 tar -xvf $srcStatic 24 mkdir -p $bin/share/grafana 25 + mv grafana-*/{public,conf,vendor} $bin/share/grafana/ 26 + ln -sf ${phantomjs2}/bin/phantomjs $bin/share/grafana/vendor/phantomjs/phantomjs 27 ''; 28 29 meta = with lib; {