flake: make this a user package instead

This commit is contained in:
2025-03-02 23:06:52 -08:00
parent 6a574597c5
commit 0a86dbed49

View File

@@ -53,42 +53,25 @@
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;
RestartSec = 5;
# Audio/Video access
SupplementaryGroups = [ "audio" "video" ];
# Allow access to X11 for mpv
Environment = [ "DISPLAY=:0" ];
};
@@ -203,4 +186,4 @@
nixosModules.default = nixosModule;
nixosModules.queuecube = nixosModule;
};
}
}