diff --git a/system/options.nix b/system/options.nix index 862a8224fbf8..1e9081e0e3b7 100644 --- a/system/options.nix +++ b/system/options.nix @@ -1989,7 +1989,7 @@ authentication = mkOption { default = '' # Generated file; do not edit! - local all all ident sameuser + local all all ident sameuser host all all 127.0.0.1/32 md5 host all all ::1/128 md5 ''; diff --git a/upstart-jobs/apache-httpd/default.nix b/upstart-jobs/apache-httpd/default.nix index 7d53706c60e5..8bcd2c7aaa9a 100644 --- a/upstart-jobs/apache-httpd/default.nix +++ b/upstart-jobs/apache-httpd/default.nix @@ -55,7 +55,18 @@ let if svc ? function then svc.function else import (./noDir/.. + ("/" + svc.serviceName + ".nix")); config = addDefaultOptionValues res.options svc.config; - res = svcFunction {inherit config pkgs serverInfo;}; + defaults = { + extraConfig = ""; + extraModules = []; + extraModulesPre = []; + extraPath = []; + extraServerPath = []; + globalEnvVars = []; + robotsEntries = ""; + startupScript = ""; + options = {}; + }; + res = defaults // svcFunction {inherit config pkgs serverInfo;}; in res; in map f defs; diff --git a/upstart-jobs/apache-httpd/twiki.nix b/upstart-jobs/apache-httpd/twiki.nix index f72e92c84eaa..54614aca24ce 100644 --- a/upstart-jobs/apache-httpd/twiki.nix +++ b/upstart-jobs/apache-httpd/twiki.nix @@ -111,15 +111,4 @@ in { Disallow: /pt/bin/ ''; - # !!! should not be needed - extraModulesPre = []; - extraModules = []; - globalEnvVars = []; - extraServerPath = []; - extraPath = []; - startupScript = null; - - options = { - }; - } \ No newline at end of file diff --git a/upstart-jobs/apache-httpd/zabbix.nix b/upstart-jobs/apache-httpd/zabbix.nix new file mode 100644 index 000000000000..c7f48fe7df6a --- /dev/null +++ b/upstart-jobs/apache-httpd/zabbix.nix @@ -0,0 +1,58 @@ +{config, pkgs, serverInfo}: + +let + + # The Zabbix PHP frontend needs to be able to write its + # configuration settings (the connection info to the database) to + # the "conf" subdirectory. So symlink $out/conf to some directory + # outside of the Nix store where we want to keep this stateful info. + # Note that different instances of the frontend will therefore end + # up with their own copies of the PHP sources. !!! Alternatively, + # we could generate zabbix.conf.php declaratively. + zabbixPHP = pkgs.runCommand "${pkgs.zabbixServer.name}-php" {} '' + cp -rs ${pkgs.zabbixServer}/share/zabbix/php $out + chmod -R u+w $out + #rm -rf $out/conf + ln -s ${config.stateDir}/zabbix.conf.php $out/conf/zabbix.conf.php + ''; + +in + +{ + + extraConfig = '' + Alias ${config.urlPrefix}/ ${zabbixPHP}/ + + + DirectoryIndex index.php + Order deny,allow + Allow from * + + ''; + + startupScript = pkgs.writeScript "zabbix-startup-hook" '' + mkdir -p ${config.stateDir} + chown -R ${serverInfo.serverConfig.user} ${config.stateDir} + ''; + + options = { + + urlPrefix = pkgs.lib.mkOption { + default = "/zabbix"; + description = " + The URL prefix under which the Zabbix service appears. + Use the empty string to have it appear in the server root. + "; + }; + + stateDir = pkgs.lib.mkOption { + default = "/var/lib/zabbix/frontend"; + description = " + Directory where the dynamically generated configuration data + of the PHP frontend will be stored. + "; + }; + + }; + +}