summary refs log tree commit diff
path: root/nixos
diff options
context:
space:
mode:
authorRobert Schütz <rschuetz17@gmail.com>2018-04-13 11:55:10 +0200
committerGitHub <noreply@github.com>2018-04-13 11:55:10 +0200
commit3ea1f1dd8be7fa3ba014b66d3b32db61af308281 (patch)
tree2428aa7dea3308a5de157265ca7ec8108baeedcd /nixos
parentf204bdf93d7bb073e10644be47ebb797ce836d19 (diff)
parentec1419bad815fd7ffc54911239f39f3944c2d374 (diff)
downloadnixlib-3ea1f1dd8be7fa3ba014b66d3b32db61af308281.tar
nixlib-3ea1f1dd8be7fa3ba014b66d3b32db61af308281.tar.gz
nixlib-3ea1f1dd8be7fa3ba014b66d3b32db61af308281.tar.bz2
nixlib-3ea1f1dd8be7fa3ba014b66d3b32db61af308281.tar.lz
nixlib-3ea1f1dd8be7fa3ba014b66d3b32db61af308281.tar.xz
nixlib-3ea1f1dd8be7fa3ba014b66d3b32db61af308281.tar.zst
nixlib-3ea1f1dd8be7fa3ba014b66d3b32db61af308281.zip
Merge pull request #38820 from brainrape/nixos-prosody-add-user-group
nixos/prosody: add user/group options, fix pidfile path
Diffstat (limited to 'nixos')
-rw-r--r--nixos/modules/services/networking/prosody.nix26
1 files changed, 20 insertions, 6 deletions
diff --git a/nixos/modules/services/networking/prosody.nix b/nixos/modules/services/networking/prosody.nix
index f409962816dc..1b4f81f6b56e 100644
--- a/nixos/modules/services/networking/prosody.nix
+++ b/nixos/modules/services/networking/prosody.nix
@@ -301,6 +301,18 @@ in
         default = "/var/lib/prosody";
       };
 
+      user = mkOption {
+        type = types.str;
+        default = "prosody";
+        description = "User account under which prosody runs.";
+      };
+
+      group = mkOption {
+        type = types.str;
+        default = "prosody";
+        description = "Group account under which prosody runs.";
+      };
+
       allowRegistration = mkOption {
         type = types.bool;
         default = false;
@@ -427,7 +439,7 @@ in
 
     environment.etc."prosody/prosody.cfg.lua".text = ''
 
-      pidfile = "${cfg.dataDir}/prosody.pid"
+      pidfile = "/run/prosody/prosody.pid"
 
       log = "*syslog"
 
@@ -475,15 +487,15 @@ in
         '') cfg.virtualHosts) }
     '';
 
-    users.extraUsers.prosody = {
+    users.extraUsers.prosody = mkIf (cfg.user == "prosody") {
       uid = config.ids.uids.prosody;
       description = "Prosody user";
       createHome = true;
-      group = "prosody";
+      inherit (cfg) group;
       home = "${cfg.dataDir}";
     };
 
-    users.extraGroups.prosody = {
+    users.extraGroups.prosody = mkIf (cfg.group == "prosody") {
       gid = config.ids.gids.prosody;
     };
 
@@ -494,9 +506,11 @@ in
       wantedBy = [ "multi-user.target" ];
       restartTriggers = [ config.environment.etc."prosody/prosody.cfg.lua".source ];
       serviceConfig = {
-        User = "prosody";
+        User = cfg.user;
+        Group = cfg.group;
         Type = "forking";
-        PIDFile = "${cfg.dataDir}/prosody.pid";
+        RuntimeDirectory = [ "prosody" ];
+        PIDFile = "/run/prosody/prosody.pid";
         ExecStart = "${cfg.package}/bin/prosodyctl start";
       };
     };