diff options
author | Volth <volth@webmaster.ms> | 2017-06-29 22:21:16 +0000 |
---|---|---|
committer | Volth <volth@webmaster.ms> | 2017-06-29 22:41:22 +0000 |
commit | 99b8d5ebe67a5aeb97c4a4202441d91c7d469e12 (patch) | |
tree | cc9f5b5e042dd3d1d114849056c8455618a9637d /nixos/modules/services/web-servers/lighttpd | |
parent | dc9f69c260139c23fa4944826acc3d46ef1a3237 (diff) | |
download | nixpkgs-99b8d5ebe67a5aeb97c4a4202441d91c7d469e12.tar nixpkgs-99b8d5ebe67a5aeb97c4a4202441d91c7d469e12.tar.gz nixpkgs-99b8d5ebe67a5aeb97c4a4202441d91c7d469e12.tar.bz2 nixpkgs-99b8d5ebe67a5aeb97c4a4202441d91c7d469e12.tar.lz nixpkgs-99b8d5ebe67a5aeb97c4a4202441d91c7d469e12.tar.xz nixpkgs-99b8d5ebe67a5aeb97c4a4202441d91c7d469e12.tar.zst nixpkgs-99b8d5ebe67a5aeb97c4a4202441d91c7d469e12.zip |
lighttpd: add collectd submodule
Diffstat (limited to 'nixos/modules/services/web-servers/lighttpd')
-rw-r--r-- | nixos/modules/services/web-servers/lighttpd/collectd.nix | 58 |
1 files changed, 58 insertions, 0 deletions
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 00000000000..35b5edced68 --- /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}" + ) + } + ''; + }; + +} |