{ 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 pkgs.intel-compute-runtime # OpenCL support ]; }; }; services = { jellyfin = { enable = true; openFirewall = true; user = "jellyfin"; group = "storage"; }; }; mod.homepage.services = [ { name = "Jellyfin"; port = 8096; description = "Media streaming"; } ]; networking = { firewall.allowedTCPPorts = [ 8096 ]; }; environment.systemPackages = [ pkgs.jellyfin pkgs.jellyfin-web pkgs.jellyfin-ffmpeg ]; }; }