nixos squeezelite: run using DynamicUser
This commit is contained in:
parent
4a73fa3126
commit
440556a77c
@ -272,7 +272,7 @@
|
|||||||
nzbget = 245;
|
nzbget = 245;
|
||||||
mosquitto = 246;
|
mosquitto = 246;
|
||||||
toxvpn = 247;
|
toxvpn = 247;
|
||||||
squeezelite = 248;
|
# squeezelite = 248; # DynamicUser = true
|
||||||
turnserver = 249;
|
turnserver = 249;
|
||||||
smokeping = 250;
|
smokeping = 250;
|
||||||
gocd-agent = 251;
|
gocd-agent = 251;
|
||||||
|
@ -3,9 +3,7 @@
|
|||||||
with lib;
|
with lib;
|
||||||
|
|
||||||
let
|
let
|
||||||
|
dataDir = "/var/lib/squeezelite";
|
||||||
uid = config.ids.uids.squeezelite;
|
|
||||||
cfg = config.services.squeezelite;
|
|
||||||
|
|
||||||
in {
|
in {
|
||||||
|
|
||||||
@ -17,14 +15,6 @@ in {
|
|||||||
|
|
||||||
enable = mkEnableOption "Squeezelite, a software Squeezebox emulator";
|
enable = mkEnableOption "Squeezelite, a software Squeezebox emulator";
|
||||||
|
|
||||||
dataDir = mkOption {
|
|
||||||
default = "/var/lib/squeezelite";
|
|
||||||
type = types.str;
|
|
||||||
description = ''
|
|
||||||
The directory where Squeezelite stores its name file.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
extraArguments = mkOption {
|
extraArguments = mkOption {
|
||||||
default = "";
|
default = "";
|
||||||
type = types.str;
|
type = types.str;
|
||||||
@ -46,22 +36,14 @@ in {
|
|||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
after = [ "network.target" "sound.target" ];
|
after = [ "network.target" "sound.target" ];
|
||||||
description = "Software Squeezebox emulator";
|
description = "Software Squeezebox emulator";
|
||||||
preStart = "mkdir -p ${cfg.dataDir} && chown -R squeezelite ${cfg.dataDir}";
|
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
ExecStart = "${pkgs.squeezelite}/bin/squeezelite -N ${cfg.dataDir}/player-name ${cfg.extraArguments}";
|
DynamicUser = true;
|
||||||
User = "squeezelite";
|
ExecStart = "${pkgs.squeezelite}/bin/squeezelite -N ${dataDir}/player-name ${cfg.extraArguments}";
|
||||||
PermissionsStartOnly = true;
|
StateDirectory = builtins.baseNameOf dataDir;
|
||||||
|
SupplementaryGroups = "audio";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
users.users.squeezelite= {
|
|
||||||
inherit uid;
|
|
||||||
group = "nogroup";
|
|
||||||
extraGroups = [ "audio" ];
|
|
||||||
description = "Squeezelite user";
|
|
||||||
home = "${cfg.dataDir}";
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user