From 051426d64bd254ad615f093b90764e9d790289ef Mon Sep 17 00:00:00 2001 From: Julien Malka Date: Sat, 5 Feb 2022 19:00:46 +0100 Subject: [PATCH] Refactored mediaserver --- machines/lisa/default.nix | 6 +- modules/mediaserver/default.nix | 138 ++++++++++++++++++-------------- 2 files changed, 81 insertions(+), 63 deletions(-) diff --git a/machines/lisa/default.nix b/machines/lisa/default.nix index 2774007..48bb1a6 100644 --- a/machines/lisa/default.nix +++ b/machines/lisa/default.nix @@ -15,7 +15,11 @@ luj = { - mediaserver.enable = true; + mediaserver = { + enable = true; + tv.enable = true; + music.enable = true; + }; homepage.enable = true; bincache = { enable = true; diff --git a/modules/mediaserver/default.nix b/modules/mediaserver/default.nix index 5d138f2..e239812 100644 --- a/modules/mediaserver/default.nix +++ b/modules/mediaserver/default.nix @@ -1,83 +1,97 @@ { lib, pkgs, config, ... }: with lib; let cfg = config.luj.mediaserver; -in { +in +{ options.luj.mediaserver = { enable = mkEnableOption "enable the mediaserver"; + tv.enable = mkEnableOption "enable the tv mediaserver"; + music.enable = mkEnableOption "enable the music mediaserver"; }; - config = mkIf cfg.enable { + config = mkIf cfg.enable ( + mkMerge [{ - users.users.mediaserver = { - name = "mediaserver"; - isNormalUser = true; - home = "/home/mediaserver"; - group = config.users.groups.mediaserver.name; - }; + users.users.mediaserver = { + name = "mediaserver"; + isNormalUser = true; + home = "/home/mediaserver"; + group = config.users.groups.mediaserver.name; + }; - users.groups.mediaserver = { - name = "mediaserver"; - }; + users.groups.mediaserver = { + name = "mediaserver"; + }; + + luj.jackett = { + enable = true; + user = "mediaserver"; + group = "mediaserver"; + nginx.enable = true; + nginx.subdomain = "jackett"; + }; + + luj.flaresolverr.enable = true; + + luj.transmission = { + enable = true; + user = "mediaserver"; + group = "mediaserver"; + nginx.enable = true; + nginx.subdomain = "downloads"; + }; + + } - luj.sonarr = { - enable = true; - user = "mediaserver"; - group = "mediaserver"; - nginx.enable = true; - nginx.subdomain = "series"; - }; + (mkIf cfg.tv.enable { - luj.radarr = { - enable = true; - user = "mediaserver"; - group = "mediaserver"; - nginx.enable = true; - nginx.subdomain = "films"; - }; + luj.sonarr = { + enable = true; + user = "mediaserver"; + group = "mediaserver"; + nginx.enable = true; + nginx.subdomain = "series"; + }; - luj.lidarr = { - enable = true; - user = "mediaserver"; - group = "mediaserver"; - nginx.enable = true; - nginx.subdomain = "songs"; - }; + luj.radarr = { + enable = true; + user = "mediaserver"; + group = "mediaserver"; + nginx.enable = true; + nginx.subdomain = "films"; + }; + luj.jellyfin = { + enable = true; + user = "mediaserver"; + group = "mediaserver"; + nginx.enable = true; + nginx.subdomain = "tv"; + }; - luj.jellyfin = { - enable = true; - user = "mediaserver"; - group = "mediaserver"; - nginx.enable = true; - nginx.subdomain = "tv"; - }; - luj.jackett = { - enable = true; - user = "mediaserver"; - group = "mediaserver"; - nginx.enable = true; - nginx.subdomain = "jackett"; - }; + }) - luj.flaresolverr.enable = true; + (mkIf cfg.music.enable { + luj.lidarr = { + enable = true; + user = "mediaserver"; + group = "mediaserver"; + nginx.enable = true; + nginx.subdomain = "songs"; + }; - luj.navidrome = { - enable = true; - user = "mediaserver"; - group = "mediaserver"; - nginx.enable = true; - nginx.subdomain = "music"; - }; + luj.navidrome = { + enable = true; + user = "mediaserver"; + group = "mediaserver"; + nginx.enable = true; + nginx.subdomain = "music"; + }; - luj.transmission = { - enable = true; - user = "mediaserver"; - group = "mediaserver"; - nginx.enable = true; - nginx.subdomain = "downloads"; - }; - }; + })]); } + +