{ containers.jellyfin = { autoStart = true; bindMounts = { "/media" = { hostPath = "/mnt/sdb1/media"; isReadOnly = false; }; }; config = { pkgs, ... }: { services = { jellyfin = { enable = true; # port = 8096 openFirewall = true; }; tailscale = { enable = true; useRoutingFeatures = "server"; interfaceName = "userspace-networking"; }; }; environment.systemPackages = with pkgs; [ jellyfin jellyfin-web jellyfin-ffmpeg ]; ## Hardware transcoding nixpkgs.config.allowUnfree = true; hardware.graphics = { enable = true; extraPackages = with pkgs; [ ## Intel Core i5 Skylake intel-ocl intel-media-driver intel-compute-runtime-legacy1 ]; }; ## Grab EPG data daily systemd = { services = { epg = { script = "${pkgs.nodejs}/bin/npm run --prefix /media/TV/epg/ grab -- --channels=custom.channels.xml"; path = [ pkgs.bash pkgs.nodejs ]; serviceConfig = { Type = "oneshot"; User = "root"; }; startAt = "daily"; # Creates a timer }; jellyfin.environment.LIBVA_DRIVER_NAME = "iHD"; }; timers.epg.timerConfig.Persistent = true; }; environment.sessionVariables = { LIBVA_DRIVER_NAME = "iHD"; }; system.stateVersion = "24.05"; }; }; }