diff --git a/modules/media/arr-suite.nix b/modules/media/arr-suite.nix index 4ea1bc1..c42aa5d 100644 --- a/modules/media/arr-suite.nix +++ b/modules/media/arr-suite.nix @@ -6,57 +6,46 @@ }; config = lib.mkIf config.arrSuite.enable { + # Define a common group for media services + users.groups.media_services = {}; + + # Enable and configure the arr services services.sonarr = { enable = true; openFirewall = false; dataDir = "/storage/services/sonarr"; + group = "media_services"; }; services.radarr = { enable = true; openFirewall = false; dataDir = "/storage/services/radarr"; + group = "media_services"; }; services.readarr = { enable = true; openFirewall = false; dataDir = "/storage/services/readarr"; + group = "media_services"; }; services.prowlarr = { enable = true; openFirewall = false; - # extraGroups = [ "media_services" ]; + group = "media_services"; }; - # users.groups.prowlarr = {}; - - environment.systemPackages = [ - pkgs.unpackerr - ]; - users.groups.unpackerr = {}; - # 2. Define the 'unpackerr' user - users.users.unpackerr = { - description = "Unpackerr daemon user"; - isSystemUser = true; # This tells NixOS it's a system user - group = "unpackerr"; # Sets the primary group - extraGroups = [ "media_services" ]; # Add - }; - users.groups.radarr = {}; - users.groups.sonarr = {}; - users.groups.readarr = {}; + # Add users to the media group users.users.sonarr.extraGroups = [ "media_services" ]; users.users.radarr.extraGroups = [ "media_services" ]; users.users.readarr.extraGroups = [ "media_services" ]; - #users.users.prowlarr.extraGroups = [ "media_services" ]; + users.users.prowlarr.extraGroups = [ "media_services" ]; - - - systemd.tmpfiles.rules = [ - "d /storage/services/sonarr 0755 sonarr sonarr - -" - "d /storage/services/radarr 0755 radarr radarr - -" - "d /storage/services/readarr 0755 readarr readarr - -" - "d /storage/services/prowlarr 0755 prowlarr prowlarr - -" - ]; - - + # Configure unpackerr + environment.systemPackages = [ pkgs.unpackerr ]; + users.users.unpackerr = { + description = "Unpackerr daemon user"; + isSystemUser = true; + group = "media_services"; + }; }; } diff --git a/modules/media/qbittorrent.nix b/modules/media/qbittorrent.nix index b9ea061..cfed84c 100644 --- a/modules/media/qbittorrent.nix +++ b/modules/media/qbittorrent.nix @@ -4,8 +4,6 @@ with lib; let cfg = config.services.qbittorrent; - UID = 888; - GID = 888; in { options.services.qbittorrent = { @@ -25,7 +23,7 @@ in group = mkOption { type = types.str; - default = "qbittorrent"; + default = "media_services"; description = "Group under which qBittorrent runs."; }; @@ -83,12 +81,12 @@ in users.users = mkIf (cfg.user == "qbittorrent") { qbittorrent = { group = cfg.group; - uid = UID; + extraGroups = [ "media_services" ]; }; }; users.groups = mkIf (cfg.group == "qbittorrent") { - qbittorrent = { gid = GID; }; + qbittorrent = {}; }; }; } diff --git a/modules/nixos/homelab/services.nix b/modules/nixos/homelab/services.nix index 89cbc94..0ad5c67 100644 --- a/modules/nixos/homelab/services.nix +++ b/modules/nixos/homelab/services.nix @@ -19,10 +19,9 @@ users.users.c2c = { isSystemUser = true; group = "media_services"; + extraGroups = [ "media_services" ]; }; - users.groups.media_services = { }; - services.audiobookshelf = { enable = true; user = "audiobookshelf"; @@ -31,26 +30,19 @@ port = 13378; }; - users.groups.qbittorrent = { }; - users.users.qbittorrent = { - isSystemUser = true; - group = "qbittorrent"; - extraGroups = [ "media_services" ]; - }; - services.qbittorrent = { enable = true; profileDir = "/storage/services/qbittorrent"; user = "qbittorrent"; - group = "qbittorrent"; + group = "media_services"; webuiPort = 8090; openFirewall = true; package = pkgs.qbittorrent-nox; }; systemd.tmpfiles.rules = [ - "d /storage/services/qbittorrent 0755 qbittorrent qbittorrent - -" - "d /storage/services/qbittorrent/config 0755 qbittorrent qbittorrent - -" + "d /storage/services/qbittorrent 0755 qbittorrent media_services - -" + "d /storage/services/qbittorrent/config 0755 qbittorrent media_services - -" "d /media/storage/media/books/audio/podcasts/C2C 0775 c2c media_services - -" ]; @@ -83,7 +75,7 @@ "/media/storage/media/books/audio/podcasts/C2C:/downloads" "/media/storage/media/docker/volumes/c2cscrape:/app/data" ]; - user = "c2c:media_services"; + user = "${toString config.users.users.c2c.uid}:${toString config.users.groups.media_services.gid}"; environment = { TZ = "America/Los_Angeles"; }; diff --git a/modules/nixos/homelab/user.nix b/modules/nixos/homelab/user.nix index fe576a0..090314e 100644 --- a/modules/nixos/homelab/user.nix +++ b/modules/nixos/homelab/user.nix @@ -16,7 +16,7 @@ "media_services" "nextcloud" "docker" - "qbittorent" + "qbittorrent" "incus-admin" "libvirtd" ];