diff --git a/module.nix b/module.nix index 4cb3a56..de3331e 100644 --- a/module.nix +++ b/module.nix @@ -29,16 +29,20 @@ in default = 9000; description = "Listen on this port."; }; + stateDir = mkOption { + default = "/var/lib/strojnadzor"; + type = types.str; + description = "Strojnadzor data directory."; + }; }; }; config = mkIf cfg.enable { users.users.strojnadzor = { description = "Strojnadzor user"; - createHome = true; isSystemUser = true; group = "strojnadzor"; - home = "/var/lib/strojnadzor"; + home = cfg.stateDir; }; users.groups.strojnadzor = {}; @@ -46,6 +50,12 @@ in environment.systemPackages = [ strojnadzor ]; + + systemd.tmpfiles.rules = [ + "d '${cfg.stateDir}' - strojnadzor strojnadzor - -" + "d '${cfg.stateDir}/data' - strojnadzor strojnadzor - -" + ]; + systemd.services.strojnadzor = { description = "Strojnadzor HTTP server."; @@ -57,7 +67,7 @@ in ExecStartPre = "${strojnadzor}/bin/strojnadzor-admin migrate"; ExecStart = "${strojnadzor}/bin/strojnadzor-admin runserver-uvicorn ${cfg.hostname} ${toString cfg.port}"; }; - environment.STROJNADZOR_DATA_DIR = "/var/lib/strojnadzor/data"; + environment.STROJNADZOR_DATA_DIR = "${cfg.stateDir}/data"; }; }; }