Merge branch 'dev'

This commit is contained in:
rasmus-kirk
2024-03-12 19:18:01 +01:00
9 changed files with 86 additions and 11 deletions
+1 -1
View File
@@ -108,7 +108,7 @@ This example does the following:
# These two values are also the default, but you can set them to whatever # These two values are also the default, but you can set them to whatever
# else you want # else you want
mediaDir = "/data/media"; mediaDir = "/data/media";
stateDir = "/data/media/.state"; stateDir = "/data/media/.state/nixarr";
vpn = { vpn = {
enable = true; enable = true;
+9
View File
@@ -22,6 +22,14 @@ in {
description = "The state directory for bazarr"; description = "The state directory for bazarr";
}; };
openFirewall = mkOption {
type = types.bool;
defaultText = literalExpression ''!cfg.vpn.enable'';
default = !cfg.vpn.enable;
example = true;
description = "Open firewall for Bazarr";
};
vpn.enable = mkOption { vpn.enable = mkOption {
type = types.bool; type = types.bool;
default = false; default = false;
@@ -49,6 +57,7 @@ in {
enable = cfg.enable; enable = cfg.enable;
user = "bazarr"; user = "bazarr";
group = "media"; group = "media";
openFirewall = cfg.openFirewall;
dataDir = cfg.stateDir; dataDir = cfg.stateDir;
}; };
+15 -2
View File
@@ -14,11 +14,19 @@ in with lib; {
stateDir = mkOption { stateDir = mkOption {
type = types.path; type = types.path;
default = "${nixarr.stateDir}/jellyfin"; default = "${nixarr.stateDir}/jellyfin";
defaultText = literalExpression ''"''${nixarr.stateDir}/jellyfin"''; defaultText = literalExpression ''!cfg.vpn.enable'';
example = "/home/user/.local/share/nixarr/jellyfin"; example = "/home/user/.local/share/nixarr/jellyfin";
description = "The state directory for Jellyfin."; description = "The state directory for Jellyfin.";
}; };
openFirewall = mkOption {
type = types.bool;
defaultText = literalExpression ''!cfg.vpn.enable'';
default = !cfg.vpn.enable;
example = true;
description = "Open firewall for Jellyfin";
};
vpn.enable = mkOption { vpn.enable = mkOption {
type = types.bool; type = types.bool;
default = false; default = false;
@@ -161,13 +169,18 @@ in with lib; {
]; ];
systemd.tmpfiles.rules = [ systemd.tmpfiles.rules = [
"d '${cfg.stateDir}' 0700 streamer root - -" "d '${cfg.stateDir}' 0700 streamer root - -"
"d '${cfg.stateDir}/log' 0700 streamer root - -"
"d '${cfg.stateDir}/cache' 0700 streamer root - -"
"d '${cfg.stateDir}/data' 0700 streamer root - -"
"d '${cfg.stateDir}/config' 0700 streamer root - -"
]; ];
services.jellyfin = { services.jellyfin = {
enable = cfg.enable; enable = cfg.enable;
user = "streamer"; user = "streamer";
group = "streamer"; group = "streamer";
openFirewall = cfg.openFirewall;
logDir = "${cfg.stateDir}/log"; logDir = "${cfg.stateDir}/log";
cacheDir = "${cfg.stateDir}/cache"; cacheDir = "${cfg.stateDir}/cache";
dataDir = "${cfg.stateDir}/data"; dataDir = "${cfg.stateDir}/data";
+10 -1
View File
@@ -14,11 +14,19 @@ in {
stateDir = mkOption { stateDir = mkOption {
type = types.path; type = types.path;
default = "${nixarr.stateDir}/lidarr"; default = "${nixarr.stateDir}/lidarr";
defaultText = literalExpression ''"''${nixarr.stateDir}/lidarr"''; defaultText = literalExpression ''!cfg.vpn.enable'';
example = "/home/user/.local/share/nixarr/lidarr"; example = "/home/user/.local/share/nixarr/lidarr";
description = "The state directory for Lidarr"; description = "The state directory for Lidarr";
}; };
openFirewall = mkOption {
type = types.bool;
defaultText = literalExpression ''!cfg.vpn.enable'';
default = !cfg.vpn.enable;
example = true;
description = "Open firewall for Lidarr";
};
vpn.enable = mkOption { vpn.enable = mkOption {
type = types.bool; type = types.bool;
default = false; default = false;
@@ -50,6 +58,7 @@ in {
enable = cfg.enable; enable = cfg.enable;
user = "lidarr"; user = "lidarr";
group = "media"; group = "media";
openFirewall = cfg.openFirewall;
dataDir = cfg.stateDir; dataDir = cfg.stateDir;
}; };
+10 -1
View File
@@ -19,11 +19,19 @@ in {
stateDir = mkOption { stateDir = mkOption {
type = types.path; type = types.path;
default = "${nixarr.stateDir}/prowlarr"; default = "${nixarr.stateDir}/prowlarr";
defaultText = literalExpression ''"''${nixarr.stateDir}/prowlarr"''; defaultText = literalExpression ''!cfg.vpn.enable'';
example = "/home/user/.local/share/nixarr/prowlarr"; example = "/home/user/.local/share/nixarr/prowlarr";
description = "The state directory for Prowlarr."; description = "The state directory for Prowlarr.";
}; };
openFirewall = mkOption {
type = types.bool;
defaultText = literalExpression ''!cfg.vpn.enable'';
default = !cfg.vpn.enable;
example = true;
description = "Open firewall for Prowlarr";
};
vpn.enable = mkOption { vpn.enable = mkOption {
type = types.bool; type = types.bool;
default = false; default = false;
@@ -53,6 +61,7 @@ in {
util-nixarr.services.prowlarr = { util-nixarr.services.prowlarr = {
enable = true; enable = true;
openFirewall = cfg.openFirewall;
dataDir = cfg.stateDir; dataDir = cfg.stateDir;
}; };
+10 -1
View File
@@ -15,11 +15,19 @@ in {
stateDir = mkOption { stateDir = mkOption {
type = types.path; type = types.path;
default = "${nixarr.stateDir}/radarr"; default = "${nixarr.stateDir}/radarr";
defaultText = literalExpression ''"''${nixarr.stateDir}/radarr"''; defaultText = literalExpression ''!cfg.vpn.enable'';
example = "/home/user/.local/share/nixarr/radarr"; example = "/home/user/.local/share/nixarr/radarr";
description = "The state directory for radarr."; description = "The state directory for radarr.";
}; };
openFirewall = mkOption {
type = types.bool;
defaultText = literalExpression ''!cfg.vpn.enable'';
default = !cfg.vpn.enable;
example = true;
description = "Open firewall for Radarr";
};
vpn.enable = mkOption { vpn.enable = mkOption {
type = types.bool; type = types.bool;
default = false; default = false;
@@ -51,6 +59,7 @@ in {
enable = cfg.enable; enable = cfg.enable;
user = "radarr"; user = "radarr";
group = "media"; group = "media";
openFirewall = cfg.openFirewall;
dataDir = cfg.stateDir; dataDir = cfg.stateDir;
}; };
+10 -1
View File
@@ -13,11 +13,19 @@ in {
stateDir = mkOption { stateDir = mkOption {
type = types.path; type = types.path;
default = "${nixarr.stateDir}/readarr"; default = "${nixarr.stateDir}/readarr";
defaultText = literalExpression ''"''${nixarr.stateDir}/readarr"''; defaultText = literalExpression ''!cfg.vpn.enable'';
example = "/home/user/.local/share/nixarr/readarr"; example = "/home/user/.local/share/nixarr/readarr";
description = "The state directory for Readarr"; description = "The state directory for Readarr";
}; };
openFirewall = mkOption {
type = types.bool;
defaultText = literalExpression ''!cfg.vpn.enable'';
default = !cfg.vpn.enable;
example = true;
description = "Open firewall for Readarr";
};
vpn.enable = mkOption { vpn.enable = mkOption {
type = types.bool; type = types.bool;
default = false; default = false;
@@ -49,6 +57,7 @@ in {
enable = cfg.enable; enable = cfg.enable;
user = "readarr"; user = "readarr";
group = "media"; group = "media";
openFirewall = cfg.openFirewall;
dataDir = cfg.stateDir; dataDir = cfg.stateDir;
}; };
+10 -1
View File
@@ -19,11 +19,19 @@ in {
stateDir = mkOption { stateDir = mkOption {
type = types.path; type = types.path;
default = "${nixarr.stateDir}/sonarr"; default = "${nixarr.stateDir}/sonarr";
defaultText = literalExpression ''"''${nixarr.stateDir}/sonarr"''; defaultText = literalExpression ''!cfg.vpn.enable'';
example = "/home/user/.local/share/nixarr/sonarr"; example = "/home/user/.local/share/nixarr/sonarr";
description = "The state directory for Sonarr."; description = "The state directory for Sonarr.";
}; };
openFirewall = mkOption {
type = types.bool;
defaultText = literalExpression ''!cfg.vpn.enable'';
default = !cfg.vpn.enable;
example = true;
description = "Open firewall for Sonarr";
};
vpn.enable = mkOption { vpn.enable = mkOption {
type = types.bool; type = types.bool;
default = false; default = false;
@@ -55,6 +63,7 @@ in {
enable = cfg.enable; enable = cfg.enable;
user = "sonarr"; user = "sonarr";
group = "media"; group = "media";
openFirewall = cfg.openFirewall;
dataDir = cfg.stateDir; dataDir = cfg.stateDir;
}; };
+11 -3
View File
@@ -67,13 +67,21 @@ in {
stateDir = mkOption { stateDir = mkOption {
type = types.path; type = types.path;
default = "${nixarr.stateDir}/transmission"; default = "${nixarr.stateDir}/transmission";
defaultText = literalExpression ''"''${nixarr.stateDir}/transmission"''; defaultText = literalExpression ''!cfg.vpn.enable'';
example = "/home/user/.local/share/nixarr/transmission"; example = "/home/user/.local/share/nixarr/transmission";
description = '' description = ''
The state directory for Transmission. The state directory for Transmission.
''; '';
}; };
openFirewall = mkOption {
type = types.bool;
defaultText = literalExpression ''!cfg.vpn.enable'';
default = !cfg.vpn.enable;
example = true;
description = "Open firewall for `peer-port` and `rpc-port`.";
};
vpn.enable = mkOption { vpn.enable = mkOption {
type = types.bool; type = types.bool;
default = false; default = false;
@@ -270,8 +278,8 @@ in {
then pkgs.flood-for-transmission then pkgs.flood-for-transmission
else null; else null;
package = pkgs.transmission_4; package = pkgs.transmission_4;
openRPCPort = false; openRPCPort = cfg.openFirewall;
openPeerPorts = !cfg.vpn.enable; openPeerPorts = cfg.openFirewall;
settings = settings =
{ {
download-dir = downloadDir; download-dir = downloadDir;