From f569b473476f63f9a19264d0f4a5b7a540de70c0 Mon Sep 17 00:00:00 2001 From: ooks-io Date: Fri, 16 Feb 2024 12:15:03 +1300 Subject: [PATCH] refactor: jellyfin module > all in one mediaServer Module --- system/modules/services/default.nix | 10 ++-- system/modules/services/deluge/default.nix | 22 --------- system/modules/services/jellyfin/default.nix | 32 ------------ .../modules/services/mediaServer/default.nix | 49 +++++++++++++++++++ system/profiles/mediaServer/default.nix | 3 +- 5 files changed, 53 insertions(+), 63 deletions(-) delete mode 100644 system/modules/services/deluge/default.nix delete mode 100644 system/modules/services/jellyfin/default.nix create mode 100644 system/modules/services/mediaServer/default.nix diff --git a/system/modules/services/default.nix b/system/modules/services/default.nix index 533f21c..fc2b073 100644 --- a/system/modules/services/default.nix +++ b/system/modules/services/default.nix @@ -2,16 +2,12 @@ { imports = [ - ./jellyfin - ./deluge + ./mediaServer ]; options.systemModules.services = { - jellyfin = { - enable = lib.mkEnableOption "Enable jellyfin service module"; - }; - deluge = { - enable = lib.mkEnableOption "Enable deluge service module"; + mediaServer = { + enable = lib.mkEnableOption "Enable mediaserver service module"; }; }; diff --git a/system/modules/services/deluge/default.nix b/system/modules/services/deluge/default.nix deleted file mode 100644 index 43dbcbe..0000000 --- a/system/modules/services/deluge/default.nix +++ /dev/null @@ -1,22 +0,0 @@ -{ config, lib, pkgs, ... }: - -let - cfg = config.systemModules.services.deluge; -in - -{ - config = lib.mkIf cfg.enable { - services.deluge = { - user = "deluge"; - group = "deluge"; - enable = true; - web.enable = true; - }; - - # fileSystems."/media/Downloads" = { - # device = "/dev/disk/by-label/torrents"; - # fsType = "ext4"; - # options = [ "rw" "uid=1000" "gid=991" "umask=002" ]; - # }; - }; -} diff --git a/system/modules/services/jellyfin/default.nix b/system/modules/services/jellyfin/default.nix deleted file mode 100644 index 810f8a0..0000000 --- a/system/modules/services/jellyfin/default.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ config, lib, pkgs, ... }: - -let - cfg = config.systemModules.services.jellyfin; -in - -{ - config = lib.mkIf cfg.enable { - environment.systemPackages = with pkgs; [ - jellyfin - jellyfin-web - jellyfin-ffmpeg - ]; - services.jellyfin = { - user = "jellyfin"; - group = "media"; - enable = true; - openFirewall = true; - }; - users.users.jellyfin = { - isSystemUser = true; - group = "media"; - }; - users.groups.media = {}; - - # fileSystems."/media" = { - # device = "/dev/disk/by-label/ooksmedia"; - # fsType = "ntfs"; - # options = [ "rw" "uid=1000" "gid=991" "umask=002" ]; - # }; - }; -} diff --git a/system/modules/services/mediaServer/default.nix b/system/modules/services/mediaServer/default.nix new file mode 100644 index 0000000..a2de9b0 --- /dev/null +++ b/system/modules/services/mediaServer/default.nix @@ -0,0 +1,49 @@ +{ config, lib, pkgs, ... }: + +let + cfg = config.systemModules.services.mediaServer; +in + +{ + config = lib.mkIf cfg.enable { + + users.groups.media = { }; + + environment.systemPackages = with pkgs; [ + jellyfin + jellyfin-web + jellyfin-ffmpeg + ]; + + services = { + jellyfin = { + group = "media"; + enable = true; + openFirewall = true; + }; + deluge = { + group = "media"; + enable = true; + web.enable = true; + }; + radarr = { + group = "media"; + enable = true; + }; + sonarr = { + group = "media"; + enable = true; + }; + prowlarr.enable = true; + }; + + systemd.tmpfiles.rules = [ + "d /jellyfin 0770 - media - -" + ]; + + fileSystems."/jellyfin" = { + device = "/dev/disk/by-label/jellyfin"; + fsType = "btrfs"; + }; + }; +} diff --git a/system/profiles/mediaServer/default.nix b/system/profiles/mediaServer/default.nix index abb9a72..38559e5 100644 --- a/system/profiles/mediaServer/default.nix +++ b/system/profiles/mediaServer/default.nix @@ -10,8 +10,7 @@ in config = lib.mkIf cfg.enable { systemModules = { services = { - jellyfin.enable = true; - deluge.enable = true; + mediaServer.enable = true; }; }; };