diff options
Diffstat (limited to 'modules/nixosModules/server/arr.nix')
| -rw-r--r-- | modules/nixosModules/server/arr.nix | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/modules/nixosModules/server/arr.nix b/modules/nixosModules/server/arr.nix new file mode 100644 index 0000000..40261ef --- /dev/null +++ b/modules/nixosModules/server/arr.nix @@ -0,0 +1,74 @@ +{self, ...}: { + flake.nixosModules.arr = { + pkgs, + config, + lib, + ... + }: let + cfg = config.hostOptions.server; + in { + imports = [ + self.nixosModules.hostOptions + ]; + + services.radarr = { + enable = true; + openFirewall = false; + dataDir = "${cfg.dataPath}/arr/radarr/"; + settings.server = { + bindAddress = "*"; + port = 7878; + }; + }; + + services.lidarr = { + enable = true; + openFirewall = false; + dataDir = "${cfg.dataPath}/arr/lidarr/"; + settings.server = { + bindAddress = "*"; + port = 8686; + }; + }; + + services.sonarr = { + enable = true; + openFirewall = false; + dataDir = "${cfg.dataPath}/arr/sonarr/"; + settings.server = { + bindAddress = "*"; + port = 8989; + }; + }; + + services.prowlarr = { + enable = true; + openFirewall = false; + dataDir = "${cfg.dataPath}/arr/prowlarr/"; + settings.server = { + bindAddress = "*"; + port = 9696; + }; + }; + + users.users.prowlarr = { + isSystemUser = true; + group = "prowlarr"; + }; + users.groups.prowlarr = {}; + systemd.services.prowlarr.serviceConfig = { + DynamicUser = lib.mkForce false; + User = lib.mkForce "prowlarr"; + Group = lib.mkForce "prowlarr"; + ReadWritePaths = ["${cfg.dataPath}/arr/prowlarr/"]; + ExecStart = lib.mkForce "${pkgs.prowlarr}/bin/Prowlarr -nobrowser -data=${cfg.dataPath}/arr/prowlarr"; + }; + + services.flaresolverr.enable = true; + + users.groups.arr = {}; + users.users.radarr.extraGroups = ["arr"]; + users.users.lidarr.extraGroups = ["arr"]; + users.users.sonarr.extraGroups = ["arr"]; + }; +} |
