summary refs log tree commit diff
path: root/nixos/modules/services/networking
diff options
context:
space:
mode:
authorJoachim Fasting <joachifm@users.noreply.github.com>2016-05-12 13:01:38 +0200
committerJoachim Fasting <joachifm@users.noreply.github.com>2016-05-12 13:01:38 +0200
commit639dcffa0bd7a5068a86bd41705d9a84e6267c32 (patch)
tree18d6c8efdf9014d7e118ad81302d1d90e77f7dc4 /nixos/modules/services/networking
parent25e3c091a07374f49ff74d0a69a4515715bff43b (diff)
parent11b0972544d6761a56d922af9a48b9e05863d6b2 (diff)
downloadnixlib-639dcffa0bd7a5068a86bd41705d9a84e6267c32.tar
nixlib-639dcffa0bd7a5068a86bd41705d9a84e6267c32.tar.gz
nixlib-639dcffa0bd7a5068a86bd41705d9a84e6267c32.tar.bz2
nixlib-639dcffa0bd7a5068a86bd41705d9a84e6267c32.tar.lz
nixlib-639dcffa0bd7a5068a86bd41705d9a84e6267c32.tar.xz
nixlib-639dcffa0bd7a5068a86bd41705d9a84e6267c32.tar.zst
nixlib-639dcffa0bd7a5068a86bd41705d9a84e6267c32.zip
Merge pull request #15403 from Shados/maintain-teamspeak-server
teamspeak-server package & module maintenance
Diffstat (limited to 'nixos/modules/services/networking')
-rw-r--r--nixos/modules/services/networking/teamspeak3.nix47
1 files changed, 23 insertions, 24 deletions
diff --git a/nixos/modules/services/networking/teamspeak3.nix b/nixos/modules/services/networking/teamspeak3.nix
index b3656d73dec0..5f04926eed24 100644
--- a/nixos/modules/services/networking/teamspeak3.nix
+++ b/nixos/modules/services/networking/teamspeak3.nix
@@ -10,13 +10,12 @@ let
 in
 
 {
-  
+
   ###### interface
 
   options = {
 
     services.teamspeak3 = {
-
       enable = mkOption {
         type = types.bool;
         default = false;
@@ -96,34 +95,32 @@ in
 
   ###### implementation
 
-  config = mkIf cfg.enable {
-
-    users.extraUsers.teamspeak =
-      { name = "teamspeak";
+  config = mkMerge [
+    (mkIf cfg.enable {
+      users.users.teamspeak = {
         description = "Teamspeak3 voice communication server daemon";
         group = group;
         uid = config.ids.uids.teamspeak;
+        home = cfg.dataDir;
+        createHome = true;
       };
 
-    users.extraGroups.teamspeak =
-      { name = "teamspeak";
+      users.groups.teamspeak = {
         gid = config.ids.gids.teamspeak;
       };
 
-    systemd.services.teamspeak3-server = { 
-      description = "Teamspeak3 voice communication server daemon";
-      after = [ "network.target" ];
-      wantedBy = [ "multi-user.target" ];
+      systemd.services.teamspeak3-server = {
+        description = "Teamspeak3 voice communication server daemon";
+        after = [ "network.target" ];
+        wantedBy = [ "multi-user.target" ];
 
-      preStart = ''
-        mkdir -p ${cfg.dataDir}
-        mkdir -p ${cfg.logPath}
-        chown ${user}:${group} ${cfg.dataDir}
-        chown ${user}:${group} ${cfg.logPath}
-      '';
+        preStart = ''
+          mkdir -p ${cfg.logPath}
+          chown ${user}:${group} ${cfg.logPath}
+        '';
 
-      serviceConfig =
-        { ExecStart = ''
+        serviceConfig = {
+          ExecStart = ''
             ${ts3}/bin/ts3server \
               dbsqlpath=${ts3}/lib/teamspeak/sql/ logpath=${cfg.logPath} \
               voice_ip=${cfg.voiceIP} default_voice_port=${toString cfg.defaultVoicePort} \
@@ -133,10 +130,12 @@ in
           WorkingDirectory = cfg.dataDir;
           User = user;
           Group = group;
-          PermissionsStartOnly = true; # preStart needs to run with root permissions
+          PermissionsStartOnly = true;
         };
       };
-
-  };
-
+    })
+    {
+      meta.maintainers = with lib.maintainers; [ arobyn ];
+    }
+  ];
 }