diff options
Diffstat (limited to 'nix/module.nix')
| -rw-r--r-- | nix/module.nix | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/nix/module.nix b/nix/module.nix index 53a4d77..a175639 100644 --- a/nix/module.nix +++ b/nix/module.nix | |||
| @@ -282,13 +282,7 @@ let | |||
| 282 | SystemCallErrorNumber = "EPERM"; | 282 | SystemCallErrorNumber = "EPERM"; |
| 283 | }; | 283 | }; |
| 284 | 284 | ||
| 285 | # Ensure data directories exist before starting | 285 | # Directory creation handled by systemd tmpfiles (see config section below) |
| 286 | preStart = '' | ||
| 287 | mkdir -p ${cfg.dataDir}/git | ||
| 288 | mkdir -p ${cfg.dataDir}/relay | ||
| 289 | chown -R ${cfg.user}:${cfg.group} ${cfg.dataDir} | ||
| 290 | chmod 750 ${cfg.dataDir} | ||
| 291 | ''; | ||
| 292 | }; | 286 | }; |
| 293 | 287 | ||
| 294 | enabledInstances = | 288 | enabledInstances = |
| @@ -340,5 +334,13 @@ in { | |||
| 340 | systemd.services = mapAttrs' | 334 | systemd.services = mapAttrs' |
| 341 | (name: cfg: nameValuePair "ngit-grasp-${name}" (mkService name cfg)) | 335 | (name: cfg: nameValuePair "ngit-grasp-${name}" (mkService name cfg)) |
| 342 | enabledInstances; | 336 | enabledInstances; |
| 337 | |||
| 338 | # Create data directories with proper ownership using tmpfiles | ||
| 339 | # This runs as root before the service starts | ||
| 340 | systemd.tmpfiles.rules = flatten (mapAttrsToList (name: cfg: [ | ||
| 341 | "d ${cfg.dataDir} 0750 ${cfg.user} ${cfg.group} -" | ||
| 342 | "d ${cfg.dataDir}/git 0750 ${cfg.user} ${cfg.group} -" | ||
| 343 | "d ${cfg.dataDir}/relay 0750 ${cfg.user} ${cfg.group} -" | ||
| 344 | ]) enabledInstances); | ||
| 343 | }; | 345 | }; |
| 344 | } | 346 | } |