summaryrefslogtreecommitdiff
path: root/hosts/poweredge/jellyfin.nix
diff options
context:
space:
mode:
authorTim Keller <tjk@tjkeller.xyz>2026-06-13 14:26:56 -0500
committerTim Keller <tjk@tjkeller.xyz>2026-06-13 14:26:56 -0500
commitfeadf7131e5b6c33ea8485e746361b0529cd6ef4 (patch)
tree86c05c33a837eefc566bec45f5ef91e3c7d91eca /hosts/poweredge/jellyfin.nix
parentb39f24436d5672e90e4261f0dfb906d97e92f1be (diff)
parent0397e503b32e73e03ef2dcdda58cc60da262524d (diff)
downloadnixos-feadf7131e5b6c33ea8485e746361b0529cd6ef4.tar.xz
nixos-feadf7131e5b6c33ea8485e746361b0529cd6ef4.zip
Merge branch 'poweredge'
Diffstat (limited to 'hosts/poweredge/jellyfin.nix')
-rw-r--r--hosts/poweredge/jellyfin.nix68
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";
+ };
+ };
+}