flake: make this a user package instead
This commit is contained in:
31
flake.nix
31
flake.nix
@@ -53,41 +53,24 @@
|
||||
|
||||
user = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "queuecube";
|
||||
description = "User account under which QueueCube runs";
|
||||
};
|
||||
|
||||
group = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "queuecube";
|
||||
description = "Group under which QueueCube runs";
|
||||
description = "User account under which QueueCube runs (required)";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
users.users.${cfg.user} = lib.mkIf (cfg.user == "queuecube") {
|
||||
isSystemUser = true;
|
||||
group = cfg.group;
|
||||
description = "QueueCube service user";
|
||||
home = "/var/lib/queuecube";
|
||||
createHome = true;
|
||||
users.users.${cfg.user} = {
|
||||
packages = [ self.packages.${pkgs.system}.queuecube ];
|
||||
};
|
||||
|
||||
users.groups.${cfg.group} = lib.mkIf (cfg.group == "queuecube") {};
|
||||
|
||||
systemd.services.queuecube = {
|
||||
systemd.user.services.queuecube = {
|
||||
description = "QueueCube media player service";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "network.target" ];
|
||||
wantedBy = [ "default.target" ];
|
||||
after = [ "pipewire.service" "pipewire-pulse.service" ];
|
||||
|
||||
serviceConfig = {
|
||||
ExecStart = "${self.packages.${pkgs.system}.queuecube}/bin/queuecube";
|
||||
Restart = "on-failure";
|
||||
User = cfg.user;
|
||||
Group = cfg.group;
|
||||
|
||||
# Audio/Video access
|
||||
SupplementaryGroups = [ "audio" "video" ];
|
||||
RestartSec = 5;
|
||||
|
||||
# Allow access to X11 for mpv
|
||||
Environment = [ "DISPLAY=:0" ];
|
||||
|
||||
Reference in New Issue
Block a user