diff --git a/nixos/modules/services/misc/taskserver/default.nix b/nixos/modules/services/misc/taskserver/default.nix index 64ff7437fb08..592514718940 100644 --- a/nixos/modules/services/misc/taskserver/default.nix +++ b/nixos/modules/services/misc/taskserver/default.nix @@ -498,16 +498,16 @@ in ca.cert = if needToCreateCA then "${cfg.dataDir}/keys/ca.cert" else "${cfg.pki.manual.ca.cert}"; }; + systemd.tmpfiles.rules = [ + "d ${cfg.dataDir} 0770 ${cfg.user} ${cfg.group}" + "z ${cfg.dataDir} 0770 ${cfg.user} ${cfg.group}" + ]; + systemd.services.taskserver-init = { wantedBy = [ "taskserver.service" ]; before = [ "taskserver.service" ]; description = "Initialize Taskserver Data Directory"; - preStart = '' - mkdir -m 0770 -p "${cfg.dataDir}" - chown "${cfg.user}:${cfg.group}" "${cfg.dataDir}" - ''; - script = '' ${taskd} init touch "${cfg.dataDir}/.is_initialized" diff --git a/nixos/tests/taskserver.nix b/nixos/tests/taskserver.nix index bd4dac40da87..31dfea00435c 100644 --- a/nixos/tests/taskserver.nix +++ b/nixos/tests/taskserver.nix @@ -114,7 +114,7 @@ import ./make-test-python.nix ( testScript = { nodes, ... }: let - cfg = nodes.server.config.services.taskserver; + cfg = nodes.server.services.taskserver; portStr = toString cfg.listenPort; specialisations = "${nodes.server.system.build.toplevel}/specialisation"; newServerSystem = "${specialisations}/manual_config";