diff --git a/allstarr/Program.cs b/allstarr/Program.cs index 045f6538..4a1cc9d3 100644 --- a/allstarr/Program.cs +++ b/allstarr/Program.cs @@ -20,11 +20,6 @@ using System.IO; var builder = WebApplication.CreateBuilder(args); RuntimeEnvConfiguration.AddDotEnvOverrides(builder.Configuration, builder.Environment, Console.Out); -// Discover SquidWTF API and streaming endpoints from uptime feeds. -var squidWtfEndpointCatalog = await SquidWtfEndpointDiscovery.DiscoverAsync(); -var squidWtfApiUrls = squidWtfEndpointCatalog.ApiUrls; -var squidWtfStreamingUrls = squidWtfEndpointCatalog.StreamingUrls; - // Configure forwarded headers for reverse proxy support (nginx, etc.) // Trust should be explicit: set ForwardedHeaders__KnownProxies and/or // ForwardedHeaders__KnownNetworks (comma-separated) in deployment config. @@ -534,6 +529,13 @@ else enableExternalPlaylists = builder.Configuration.GetValue("Subsonic:EnableExternalPlaylists", true); } +// Discover SquidWTF endpoints only when SquidWTF is selected as primary music service. +var squidWtfEndpointCatalog = musicService == MusicService.SquidWTF + ? await SquidWtfEndpointDiscovery.DiscoverAsync() + : new SquidWtfEndpointCatalog(new List(), new List()); +var squidWtfApiUrls = squidWtfEndpointCatalog.ApiUrls; +var squidWtfStreamingUrls = squidWtfEndpointCatalog.StreamingUrls; + // Business services - shared across backends builder.Services.AddSingleton(squidWtfEndpointCatalog); builder.Services.AddSingleton(); @@ -641,14 +643,17 @@ builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); -builder.Services.AddSingleton(sp => - new SquidWTFStartupValidator( - sp.GetRequiredService>(), - sp.GetRequiredService().CreateClient("SquidWTF"), - squidWtfApiUrls, - squidWtfStreamingUrls, - sp.GetRequiredService(), - sp.GetRequiredService>())); +if (musicService == MusicService.SquidWTF) +{ + builder.Services.AddSingleton(sp => + new SquidWTFStartupValidator( + sp.GetRequiredService>(), + sp.GetRequiredService().CreateClient("SquidWTF"), + squidWtfApiUrls, + squidWtfStreamingUrls, + sp.GetRequiredService(), + sp.GetRequiredService>())); +} builder.Services.AddSingleton(); // Register orchestrator as hosted service