nixos/grafana: set plugins path, fix image generation

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

Changed files
+20 -2
nixos
modules
services
monitoring
pkgs
servers
monitoring
grafana
+17
nixos/modules/services/monitoring/grafana.nix
···
envOptions = {
PATHS_DATA = cfg.dataDir;
+
PATHS_PLUGINS = "${cfg.dataDir}/plugins";
PATHS_LOGS = "${cfg.dataDir}/log";
SERVER_PROTOCOL = cfg.protocol;
···
USERS_AUTO_ASSIGN_ORG_ROLE = cfg.users.autoAssignOrgRole;
AUTH_ANONYMOUS_ENABLED = b2s cfg.auth.anonymous.enable;
+
AUTH_ANONYMOUS_ORG_NAME = cfg.auth.anonymous.org_name;
+
AUTH_ANONYMOUS_ORG_ROLE = cfg.auth.anonymous.org_role;
ANALYTICS_REPORTING_ENABLED = b2s cfg.analytics.reporting.enable;
} // cfg.extraOptions;
···
default = false;
type = types.bool;
};
+
org_name = mkOption {
+
description = "Which organization to allow anonymous access to";
+
default = "Main Org.";
+
type = types.str;
+
};
+
org_role = mkOption {
+
description = "Which role anonymous users have in the organization";
+
default = "Viewer";
+
type = types.str;
+
};
+
};
analytics.reporting = {
···
"Grafana passwords will be stored as plaintext in the Nix store!"
];
+
environment.systemPackages = [ cfg.package ];
+
systemd.services.grafana = {
description = "Grafana Service Daemon";
wantedBy = ["multi-user.target"];
···
};
preStart = ''
ln -fs ${cfg.package}/share/grafana/conf ${cfg.dataDir}
+
ln -fs ${cfg.package}/share/grafana/vendor ${cfg.dataDir}
'';
};
+3 -2
pkgs/servers/monitoring/grafana/default.nix
···
-
{ lib, buildGoPackage, fetchurl, fetchFromGitHub }:
+
{ lib, buildGoPackage, fetchurl, fetchFromGitHub, phantomjs2 }:
buildGoPackage rec {
version = "3.1.0";
···
postInstall = ''
tar -xvf $srcStatic
mkdir -p $bin/share/grafana
-
mv grafana-*/{public,conf} $bin/share/grafana/
+
mv grafana-*/{public,conf,vendor} $bin/share/grafana/
+
ln -sf ${phantomjs2}/bin/phantomjs $bin/share/grafana/vendor/phantomjs/phantomjs
'';
meta = with lib; {