diff --git a/ChatBot/Program.cs b/ChatBot/Program.cs index 2055f04..54c8b47 100644 --- a/ChatBot/Program.cs +++ b/ChatBot/Program.cs @@ -20,6 +20,9 @@ Env.Load(); var builder = Host.CreateApplicationBuilder(args); +// Добавляем поддержку переменных окружения в конфигурацию +builder.Configuration.AddEnvironmentVariables(); + // Настройка Serilog Log.Logger = new LoggerConfiguration().ReadFrom.Configuration(builder.Configuration).CreateLogger(); @@ -47,6 +50,32 @@ try .Services.Configure(builder.Configuration.GetSection("Database")) .AddSingleton, DatabaseSettingsValidator>(); + // Переопределяем настройки переменными окружения + builder.Services.Configure(settings => + { + settings.BotToken = + Environment.GetEnvironmentVariable("TELEGRAM_BOT_TOKEN") ?? settings.BotToken; + }); + + builder.Services.Configure(settings => + { + settings.Url = Environment.GetEnvironmentVariable("OLLAMA_URL") ?? settings.Url; + settings.DefaultModel = + Environment.GetEnvironmentVariable("OLLAMA_DEFAULT_MODEL") ?? settings.DefaultModel; + }); + + builder.Services.Configure(settings => + { + var host = Environment.GetEnvironmentVariable("DB_HOST") ?? "localhost"; + var port = Environment.GetEnvironmentVariable("DB_PORT") ?? "5432"; + var name = Environment.GetEnvironmentVariable("DB_NAME") ?? "chatbot"; + var user = Environment.GetEnvironmentVariable("DB_USER") ?? "postgres"; + var password = Environment.GetEnvironmentVariable("DB_PASSWORD") ?? "postgres"; + + settings.ConnectionString = + $"Host={host};Port={port};Database={name};Username={user};Password={password}"; + }); + // Валидируем конфигурацию при старте builder.Services.AddOptions().ValidateOnStart(); builder.Services.AddOptions().ValidateOnStart(); diff --git a/ChatBot/appsettings.json b/ChatBot/appsettings.json index 6292e79..1443751 100644 --- a/ChatBot/appsettings.json +++ b/ChatBot/appsettings.json @@ -31,11 +31,11 @@ "Enrich": ["FromLogContext", "WithMachineName", "WithThreadId"] }, "TelegramBot": { - "BotToken": "${TELEGRAM_BOT_TOKEN}" + "BotToken": "" }, "Ollama": { - "Url": "${OLLAMA_URL}", - "DefaultModel": "${OLLAMA_DEFAULT_MODEL}" + "Url": "", + "DefaultModel": "" }, "AI": { "Temperature": 0.9, @@ -54,7 +54,7 @@ "StatusCheckTimeoutSeconds": 10 }, "Database": { - "ConnectionString": "Host=${DB_HOST};Port=${DB_PORT};Database=${DB_NAME};Username=${DB_USER};Password=${DB_PASSWORD}", + "ConnectionString": "", "EnableSensitiveDataLogging": false, "CommandTimeout": 30 }