Merge pull request #281000 from cablespaghetti/master
sabnzbd: Add configurability of state directory owner and firewall
This commit is contained in:
commit
d1e2847664
1 changed files with 23 additions and 11 deletions
|
@ -36,6 +36,14 @@ in
|
|||
default = "sabnzbd";
|
||||
description = lib.mdDoc "Group to run the service as";
|
||||
};
|
||||
|
||||
openFirewall = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = lib.mdDoc ''
|
||||
Open ports in the firewall for the sabnzbd web interface
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -43,17 +51,16 @@ in
|
|||
###### implementation
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
|
||||
users.users.sabnzbd = {
|
||||
uid = config.ids.uids.sabnzbd;
|
||||
group = "sabnzbd";
|
||||
description = "sabnzbd user";
|
||||
home = "/var/lib/sabnzbd/";
|
||||
createHome = true;
|
||||
users.users = mkIf (cfg.user == "sabnzbd") {
|
||||
sabnzbd = {
|
||||
uid = config.ids.uids.sabnzbd;
|
||||
group = cfg.group;
|
||||
description = "sabnzbd user";
|
||||
};
|
||||
};
|
||||
|
||||
users.groups.sabnzbd = {
|
||||
gid = config.ids.gids.sabnzbd;
|
||||
users.groups = mkIf (cfg.group == "sabnzbd") {
|
||||
sabnzbd.gid = config.ids.gids.sabnzbd;
|
||||
};
|
||||
|
||||
systemd.services.sabnzbd = {
|
||||
|
@ -63,10 +70,15 @@ in
|
|||
serviceConfig = {
|
||||
Type = "forking";
|
||||
GuessMainPID = "no";
|
||||
User = "${cfg.user}";
|
||||
Group = "${cfg.group}";
|
||||
User = cfg.user;
|
||||
Group = cfg.group;
|
||||
StateDirectory = "sabnzbd";
|
||||
ExecStart = "${lib.getBin cfg.package}/bin/sabnzbd -d -f ${cfg.configFile}";
|
||||
};
|
||||
};
|
||||
|
||||
networking.firewall = mkIf cfg.openFirewall {
|
||||
allowedTCPPorts = [ 8080 ];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue