diff options
| author | scouckel <james.krinsky@gmail.com> | 2026-04-02 20:49:34 -0400 |
|---|---|---|
| committer | scouckel <james.krinsky@gmail.com> | 2026-04-02 20:49:34 -0400 |
| commit | 50044b7a87bc9f59452855a96a2013c9b000a0a1 (patch) | |
| tree | c00948706d76ab9b9eceb051c4b1c45d16dc7e3d /modules/nixosModules/server/jellyfin.nix | |
| parent | eae1e605a04e7e78cac7052a5cc284de5f9ee87f (diff) | |
big work done
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; + ''; + }; + }; + }; +} |
