{ lib, config, pkgs, ... }: let cfg = config.my.services.plex; in { options.my.services.plex = { enable = lib.mkEnableOption "Enable Plex, Tautulli and Ombi"; tautulli.enable = lib.mkEnableOption "Enable Tautulli"; ombi.enable = lib.mkEnableOption "Enable Ombi"; }; config = lib.mkMerge [ (lib.mkIf cfg.enable { services.plex = { enable = true; openFirewall = true; extraPlugins = [ (builtins.path { name = "Audnexus.bundle"; path = pkgs.fetchFromGitHub { owner = "djdembeck"; repo = "Audnexus.bundle"; rev = "v1.3.2"; sha256 = "sha256-BpwyedIjkXS+bHBsIeCpSoChyWCX5A38ywe71qo3tEI="; }; }) ]; }; }) (lib.mkIf cfg.tautulli.enable { services.tautulli = { enable = true; port = 8181; openFirewall = true; }; }) (lib.mkIf cfg.ombi.enable { services.ombi = { enable = true; port = 5000; openFirewall = true; }; }) ]; }