This commit is contained in:
Leonid Pershin
2025-10-17 02:44:06 +03:00
parent 7969817966
commit d64c4742cf
2 changed files with 33 additions and 4 deletions

View File

@@ -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<DatabaseSettings>(builder.Configuration.GetSection("Database"))
.AddSingleton<IValidateOptions<DatabaseSettings>, DatabaseSettingsValidator>();
// Переопределяем настройки переменными окружения
builder.Services.Configure<TelegramBotSettings>(settings =>
{
settings.BotToken =
Environment.GetEnvironmentVariable("TELEGRAM_BOT_TOKEN") ?? settings.BotToken;
});
builder.Services.Configure<OllamaSettings>(settings =>
{
settings.Url = Environment.GetEnvironmentVariable("OLLAMA_URL") ?? settings.Url;
settings.DefaultModel =
Environment.GetEnvironmentVariable("OLLAMA_DEFAULT_MODEL") ?? settings.DefaultModel;
});
builder.Services.Configure<DatabaseSettings>(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<TelegramBotSettings>().ValidateOnStart();
builder.Services.AddOptions<OllamaSettings>().ValidateOnStart();

View File

@@ -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
}