diff --git a/nixos/modules/services/audio/music-assistant.nix b/nixos/modules/services/audio/music-assistant.nix index b38e77ce9f4e..b56da132c801 100644 --- a/nixos/modules/services/audio/music-assistant.nix +++ b/nixos/modules/services/audio/music-assistant.nix @@ -26,6 +26,9 @@ let finalPackage = cfg.package.override { inherit (cfg) providers; }; + + # YouTube Music needs deno with JIT to solve yt-dlp challenges + useYTMusic = lib.elem "ytmusic" cfg.providers; in { @@ -89,6 +92,10 @@ in ] ++ lib.optionals (lib.elem "snapcast" cfg.providers) [ snapcast + ] + ++ lib.optionals useYTMusic [ + deno + ffmpeg ]; serviceConfig = { @@ -104,7 +111,7 @@ in CapabilityBoundingSet = [ "" ]; DevicePolicy = "closed"; LockPersonality = true; - MemoryDenyWriteExecute = true; + MemoryDenyWriteExecute = !useYTMusic; ProcSubset = "pid"; ProtectClock = true; ProtectControlGroups = true; @@ -125,6 +132,9 @@ in SystemCallFilter = [ "@system-service" "~@privileged @resources" + ] + ++ lib.optionals useYTMusic [ + "@pkey" ]; RestrictSUIDSGID = true; UMask = "0077";