From 068b318c1933fffae0cd5a2b36f033b7c6427267 Mon Sep 17 00:00:00 2001 From: Laura Hausmann Date: Fri, 7 Jun 2024 20:02:46 +0200 Subject: [PATCH] [backend/startup] Add debug logging for loaded configuration files & allow configuration via environment variables --- .../Extensions/ConfigurationBuilderExtensions.cs | 13 +++++++++---- .../Core/Extensions/WebApplicationExtensions.cs | 7 ++++++- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/Iceshrimp.Backend/Core/Extensions/ConfigurationBuilderExtensions.cs b/Iceshrimp.Backend/Core/Extensions/ConfigurationBuilderExtensions.cs index a898a0f9..eed44b51 100644 --- a/Iceshrimp.Backend/Core/Extensions/ConfigurationBuilderExtensions.cs +++ b/Iceshrimp.Backend/Core/Extensions/ConfigurationBuilderExtensions.cs @@ -4,9 +4,14 @@ public static class ConfigurationBuilderExtensions { public static IConfigurationBuilder AddCustomConfiguration(this IConfigurationBuilder configuration) { - return configuration.AddIniFile(Environment.GetEnvironmentVariable("ICESHRIMP_CONFIG") ?? "configuration.ini", - false, true) - .AddIniFile(Environment.GetEnvironmentVariable("ICESHRIMP_CONFIG_OVERRIDES") ?? "configuration.overrides.ini", - true, true); + var main = Environment.GetEnvironmentVariable("ICESHRIMP_CONFIG") ?? "configuration.ini"; + var overrides = Environment.GetEnvironmentVariable("ICESHRIMP_CONFIG_OVERRIDES") ?? + "configuration.overrides.ini"; + + configuration.AddIniFile(main, false, true) + .AddIniFile(overrides, true, true) + .AddEnvironmentVariables(); + + return configuration; } } \ No newline at end of file diff --git a/Iceshrimp.Backend/Core/Extensions/WebApplicationExtensions.cs b/Iceshrimp.Backend/Core/Extensions/WebApplicationExtensions.cs index 8d7856e3..55b91694 100644 --- a/Iceshrimp.Backend/Core/Extensions/WebApplicationExtensions.cs +++ b/Iceshrimp.Backend/Core/Extensions/WebApplicationExtensions.cs @@ -6,6 +6,7 @@ using Iceshrimp.Backend.Core.Middleware; using Iceshrimp.Backend.Core.Services; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.Extensions.Configuration.Ini; using Microsoft.Extensions.Options; using WebPush; @@ -73,6 +74,10 @@ public static class WebApplicationExtensions await using var scope = app.Services.CreateAsyncScope(); var provider = scope.ServiceProvider; + var config = (ConfigurationManager)app.Configuration; + var files = config.Sources.OfType().Select(p => p.Path); + app.Logger.LogDebug("Loaded configuration files: \n* {files}", string.Join("\n* ", files)); + try { app.Logger.LogInformation("Validating configuration..."); @@ -101,7 +106,7 @@ public static class WebApplicationExtensions app.Logger.LogInformation("Verifying database connection..."); if (!await db.Database.CanConnectAsync()) { - app.Logger.LogCritical("Failed to connect to database"); + app.Logger.LogCritical("Failed to connect to database. Please make sure your configuration is correct."); Environment.Exit(1); }