Files
homelab/hosts/sin/jellyfin.nix
Sin Ser'hao 56ffeaf5a0
Some checks failed
/ perform flake analysis (push) Successful in 37s
/ build hive configuration (push) Failing after 8m50s
format && add nix-serve for caching
2026-01-07 15:29:28 +01:00

111 lines
2.0 KiB
Nix

{ pkgs, inputs, ... }:
let
unstable = import inputs.unstable { system = pkgs.system; };
in
{
nixpkgs.config.packageOverrides = pkgs: {
vaapiIntel = pkgs.vaapiIntel.override { enableHybridCodec = true; };
};
hardware.graphics = {
enable = true;
extraPackages = with pkgs; [
intel-media-driver
intel-vaapi-driver
vaapiVdpau
intel-compute-runtime # OpenCL filter support (hardware tonemapping and subtitle burn-in)
vpl-gpu-rt # QSV on 11th gen or newer
intel-media-sdk # QSV up to 11th gen
];
};
nixpkgs.config.permittedInsecurePackages = [
"dotnet-sdk-6.0.428"
"aspnetcore-runtime-6.0.36"
];
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.shobu.extraGroups = [
"jellyfin"
"starr"
"transmission"
"radarr"
"sonarr"
];
users.groups = {
starr = { };
};
services = {
jellyfin = {
enable = true;
openFirewall = true;
};
sonarr = {
enable = true;
openFirewall = true;
group = "starr";
};
radarr = {
enable = true;
openFirewall = true;
group = "starr";
};
prowlarr = {
enable = true;
openFirewall = true;
};
bazarr = {
enable = true;
openFirewall = true;
};
lidarr = {
enable = true;
openFirewall = true;
package = unstable.lidarr;
};
jellyseerr = {
enable = true;
openFirewall = true;
};
};
environment.systemPackages = [
pkgs.jellyfin
pkgs.jellyfin-web
pkgs.jellyfin-ffmpeg
];
}