config.nix/modules/server/arr/default.nix

101 lines
2.5 KiB
Nix

{
config,
lib,
pkgs,
...
}:
{
options.server = {
arr = {
enable = lib.mkEnableOption "enable full arr";
prowlarr = {
enable = lib.mkEnableOption "enable prowlarr";
port = lib.mkOption {
default = 9696;
};
};
radarr = {
enable = lib.mkEnableOption "enable radarr";
port = lib.mkOption {
default = 7878;
};
};
sonarr = {
enable = lib.mkEnableOption "enable sonarr";
port = lib.mkOption {
default = 8989;
};
};
lidarr = {
enable = lib.mkEnableOption "enable lidarr";
port = lib.mkOption {
default = 8686;
};
};
qbittorrent = {
enable = lib.mkEnableOption "enable qbittorrent";
port = lib.mkOption {
default = 8088;
};
password = lib.mkOption {
default = "EO3HgIK+QJNQN53efrF6zQ==:Ju6k++dsM4pLLgYjP9sLbUWOiNuQMrUH/g6QArdtKXzYisuzaR+XeJL4hEC9Zo3ekVa8EVnPnQu/mJoHxxkLOA==";
}
};
};
};
config = {
config.server.arr = lib.mkIf config.server.arr.enable {
prowlarr.enable = lib.mkDefault true;
radarr.enable = lib.mkDefault true;
sonarr.enable = lib.mkDefault true;
lidarr.enable = lib.mkDefault true;
qbittorrent.enable = lib.mkDefault true;
};
services = {
prowlarr = lib.mkIf config.server.arr.prowlarr.enable {
enable = true;
server = {
bindaddress = "0.0.0.0";
port = config.server.arr.prowlarr.port;
};
};
radarr = lib.mkIf config.server.arr.radarr.enable {
enable = true;
server = {
bindaddress = "0.0.0.0";
port = config.server.arr.radarr.port;
};
};
sonarr = lib.mkIf config.server.arr.sonarr.enable {
enable = true;
server = {
bindaddress = "0.0.0.0";
port = config.server.arr.sonarr.port;
};
};
lidarr = lib.mkIf config.server.arr.lidarr.enable {
enable = true;
server = {
bindaddress = "0.0.0.0";
port = config.server.arr.lidarr.port;
};
};
qbittorrent = lib.mkIf config.server.arr.qbittorrent.enable {
enable = false;
webuiPort = config.server.arr.qbittorrent.port;
serverConfig = {
LegalNotice.Accepted = true;
Preferences = {
WebUI = {
Password_PBKDF2 = config.server.arr.qbittorrent.password;
};
};
};
};
};
};
}