diff options
author | Joachim F <joachifm@users.noreply.github.com> | 2017-07-02 11:49:06 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-07-02 11:49:06 +0100 |
commit | c2576ac2d37882709be41227202a1dc691b22192 (patch) | |
tree | 19793f74af054c69428eebcc5333f89d9d41d97b | |
parent | e20364a93788b4a8e0a7951cd6ac3d3a5088f4ed (diff) | |
parent | 99b8d5ebe67a5aeb97c4a4202441d91c7d469e12 (diff) | |
download | nixlib-c2576ac2d37882709be41227202a1dc691b22192.tar nixlib-c2576ac2d37882709be41227202a1dc691b22192.tar.gz nixlib-c2576ac2d37882709be41227202a1dc691b22192.tar.bz2 nixlib-c2576ac2d37882709be41227202a1dc691b22192.tar.lz nixlib-c2576ac2d37882709be41227202a1dc691b22192.tar.xz nixlib-c2576ac2d37882709be41227202a1dc691b22192.tar.zst nixlib-c2576ac2d37882709be41227202a1dc691b22192.zip |
Merge pull request #26978 from volth/lighttpd-collectd-submodule
lighttpd: add collectd submodule
-rw-r--r-- | nixos/modules/module-list.nix | 1 | ||||
-rw-r--r-- | nixos/modules/services/web-servers/lighttpd/collectd.nix | 58 |
2 files changed, 59 insertions, 0 deletions
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index d5aa6bedb98d..1f6b7caba81f 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -587,6 +587,7 @@ ./services/web-servers/fcgiwrap.nix ./services/web-servers/jboss/default.nix ./services/web-servers/lighttpd/cgit.nix + ./services/web-servers/lighttpd/collectd.nix ./services/web-servers/lighttpd/default.nix ./services/web-servers/lighttpd/gitweb.nix ./services/web-servers/lighttpd/inginious.nix diff --git a/nixos/modules/services/web-servers/lighttpd/collectd.nix b/nixos/modules/services/web-servers/lighttpd/collectd.nix new file mode 100644 index 000000000000..35b5edced68b --- /dev/null +++ b/nixos/modules/services/web-servers/lighttpd/collectd.nix @@ -0,0 +1,58 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.services.lighttpd.collectd; + + collectionConf = pkgs.writeText "collection.conf" '' + datadir: "${config.services.collectd.dataDir}" + libdir: "${config.services.collectd.package}/lib/collectd" + ''; + + defaultCollectionCgi = config.services.collectd.package.overrideDerivation(old: { + name = "collection.cgi"; + configurePhase = "true"; + buildPhase = "true"; + installPhase = '' + substituteInPlace contrib/collection.cgi --replace '"/etc/collection.conf"' '$ENV{COLLECTION_CONF}' + cp contrib/collection.cgi $out + ''; + }); +in +{ + + options.services.lighttpd.collectd = { + + enable = mkEnableOption "collectd subservice accessible at http://yourserver/collectd"; + + collectionCgi = mkOption { + type = types.path; + default = defaultCollectionCgi; + description = '' + Path to collection.cgi script from (collectd sources)/contrib/collection.cgi + This option allows to use a customized version + ''; + }; + }; + + config = mkIf cfg.enable { + services.lighttpd.enableModules = [ "mod_cgi" "mod_alias" "mod_setenv" ]; + + services.lighttpd.extraConfig = '' + $HTTP["url"] =~ "^/collectd" { + cgi.assign = ( + ".cgi" => "${pkgs.perl}/bin/perl" + ) + alias.url = ( + "/collectd" => "${cfg.collectionCgi}" + ) + setenv.add-environment = ( + "PERL5LIB" => "${with pkgs; lib.makePerlPath [ perlPackages.CGI perlPackages.HTMLParser perlPackages.URI rrdtool ]}", + "COLLECTION_CONF" => "${collectionConf}" + ) + } + ''; + }; + +} |