about summary refs log tree commit diff
path: root/ops/modules/cgit.nix
diff options
context:
space:
mode:
Diffstat (limited to 'ops/modules/cgit.nix')
-rw-r--r--ops/modules/cgit.nix22
1 files changed, 19 insertions, 3 deletions
diff --git a/ops/modules/cgit.nix b/ops/modules/cgit.nix
index 25318d1d723e..fc3f17158579 100644
--- a/ops/modules/cgit.nix
+++ b/ops/modules/cgit.nix
@@ -3,6 +3,14 @@
 
 let
   cfg = config.services.depot.cgit;
+
+  userConfig =
+    if builtins.isNull cfg.user then {
+      DynamicUser = true;
+    } else {
+      User = cfg.user;
+      Group = cfg.user;
+    };
 in
 {
   options.services.depot.cgit = with lib; {
@@ -19,6 +27,16 @@ in
       type = types.str;
       default = "/var/lib/gerrit/git/depot.git/";
     };
+
+    user = mkOption {
+      description = ''
+        User to use for the cgit service. It is expected that this is
+        also the name of the user's primary group.
+      '';
+
+      type = with types; nullOr str;
+      default = null;
+    };
   };
 
   config = lib.mkIf cfg.enable {
@@ -27,13 +45,11 @@ in
 
       serviceConfig = {
         Restart = "on-failure";
-        User = "git";
-        Group = "git";
 
         ExecStart = depot.web.cgit-tvl.override {
           inherit (cfg) port repo;
         };
-      };
+      } // userConfig;
     };
   };
 }