56 lines
921 B
Nix
56 lines
921 B
Nix
{
|
|
lib,
|
|
pkgs,
|
|
config,
|
|
...
|
|
}:
|
|
let
|
|
enabled = config.mod.jellyfin.enable;
|
|
in
|
|
{
|
|
options = {
|
|
mod.jellyfin = {
|
|
enable = lib.mkEnableOption "Enable jellyfin module";
|
|
};
|
|
};
|
|
|
|
config = lib.mkIf enabled {
|
|
users.users.jellyfin = {
|
|
isSystemUser = true;
|
|
group = "storage";
|
|
|
|
extraGroups = [
|
|
"render"
|
|
"video"
|
|
];
|
|
};
|
|
|
|
hardware = {
|
|
graphics = {
|
|
enable = true;
|
|
extraPackages = [
|
|
pkgs.intel-media-driver # Modern Intel VA-API driver (needed for N305)
|
|
pkgs.libvdpau-va-gl # VDPAU backend for VA-API GLX interop
|
|
];
|
|
|
|
};
|
|
};
|
|
|
|
services = {
|
|
jellyfin = {
|
|
enable = true;
|
|
openFirewall = true;
|
|
|
|
user = "jellyfin";
|
|
group = "storage";
|
|
};
|
|
};
|
|
|
|
environment.systemPackages = [
|
|
pkgs.jellyfin
|
|
pkgs.jellyfin-web
|
|
pkgs.jellyfin-ffmpeg
|
|
];
|
|
};
|
|
}
|