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