169 lines
3.2 KiB
Nix
169 lines
3.2 KiB
Nix
{
|
|
pkgs,
|
|
inputs,
|
|
...
|
|
}:
|
|
let
|
|
nixpkgs-2505 = import inputs.nixpkgs-2505 {
|
|
system = pkgs.stdenv.system;
|
|
config.allowUnfree = true;
|
|
config.permittedInsecurePackages = [ "intel-media-sdk-23.2.2" ];
|
|
};
|
|
in
|
|
{
|
|
systemd.services.jellyfin.environment = {
|
|
LIBVA_DRIVER_NAME = "iHD"; # or i965 for older GPUs
|
|
NEOReadDebugKeys = "1";
|
|
OverrideGpuAddressSpace = "48";
|
|
};
|
|
environment.sessionVariables = {
|
|
LIBVA_DRIVER_NAME = "iHD";
|
|
NEOReadDebugKeys = "1";
|
|
OverrideGpuAddressSpace = "48";
|
|
};
|
|
hardware.graphics = {
|
|
enable = true;
|
|
extraPackages = with pkgs; [
|
|
intel-ocl # Generic OpenCL support
|
|
|
|
intel-compute-runtime-legacy1
|
|
intel-media-driver
|
|
nixpkgs-2505.intel-media-sdk
|
|
];
|
|
};
|
|
|
|
hardware.enableRedistributableFirmware = true;
|
|
boot.kernelParams = [ "i915.enable_guc=3" ];
|
|
|
|
nixpkgs.config.permittedInsecurePackages = [
|
|
# "dotnet-sdk-6.0.428"
|
|
# "aspnetcore-runtime-6.0.36"
|
|
"intel-media-sdk-23.2.2"
|
|
];
|
|
|
|
users.users."starr" = {
|
|
isSystemUser = true;
|
|
group = "starr";
|
|
extraGroups = [ "jellyfin" ];
|
|
};
|
|
|
|
users.users.sonarr.extraGroups = [
|
|
"jellyfin"
|
|
"radarr"
|
|
"transmission"
|
|
"starr"
|
|
];
|
|
users.users.radarr.extraGroups = [
|
|
"jellyfin"
|
|
"sonarr"
|
|
"transmission"
|
|
"starr"
|
|
];
|
|
users.users.bazarr.extraGroups = [
|
|
"jellyfin"
|
|
"sonarr"
|
|
"transmission"
|
|
"starr"
|
|
"radarr"
|
|
];
|
|
users.users.lidarr.extraGroups = [
|
|
"jellyfin"
|
|
"starr"
|
|
"transmission"
|
|
];
|
|
|
|
users.users.whisparr.extraGroups = [
|
|
"jellyfin"
|
|
"starr"
|
|
"transmission"
|
|
];
|
|
|
|
users.users.shobu.extraGroups = [
|
|
"jellyfin"
|
|
"starr"
|
|
"transmission"
|
|
"radarr"
|
|
"sonarr"
|
|
];
|
|
users.users.jellyfin.extraGroups = [
|
|
"render"
|
|
"video"
|
|
];
|
|
|
|
users.groups = {
|
|
starr = {
|
|
gid = 990;
|
|
};
|
|
};
|
|
|
|
services =
|
|
let
|
|
mkEnvFile =
|
|
name:
|
|
(pkgs.writeText "${name}.env" ''
|
|
${name}__AUTH__ENABLED=false
|
|
${name}__AUTH__METHOD=External
|
|
'');
|
|
in
|
|
{
|
|
jellyfin = {
|
|
enable = true;
|
|
openFirewall = true;
|
|
};
|
|
|
|
sonarr = {
|
|
enable = true;
|
|
openFirewall = true;
|
|
group = "starr";
|
|
environmentFiles = [
|
|
(mkEnvFile "SONARR")
|
|
];
|
|
};
|
|
radarr = {
|
|
enable = true;
|
|
openFirewall = true;
|
|
group = "starr";
|
|
environmentFiles = [
|
|
(mkEnvFile "RADARR")
|
|
];
|
|
};
|
|
prowlarr = {
|
|
enable = true;
|
|
openFirewall = true;
|
|
environmentFiles = [
|
|
(mkEnvFile "PROWLARR")
|
|
];
|
|
};
|
|
bazarr = {
|
|
enable = true;
|
|
openFirewall = true;
|
|
group = "starr";
|
|
};
|
|
lidarr = {
|
|
enable = true;
|
|
openFirewall = true;
|
|
environmentFiles = [
|
|
(mkEnvFile "LIDARR")
|
|
];
|
|
};
|
|
whisparr = {
|
|
enable = true;
|
|
openFirewall = true;
|
|
environmentFiles = [
|
|
(mkEnvFile "WHISPARR")
|
|
];
|
|
};
|
|
|
|
jellyseerr = {
|
|
enable = true;
|
|
openFirewall = true;
|
|
};
|
|
};
|
|
|
|
environment.systemPackages = [
|
|
pkgs.jellyfin
|
|
pkgs.jellyfin-web
|
|
pkgs.jellyfin-ffmpeg
|
|
];
|
|
}
|