{ config, service_configs, ... }: { services.arrInit = { prowlarr = { enable = true; serviceName = "prowlarr"; port = service_configs.ports.prowlarr; dataDir = service_configs.prowlarr.dataDir; apiVersion = "v1"; networkNamespacePath = "/run/netns/wg"; syncedApps = [ { name = "Sonarr"; implementation = "Sonarr"; configContract = "SonarrSettings"; prowlarrUrl = "http://localhost:${builtins.toString service_configs.ports.prowlarr}"; baseUrl = "http://${config.vpnNamespaces.wg.bridgeAddress}:${builtins.toString service_configs.ports.sonarr}"; apiKeyFrom = "${service_configs.sonarr.dataDir}/config.xml"; syncCategories = [ 5000 5010 5020 5030 5040 5045 5050 5090 ]; serviceName = "sonarr"; } { name = "Radarr"; implementation = "Radarr"; configContract = "RadarrSettings"; prowlarrUrl = "http://localhost:${builtins.toString service_configs.ports.prowlarr}"; baseUrl = "http://${config.vpnNamespaces.wg.bridgeAddress}:${builtins.toString service_configs.ports.radarr}"; apiKeyFrom = "${service_configs.radarr.dataDir}/config.xml"; syncCategories = [ 2000 2010 2020 2030 2040 2045 2050 2060 2070 2080 ]; serviceName = "radarr"; } ]; }; sonarr = { enable = true; serviceName = "sonarr"; port = service_configs.ports.sonarr; dataDir = service_configs.sonarr.dataDir; rootFolders = [ service_configs.media.tvDir ]; downloadClients = [ { name = "qBittorrent"; implementation = "QBittorrent"; configContract = "QBittorrentSettings"; fields = { host = config.vpnNamespaces.wg.namespaceAddress; port = service_configs.ports.torrent; useSsl = false; tvCategory = "tvshows"; }; } ]; }; radarr = { enable = true; serviceName = "radarr"; port = service_configs.ports.radarr; dataDir = service_configs.radarr.dataDir; rootFolders = [ service_configs.media.moviesDir ]; downloadClients = [ { name = "qBittorrent"; implementation = "QBittorrent"; configContract = "QBittorrentSettings"; fields = { host = config.vpnNamespaces.wg.namespaceAddress; port = service_configs.ports.torrent; useSsl = false; movieCategory = "movies"; }; } ]; }; }; services.bazarrInit = { enable = true; dataDir = service_configs.bazarr.dataDir; port = service_configs.ports.bazarr; sonarr = { enable = true; dataDir = service_configs.sonarr.dataDir; port = service_configs.ports.sonarr; serviceName = "sonarr"; }; radarr = { enable = true; dataDir = service_configs.radarr.dataDir; port = service_configs.ports.radarr; serviceName = "radarr"; }; }; }