Files
keikos.work/module.nix

53 lines
1.1 KiB
Nix
Raw Permalink Normal View History

2024-12-15 22:01:37 -03:00
{
config,
lib,
...
}: let
cfg = config.services.keikos.web;
in {
options.services.keikos.web = with lib;
with lib.types; {
enable = mkEnableOption "";
port = mkOption {
type = port;
default = 7331;
};
package = mkOption {
type = package;
default = config._keikos-flake.pkg;
};
user = mkOption {
type = str;
default = "keikoswork";
};
group = mkOption {
type = str;
default = "keikoswork";
};
2025-03-30 17:53:45 -03:00
envFile = mkOption {
type = path;
};
2024-12-15 22:01:37 -03:00
};
config = with lib;
mkIf cfg.enable {
systemd.services."keikoswork" = {
after = ["network.target"];
wantedBy = ["multi-user.target"];
serviceConfig = {
Type = "simple";
User = cfg.user;
Group = cfg.group;
ExecStart = "${lib.escapeShellArg (lib.getExe cfg.package)} web -port ${toString cfg.port}";
Restart = "on-success";
2025-03-30 17:53:45 -03:00
EnvironmentFile = cfg.envFile;
2024-12-15 22:01:37 -03:00
};
};
users.users."${cfg.user}" = {
isSystemUser = true;
group = cfg.group;
};
users.groups."${cfg.group}" = {};
};
}