From aeced64d0e8268271edda3486259b36abf8c09f1 Mon Sep 17 00:00:00 2001 From: Michael Raskin <7c6f434c@mail.ru> Date: Mon, 3 Dec 2007 04:48:31 +0000 Subject: [PATCH] Added PostgreSQL job. svn path=/nixos/trunk/; revision=9830 --- system/options.nix | 46 +++++++++++++++++++++++++++++++++++++ upstart-jobs/default.nix | 8 +++++++ upstart-jobs/postgresql.nix | 30 ++++++++++++++++++++++++ 3 files changed, 84 insertions(+) create mode 100644 upstart-jobs/postgresql.nix diff --git a/system/options.nix b/system/options.nix index 9232e9a8c52..dae2763943d 100644 --- a/system/options.nix +++ b/system/options.nix @@ -1252,6 +1252,52 @@ }; + postgresql = { + enable = mkOption { + default = false; + description = " + Whether to run PostgreSQL. + "; + }; + port = mkOption { + default = "5432"; + description = " + Port for PostgreSQL. + "; + }; + logDir = mkOption { + default = "/var/log/postgresql"; + description = " + Log directory for PostgreSQL. + "; + }; + dataDir = mkOption { + default = "/var/db/postgresql"; + description = " + Data directory for PostgreSQL. + "; + }; + subServices = mkOption { + default = []; + description = " + Subservices list. As it is already implememnted, + here is an interface... + "; + }; + allowedHosts = mkOption { + default = []; + description = " + Hosts (except localhost), who you allow to connect. + "; + }; + authMethod = mkOption { + default = " ident sameuser "; + description = " + How to authorize users. + Note: ident needs absolute trust to all allowed client hosts."; + }; + }; + }; diff --git a/upstart-jobs/default.nix b/upstart-jobs/default.nix index 85358be096b..993fb12528a 100644 --- a/upstart-jobs/default.nix +++ b/upstart-jobs/default.nix @@ -167,6 +167,14 @@ let (map (job: job.extraHttpdConfig) jobs); }) + # Postgres SQL server + ++ optional config.services.postgresql.enable + (import ../upstart-jobs/postgresql.nix { + inherit config pkgs; + startDependency = if config.services.gw6c.enable then + "gw6c" else "network-interfaces"; + }) + # Samba service. ++ optional config.services.samba.enable (import ../upstart-jobs/samba.nix { diff --git a/upstart-jobs/postgresql.nix b/upstart-jobs/postgresql.nix new file mode 100644 index 00000000000..9b74c76befc --- /dev/null +++ b/upstart-jobs/postgresql.nix @@ -0,0 +1,30 @@ +args: with args; + +let + +cfg = config.services.postgresql; +postgresqlService = import ../services/postgresql { + inherit (pkgs) stdenv postgresql su; + inherit (cfg) port logDir dataDir + subServices allowedHosts + authMethod; + serverUser = "postgres"; +}; + +in +{ + name = "postgresql"; + users = [ { + name = "postgres"; + description = "PostgreSQL server user"; + } ]; + groups = [{name = "postgres";}]; + job = " +description \"PostgreSQL server\" + +start on ${startDependency}/started +stop on ${startDependency}/stop + +respawn ${postgresqlService}/bin/control start + "; +}