From 29c32c8e497987dc40a8c5756157e97dd8a7f9c0 Mon Sep 17 00:00:00 2001 From: matt1432 Date: Tue, 5 Mar 2024 09:27:11 -0500 Subject: [PATCH] feat(servers): add my module for declaring jellyfin config --- devices/nos/modules/jellyfin/default.nix | 33 +++++++++++++++++++++++- devices/nos/modules/jellyfin/jfa-go.nix | 6 +++-- flake.lock | 21 +++++++++++++++ flake.nix | 9 ++++++- 4 files changed, 65 insertions(+), 4 deletions(-) diff --git a/devices/nos/modules/jellyfin/default.nix b/devices/nos/modules/jellyfin/default.nix index dee1879..78edccd 100644 --- a/devices/nos/modules/jellyfin/default.nix +++ b/devices/nos/modules/jellyfin/default.nix @@ -1,5 +1,6 @@ { config, + jellyfin-flake, lib, ... }: let @@ -14,6 +15,7 @@ in { imports = [ ./jfa-go.nix ./packages.nix + jellyfin-flake.nixosModules.default ]; users.users."jellyfin".extraGroups = @@ -23,7 +25,36 @@ in { ++ optionalGroup "render"; services = { - jellyfin.enable = true; + jellyfin = { + enable = true; + + settings = { + general = { + serverName = "Jelly"; + + quickConnectAvailable = false; + isStartupWizardCompleted = true; + + branding.customCss = '' + ''; + }; + + libraries.display = { + enableGroupingIntoCollections = true; + enableExternalContentInSuggestions = false; + }; + + playback.transcoding = { + hardwareAccelerationType = "nvenc"; + hardwareDecodingCodecs = ["h264" "hevc" "mpeg2video" "mpeg4" "vc1" "vp8" "vp9" "av1"]; + enableThrottling = true; + enableTonemapping = true; + downMixAudioBoost = 1; + }; + + advanced.logs.enableSlowResponseWarning = false; + }; + }; nginx = { enable = true; diff --git a/devices/nos/modules/jellyfin/jfa-go.nix b/devices/nos/modules/jellyfin/jfa-go.nix index c6c0f2a..bfc46d8 100644 --- a/devices/nos/modules/jellyfin/jfa-go.nix +++ b/devices/nos/modules/jellyfin/jfa-go.nix @@ -1,4 +1,6 @@ -{...}: { +{config, ...}: let + jellyService = config.systemd.services.jellyfin.serviceConfig; +in { systemd.services."arion-jfa-go" = { after = ["jellyfin.service"]; partOf = ["jellyfin.service"]; @@ -11,7 +13,7 @@ ports = ["8056:8056"]; volumes = [ - "/var/lib/jellyfin/jfa-go:/data" + "${jellyService.WorkingDirectory}/jfa-go:/data" "/etc/localtime:/etc/localtime:ro" ]; }; diff --git a/flake.lock b/flake.lock index b4fefd8..476452a 100644 --- a/flake.lock +++ b/flake.lock @@ -630,6 +630,26 @@ "type": "github" } }, + "jellyfin-flake": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1709648545, + "narHash": "sha256-TyhCoG1py0dRMFvjHo9DxExj5GERwXSdCI8hri5NI0M=", + "owner": "matt1432", + "repo": "nixos-jellyfin", + "rev": "5b423ad2e5566b404c58b790a46b7cee7592101a", + "type": "github" + }, + "original": { + "owner": "matt1432", + "repo": "nixos-jellyfin", + "type": "github" + } + }, "lib-aggregate": { "inputs": { "flake-utils": "flake-utils_3", @@ -1339,6 +1359,7 @@ "hypridle": "hypridle", "hyprland": "hyprland", "hyprlock": "hyprlock", + "jellyfin-flake": "jellyfin-flake", "modernx-src": "modernx-src", "nh": "nh", "nix-gaming": "nix-gaming", diff --git a/flake.nix b/flake.nix index 31dcbb5..1665ccb 100644 --- a/flake.nix +++ b/flake.nix @@ -157,7 +157,6 @@ repo = "nixos-pcsd"; }; - # Oksys inputs headscale = { type = "github"; owner = "juanfont"; @@ -186,6 +185,7 @@ inputs.nixpkgs.follows = "nixpkgs"; }; + # Nos inputs arion = { type = "github"; owner = "hercules-ci"; @@ -193,6 +193,13 @@ inputs.nixpkgs.follows = "nixpkgs"; }; + jellyfin-flake = { + type = "github"; + owner = "matt1432"; + repo = "nixos-jellyfin"; + + inputs.nixpkgs.follows = "nixpkgs"; + }; # Desktop inputs hyprland = {