diff options
Diffstat (limited to 'hosts/poweredge/jellyfin.nix')
| -rw-r--r-- | hosts/poweredge/jellyfin.nix | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/hosts/poweredge/jellyfin.nix b/hosts/poweredge/jellyfin.nix new file mode 100644 index 0000000..84f3ec0 --- /dev/null +++ b/hosts/poweredge/jellyfin.nix @@ -0,0 +1,68 @@ +{ + containers.jellyfin = { + autoStart = true; + privateNetwork = true; + extraVeths.vb-jellyfin = { + hostBridge = "br-lan0"; + #localMacAddress = "02:00:00:00:00:02"; # TODO update to 26.05 + }; + bindMounts = { + "/media" = { + hostPath = "/media/ingens/media"; + isReadOnly = true; + }; + }; + + # GPU + allowedDevices = [ + { node = "/dev/dri/card1"; modifier = "rw"; } + { node = "/dev/dri/renderD128"; modifier = "rw"; } + ]; + + bindMounts = { + "/dev/dri/card1" = { + hostPath = "/dev/dri/card1"; + isReadOnly = false; + }; + "/dev/dri/renderD128" = { + hostPath = "/dev/dri/renderD128"; + isReadOnly = false; + }; + }; + + config = { lib, config, ... }: { + # Network + networking.interfaces.vb-jellyfin.useDHCP = true; + networking.firewall.allowedTCPPorts = [ 80 ]; # Caddy + + # CUDA + nix.settings = { + substituters = [ "https://cache.flox.dev" ]; + trusted-public-keys = [ "flox-cache-public-1:7F4OyH7ZCnFhcze3fJdfyXYLQw/aV7GEed86nQ7IsOs=" ]; + }; + #nixpkgs.config.cudaSupport = true; + users.users.jellyfin.extraGroups = [ "video" "render" ]; + + # Jellyfin + services.jellyfin = { + enable = true; + openFirewall = true; + #hardwareAcceleration = { + # enable = true; + # type = "nvenc"; + # device = "/dev/dri/renderD128"; + #}; + }; + + # Reverse proxy + services.caddy = { + enable = true; + virtualHosts.":80".extraConfig = '' + reverse_proxy localhost:8096 + ''; + }; + + system.stateVersion = "26.05"; + }; + }; +} |
