{ lib, config, pkgs, ... }: { options.server.jellyfin.enable = lib.mkEnableOption "Enable Jellyfin+Jellyseerr"; config = lib.mkIf config.server.jellyfin.enable { users.users.jellyfin = { isSystemUser = true; group = "jellyfin"; }; networking.firewall.allowedTCPPorts = [ 5055 8096 ]; networking.firewall.allowedUDPPorts = [ 8096 ]; # Jellyfin environment.systemPackages = with pkgs; [ jellyfin jellyfin-web jellyfin-ffmpeg ]; services.jellyfin.enable = true; nixpkgs.config.packageOverrides = pkgs: { vaapiIntel = pkgs.vaapiIntel.override { enableHybridCodec = true; }; }; hardware.graphics = { enable = true; extraPackages = with pkgs; [ intel-media-driver intel-vaapi-driver # previously vaapiIntel libva-vdpau-driver intel-compute-runtime # OpenCL filter support (hardware tonemapping and subtitle burn-in) vpl-gpu-rt # QSV on 11th gen or newer ]; }; # services.jellyseerr = { # enable = true; # port = 5055; # openFirewall = true; # }; virtualisation.oci-containers.containers."jellyseerr-music" = { image = "seerr/seerr:preview-music-support"; extraOptions = [ "--network=host" ]; volumes = [ "/var/lib/jellyseerr/config:/app/config" ]; }; }; }