From 15886f409fa3136ce19a362b891beaafa8188bd7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=9C=BF=20corey=20=28they/them=29?= Date: Fri, 20 Feb 2026 14:39:30 -0800 Subject: [PATCH 1/5] Add graphics driver packages --- hosts/glyph/hardware.nix | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/hosts/glyph/hardware.nix b/hosts/glyph/hardware.nix index 904887b2..dc7ce697 100644 --- a/hosts/glyph/hardware.nix +++ b/hosts/glyph/hardware.nix @@ -40,4 +40,13 @@ boot.binfmt.emulatedSystems = ["aarch64-linux"]; hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; + + hardware.graphics = { + enable = true; + extraPackages = with pkgs; [ + intel-media-driver + intel-compute-runtime + vpl-gpu-rt + ]; + }; } From 723ea99831fe677c85e18f191818a1224b8b5163 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=9C=BF=20corey=20=28they/them=29?= Date: Fri, 20 Feb 2026 18:13:57 -0800 Subject: [PATCH 2/5] Enable Jellyfin with hardware encoding --- hosts/glyph/services/default.nix | 1 + hosts/glyph/services/jellyfin.nix | 37 +++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 hosts/glyph/services/jellyfin.nix diff --git a/hosts/glyph/services/default.nix b/hosts/glyph/services/default.nix index 9e65e505..26437e34 100644 --- a/hosts/glyph/services/default.nix +++ b/hosts/glyph/services/default.nix @@ -7,6 +7,7 @@ ./avahi.nix ./dns.nix ./filebrowser.nix + ./jellyfin.nix ./nfs.nix ./prometheus.nix ./samba.nix diff --git a/hosts/glyph/services/jellyfin.nix b/hosts/glyph/services/jellyfin.nix new file mode 100644 index 00000000..50125b48 --- /dev/null +++ b/hosts/glyph/services/jellyfin.nix @@ -0,0 +1,37 @@ +{ + config, + pkgs, + lib, + ... +}: { + services.jellyfin = { + enable = true; + openFirewall = true; + hardwareAcceleration = { + enable = true; + type = "qsv"; + device = "/dev/dri/renderD128"; + }; + transcoding = { + enableHardwareEncoding = true; + enableIntelLowPowerEncoding = true; + hardwareDecodingCodecs = { + h264 = true; + hevc = true; + vp9 = true; + av1 = true; + mpeg2 = true; + vc1 = true; + }; + hardwareEncodingCodecs = { + hevc = true; + av1 = false; # Intel Arc only + }; + }; + }; + + users.users.${config.services.jellyfin.user}.extraGroups = [ + "video" + "render" + ]; +} From 3a0ddd0607c5140ea86d0c659e2ecf21cb377c85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=9C=BF=20corey=20=28they/them=29?= Date: Mon, 23 Feb 2026 15:42:27 -0800 Subject: [PATCH 3/5] Enable Meilisearch --- hosts/glyph/services/jellyfin.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/hosts/glyph/services/jellyfin.nix b/hosts/glyph/services/jellyfin.nix index 50125b48..b22a9869 100644 --- a/hosts/glyph/services/jellyfin.nix +++ b/hosts/glyph/services/jellyfin.nix @@ -34,4 +34,8 @@ "video" "render" ]; + + services.meilisearch = { + enable = true; + }; } From f683d087cb15571cc3304b2dae247759e46b60c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=9C=BF=20corey=20=28they/them=29?= Date: Wed, 25 Feb 2026 08:38:51 -0800 Subject: [PATCH 4/5] Remove Plex --- hosts/glyph/services/default.nix | 4 ---- hosts/glyph/services/samba.nix | 8 ++++---- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/hosts/glyph/services/default.nix b/hosts/glyph/services/default.nix index 26437e34..931b3e86 100644 --- a/hosts/glyph/services/default.nix +++ b/hosts/glyph/services/default.nix @@ -18,10 +18,6 @@ services.cockpit.enable = true; services.openssh.enable = true; - services.plex = { - enable = true; - openFirewall = true; - }; services.roon-server = { enable = true; openFirewall = true; diff --git a/hosts/glyph/services/samba.nix b/hosts/glyph/services/samba.nix index 85637fb5..7ff474bf 100644 --- a/hosts/glyph/services/samba.nix +++ b/hosts/glyph/services/samba.nix @@ -21,7 +21,7 @@ shares = { Archive = mkShare "/mnt/archive" "mu" "users"; Backup = mkShare "/mnt/backup" "mu" "users" // {"fruit:time machine" = "yes";}; - Media = mkShare "/mnt/media" config.services.plex.user config.services.plex.group; + Media = mkShare "/mnt/media" config.services.jellyfin.user config.services.jellyfin.group; Torrents = mkShare "/mnt/torrents" config.services.transmission.user config.services.transmission.group; Unsorted = mkShare "/mnt/unsorted" "mu" "users"; }; @@ -58,13 +58,13 @@ Type = "oneshot"; ExecStart = let defaultUsrGrp = "mu:users"; - plexUsrGrp = with config.services.plex; "${user}:${group}"; + jellyfinUsrGrp = with config.services.jellyfin; "${user}:${group}"; transmissionUsrGrp = with config.services.transmission; "${user}:${group}"; in [ "${pkgs.coreutils}/bin/chown -R ${defaultUsrGrp} archive" "${pkgs.coreutils}/bin/chown -R ${defaultUsrGrp} backup" - # N.B.: /mnt/media/Music is used by Roon, not Plex - "${pkgs.coreutils}/bin/chown -R ${plexUsrGrp} media/Movies media/TV media/Video" + # N.B.: /mnt/media/Music is used by Roon, not Jellyfin + "${pkgs.coreutils}/bin/chown -R ${jellyfinUsrGrp} media/Movies media/TV media/Video" "${pkgs.coreutils}/bin/chown -R ${defaultUsrGrp} media/Music" "${pkgs.coreutils}/bin/chown -R ${transmissionUsrGrp} torrents" "${pkgs.coreutils}/bin/chown -R ${defaultUsrGrp} unsorted" From 61c6c82baf1ada5928659befd847685199266b12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=9C=BF=20corey=20=28they/them=29?= Date: Wed, 25 Feb 2026 08:50:17 -0800 Subject: [PATCH 5/5] Use media group --- hosts/glyph/services/jellyfin.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/hosts/glyph/services/jellyfin.nix b/hosts/glyph/services/jellyfin.nix index b22a9869..411fcceb 100644 --- a/hosts/glyph/services/jellyfin.nix +++ b/hosts/glyph/services/jellyfin.nix @@ -6,6 +6,7 @@ }: { services.jellyfin = { enable = true; + group = "media"; openFirewall = true; hardwareAcceleration = { enable = true;