From 08e278f8181f5fe55d2a66c74538e48d0c22064a Mon Sep 17 00:00:00 2001 From: Lucas Thelen Date: Tue, 30 Sep 2025 03:49:44 +0000 Subject: [PATCH] Media services --- flake.nix | 1 + packages.nix | 1 + services/jellyfin.nix | 26 ++++++++++++++++++++++++++ 3 files changed, 28 insertions(+) create mode 100644 services/jellyfin.nix diff --git a/flake.nix b/flake.nix index 97c499e..70cd66b 100644 --- a/flake.nix +++ b/flake.nix @@ -21,6 +21,7 @@ ./networking/ssh.nix ./networking/adblock.nix ./networking/vpn-host.nix + ./services/jellyfin.nix { environment.systemPackages = [ agenix.packages.x86_64-linux.default ]; age.secrets.tailscale.file = ./tailscale.age; diff --git a/packages.nix b/packages.nix index 40b0ece..bfc8533 100644 --- a/packages.nix +++ b/packages.nix @@ -6,5 +6,6 @@ wget nixfmt-classic btop + lazygit ]; } diff --git a/services/jellyfin.nix b/services/jellyfin.nix new file mode 100644 index 0000000..02280ff --- /dev/null +++ b/services/jellyfin.nix @@ -0,0 +1,26 @@ +{ pkgs, ... }: { + users.groups.multimedia = { }; + users.users.lucas.extraGroups = [ "multimedia" ]; + + systemd.tmpfiles.rules = + [ "d /data - - - - -" "d /data/media 0770 - multimedia - -" ]; + + services.jellyfin = { + enable = true; + openFirewall = true; + group = "multimedia"; + }; + + environment.systemPackages = with pkgs; [ + jellyfin + jellyfin-web + jellyfin-ffmpeg + ]; + + services.deluge = { + enable = true; + web.enable = true; + web.openFirewall = true; + group = "multimedia"; + }; +}