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 9 10 10 envOptions = { 11 11 PATHS_DATA = cfg.dataDir; 12 + PATHS_PLUGINS = "${cfg.dataDir}/plugins"; 12 13 PATHS_LOGS = "${cfg.dataDir}/log"; 13 14 14 15 SERVER_PROTOCOL = cfg.protocol; ··· 37 38 USERS_AUTO_ASSIGN_ORG_ROLE = cfg.users.autoAssignOrgRole; 38 39 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; 40 43 41 44 ANALYTICS_REPORTING_ENABLED = b2s cfg.analytics.reporting.enable; 42 45 } // cfg.extraOptions; ··· 196 199 default = false; 197 200 type = types.bool; 198 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 + 199 213 }; 200 214 201 215 analytics.reporting = { ··· 222 236 "Grafana passwords will be stored as plaintext in the Nix store!" 223 237 ]; 224 238 239 + environment.systemPackages = [ cfg.package ]; 240 + 225 241 systemd.services.grafana = { 226 242 description = "Grafana Service Daemon"; 227 243 wantedBy = ["multi-user.target"]; ··· 234 250 }; 235 251 preStart = '' 236 252 ln -fs ${cfg.package}/share/grafana/conf ${cfg.dataDir} 253 + ln -fs ${cfg.package}/share/grafana/vendor ${cfg.dataDir} 237 254 ''; 238 255 }; 239 256
+3 -2
pkgs/servers/monitoring/grafana/default.nix
··· 1 - { lib, buildGoPackage, fetchurl, fetchFromGitHub }: 1 + { lib, buildGoPackage, fetchurl, fetchFromGitHub, phantomjs2 }: 2 2 3 3 buildGoPackage rec { 4 4 version = "3.1.0"; ··· 22 22 postInstall = '' 23 23 tar -xvf $srcStatic 24 24 mkdir -p $bin/share/grafana 25 - mv grafana-*/{public,conf} $bin/share/grafana/ 25 + mv grafana-*/{public,conf,vendor} $bin/share/grafana/ 26 + ln -sf ${phantomjs2}/bin/phantomjs $bin/share/grafana/vendor/phantomjs/phantomjs 26 27 ''; 27 28 28 29 meta = with lib; {