diff --git a/Endpoints/ServerSettingsEndpoint.cs b/Endpoints/ServerSettingsEndpoint.cs index b4c619b..8acfbef 100644 --- a/Endpoints/ServerSettingsEndpoint.cs +++ b/Endpoints/ServerSettingsEndpoint.cs @@ -33,6 +33,7 @@ public static class ServerSettingsEndpoint new SettingDefinition("KreaApiKey", "string", "", "API-Key für Krea-Endpoints (Automation)", "password"), new SettingDefinition("GitHubToken", "string", "", "GitHub PAT für Key-Scanner", "password"), new SettingDefinition("SerperApiKey", "string", "", "Serper.dev API-Key für Google-Suche (Key-Scanner)", "password"), + new SettingDefinition("ProxyUrl", "string", "", "HTTP/SOCKS Proxy für alle Requests (z.B. socks5://127.0.0.1:1080)", "text"), new SettingDefinition("ScanIntervalHours", "int", 0, "Key-Scanner Intervall in Stunden (0 = nur manuell)", "number"), }; diff --git a/Program.cs b/Program.cs index 51a3381..4b3fe23 100644 --- a/Program.cs +++ b/Program.cs @@ -1,5 +1,6 @@ using System; using System.IO; +using System.Net; using System.Net.Http; using System.Runtime.InteropServices; using Gott.Endpoints; @@ -15,7 +16,20 @@ var builder = WebApplication.CreateBuilder(args); if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) builder.Services.AddWindowsService(); -builder.Services.AddHttpClient(); +var proxyUrl = builder.Configuration["ProxyUrl"]; +if (!string.IsNullOrWhiteSpace(proxyUrl)) +{ + builder.Services.AddHttpClient().ConfigureHttpClientDefaults(b => + b.ConfigurePrimaryHttpMessageHandler(() => new HttpClientHandler + { + Proxy = new WebProxy(proxyUrl), + UseProxy = true + })); +} +else +{ + builder.Services.AddHttpClient(); +} var dataDir = Path.Combine(AppContext.BaseDirectory, "data"); Directory.CreateDirectory(dataDir); diff --git a/appsettings.json b/appsettings.json index c962afa..2e7f0d5 100755 --- a/appsettings.json +++ b/appsettings.json @@ -18,5 +18,6 @@ "GeminiApiKey": "", "GitHubToken": "", "SerperApiKey": "", - "ScanIntervalHours": 0 + "ScanIntervalHours": 0, + "ProxyUrl": "" }