sonarr: add port option

This lets cross-service integrations avoid hard-coding `8989` everywhere
(e.g. [here](https://github.com/cramt/nixarr/blob/b8d54fe1e6049dc60a91b73a34cfb977731bea6c/nixarr/bazarr/default.nix#L133))
This commit is contained in:
Edward Pierzchalski
2025-10-12 19:56:01 +11:00
parent c6cd890fa0
commit c2675d0949
+12 -5
View File
@@ -22,6 +22,12 @@ in {
package = mkPackageOption pkgs "sonarr" {}; package = mkPackageOption pkgs "sonarr" {};
port = mkOption {
type = types.port;
default = defaultPort;
description = "Port for Sonarr to use.";
};
stateDir = mkOption { stateDir = mkOption {
type = types.path; type = types.path;
default = "${nixarr.stateDir}/sonarr"; default = "${nixarr.stateDir}/sonarr";
@@ -91,6 +97,7 @@ in {
package = cfg.package; package = cfg.package;
user = globals.sonarr.user; user = globals.sonarr.user;
group = globals.sonarr.group; group = globals.sonarr.group;
settings.server.port = cfg.port;
openFirewall = cfg.openFirewall; openFirewall = cfg.openFirewall;
dataDir = cfg.stateDir; dataDir = cfg.stateDir;
}; };
@@ -105,8 +112,8 @@ in {
vpnNamespaces.wg = mkIf cfg.vpn.enable { vpnNamespaces.wg = mkIf cfg.vpn.enable {
portMappings = [ portMappings = [
{ {
from = defaultPort; from = cfg.port;
to = defaultPort; to = cfg.port;
} }
]; ];
}; };
@@ -118,17 +125,17 @@ in {
recommendedOptimisation = true; recommendedOptimisation = true;
recommendedGzipSettings = true; recommendedGzipSettings = true;
virtualHosts."127.0.0.1:${builtins.toString defaultPort}" = { virtualHosts."127.0.0.1:${builtins.toString cfg.port}" = {
listen = [ listen = [
{ {
addr = "0.0.0.0"; addr = "0.0.0.0";
port = defaultPort; port = cfg.port;
} }
]; ];
locations."/" = { locations."/" = {
recommendedProxySettings = true; recommendedProxySettings = true;
proxyWebsockets = true; proxyWebsockets = true;
proxyPass = "http://192.168.15.1:${builtins.toString defaultPort}"; proxyPass = "http://192.168.15.1:${builtins.toString cfg.port}";
}; };
}; };
}; };