From 3d5c00f7413b8b1805ed3bd49aa55f65527f090c Mon Sep 17 00:00:00 2001 From: Alexander Heldt Date: Tue, 6 May 2025 16:57:10 +0000 Subject: [PATCH] manatee: Add `enable` option to `jellyfin` module --- hosts/manatee/modules/default.nix | 1 + hosts/manatee/modules/jellyfin/default.nix | 84 +++++++++++++--------- 2 files changed, 51 insertions(+), 34 deletions(-) diff --git a/hosts/manatee/modules/default.nix b/hosts/manatee/modules/default.nix index 33f5043..e8c70f9 100644 --- a/hosts/manatee/modules/default.nix +++ b/hosts/manatee/modules/default.nix @@ -15,6 +15,7 @@ in transmission.enable = true; audiobookshelf.enable = true; + jellyfin.enable = true; immich.enable = true; }; }; diff --git a/hosts/manatee/modules/jellyfin/default.nix b/hosts/manatee/modules/jellyfin/default.nix index cb018a3..ca21893 100644 --- a/hosts/manatee/modules/jellyfin/default.nix +++ b/hosts/manatee/modules/jellyfin/default.nix @@ -1,39 +1,55 @@ -{ pkgs, ... }: { - users.users.jellyfin = { - isSystemUser = true; - group = "storage"; + lib, + pkgs, + config, + ... +}: +let + enabled = config.mod.jellyfin.enable; +in +{ + options = { + mod.jellyfin = { + enable = lib.mkEnableOption "Enable jellyfin module"; + }; + }; - extraGroups = [ - "render" - "video" + 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 ]; }; - - 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 - ]; }