diff options
Diffstat (limited to 'modules/nixosModules/server/jellyfin.nix')
| -rw-r--r-- | modules/nixosModules/server/jellyfin.nix | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/modules/nixosModules/server/jellyfin.nix b/modules/nixosModules/server/jellyfin.nix new file mode 100644 index 0000000..431022d --- /dev/null +++ b/modules/nixosModules/server/jellyfin.nix @@ -0,0 +1,44 @@ +{ + self, + lib, + ... +}: { + flake.nixosModules.jellyfin = { + config, + pkgs, + ... + }: let + cfg = config.hostOptions.server; + in { + imports = [ + self.nixosModules.hostOptions + self.nixosModules.nginx + ]; + + services.jellyfin = { + enable = true; + openFirewall = false; + dataDir = "${cfg.dataPath}/jellyfin/"; + hardwareAcceleration = { + enable = true; + device = lib.mkDefault "/dev/dri/renderD128"; + }; + }; + + # transcoding + users.users.jellyfin.extraGroups = ["video" "render"]; + environment.systemPackages = with pkgs; [jellyfin-ffmpeg]; + + services.nginx.virtualHosts."jellyfin.${cfg.domain}" = { + enableACME = true; + forceSSL = true; + locations."/" = { + proxyPass = "http://127.0.0.1:8096"; + proxyWebsockets = true; + extraConfig = '' + proxy_buffering off; + ''; + }; + }; + }; +} |
