From cc46cf2bbce768e018eb21a7b378db4c90321aac Mon Sep 17 00:00:00 2001 From: Meleki Date: Fri, 13 Mar 2026 10:09:45 +0100 Subject: [PATCH] =?UTF-8?q?feat:=20HTTP/SOCKS=20Proxy-Support=20f=C3=BCr?= =?UTF-8?q?=20alle=20HttpClient-Requests?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Program.cs: ProxyUrl aus Config lesen, WebProxy auf allen HttpClients via ConfigureHttpClientDefaults - ServerSettingsEndpoint: ProxyUrl Setting im Frontend (Text-Feld) - appsettings.json: ProxyUrl Default (leer = kein Proxy) - Unterstützt HTTP und SOCKS5 Proxies (z.B. socks5://127.0.0.1:1080) - Betrifft alle ausgehenden Requests: Anthropic, OpenAI, GitHub, Serper, Telegram, Krea --- Endpoints/ServerSettingsEndpoint.cs | 1 + Program.cs | 16 +++++++++++++++- appsettings.json | 3 ++- 3 files changed, 18 insertions(+), 2 deletions(-) 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": "" }