Fix shairport-sync module to create and set an explicit group

This commit is contained in:
kyren 2021-12-03 01:19:07 -05:00
parent 2a295f42c8
commit c23851c47e

View File

@ -53,6 +53,15 @@ in
'';
};
group = mkOption {
type = types.str;
default = "shairport";
description = ''
Group account name under which to run shairport-sync. The account
will be created.
'';
};
};
};
@ -66,14 +75,17 @@ in
services.avahi.publish.enable = true;
services.avahi.publish.userServices = true;
users.users.${cfg.user} =
{ description = "Shairport user";
users = {
users.${cfg.user} = {
description = "Shairport user";
isSystemUser = true;
createHome = true;
home = "/var/lib/shairport-sync";
group = cfg.group;
extraGroups = [ "audio" ] ++ optional config.hardware.pulseaudio.enable "pulse";
};
groups.${cfg.group} = {};
};
networking.firewall = mkIf cfg.openFirewall {
allowedTCPPorts = [ 5000 ];
@ -87,6 +99,7 @@ in
wantedBy = [ "multi-user.target" ];
serviceConfig = {
User = cfg.user;
Group = cfg.group;
ExecStart = "${pkgs.shairport-sync}/bin/shairport-sync ${cfg.arguments}";
RuntimeDirectory = "shairport-sync";
};