From 6937a90342ea03de5451ed8a1ed9699fdaff889e Mon Sep 17 00:00:00 2001 From: tidusjar Date: Fri, 1 Jan 2021 23:45:51 +0000 Subject: [PATCH] Try the new way of setting up the reverse proxy --- src/Ombi/ClientApp/src/index.html | 35 +-------- src/Ombi/ClientApp/src/main.ts | 4 +- src/Ombi/Ombi.csproj | 2 +- src/Ombi/Program.cs | 118 ++++++++++++++++++++++-------- src/Ombi/Startup.cs | 21 +----- 5 files changed, 90 insertions(+), 90 deletions(-) diff --git a/src/Ombi/ClientApp/src/index.html b/src/Ombi/ClientApp/src/index.html index f7804c77f..b71541a3e 100644 --- a/src/Ombi/ClientApp/src/index.html +++ b/src/Ombi/ClientApp/src/index.html @@ -2,39 +2,7 @@ - + @@ -64,7 +32,6 @@ var colors = ["#f44336", "#f44336", "#9c27b0", "#673ab7", "#3f51b5", "#2196f3", "#03a9f4", "#00bcd4", "#009688", "#4caf50", "#cddc39", "#ffeb3b", "#ffc107", "#ff9800", "#ff5722", "#9e9e9e", "#607d8b"]; var bgColor = colors[Math.floor(Math.random() * colors.length)]; window.loading_screen = window.pleaseWait({ - // logo: "assets/images/logo.png", template: `
diff --git a/src/Ombi/ClientApp/src/main.ts b/src/Ombi/ClientApp/src/main.ts index 85668688d..14d0d41bf 100644 --- a/src/Ombi/ClientApp/src/main.ts +++ b/src/Ombi/ClientApp/src/main.ts @@ -15,9 +15,7 @@ import { AppModule } from "./app/app.module"; import { hmrBootstrap } from "./hmr"; declare var module: any; -// declare var __webpack_require__: any; -// __webpack_require__.p = '/ombi'; -// __webpack_require__ = '/ombi'; + if (environment.production) { enableProdMode(); } diff --git a/src/Ombi/Ombi.csproj b/src/Ombi/Ombi.csproj index 9ac73264c..00bdc9f4c 100644 --- a/src/Ombi/Ombi.csproj +++ b/src/Ombi/Ombi.csproj @@ -64,7 +64,7 @@ - + diff --git a/src/Ombi/Program.cs b/src/Ombi/Program.cs index 46b5c8559..8f77657dc 100644 --- a/src/Ombi/Program.cs +++ b/src/Ombi/Program.cs @@ -13,6 +13,10 @@ using Ombi.Extensions; using Ombi.Helpers; using System.Threading.Tasks; using System.Collections.Generic; +using Newtonsoft.Json; +using Ombi.Settings.Settings.Models; +using System.Diagnostics; +using System.IO; namespace Ombi { @@ -46,7 +50,10 @@ namespace Ombi }); Console.WriteLine(HelpOutput(result)); - + if (baseUrl.HasValue()) + { + Console.WriteLine($"Base Url: {baseUrl}"); + } UrlArgs = host; var urlValue = string.Empty; @@ -61,14 +68,14 @@ namespace Ombi using (var provider = services.BuildServiceProvider()) { var settingsDb = provider.GetRequiredService(); + var ombiDb = provider.GetRequiredService(); if (migrate) { Console.WriteLine("Migrate in progress..."); - + var migrationTasks = new List(); var externalDb = provider.GetRequiredService(); - var ombiDb = provider.GetRequiredService(); migrationTasks.Add(settingsDb.Database.MigrateAsync()); migrationTasks.Add(ombiDb.Database.MigrateAsync()); migrationTasks.Add(externalDb.Database.MigrateAsync()); @@ -81,7 +88,7 @@ namespace Ombi var config = await settingsDb.ApplicationConfigurations.ToListAsync(); var url = config.FirstOrDefault(x => x.Type == ConfigurationTypes.Url); - var dbBaseUrl = config.FirstOrDefault(x => x.Type == ConfigurationTypes.BaseUrl); + var ombiSettingsContent = await settingsDb.Settings.FirstOrDefaultAsync(x => x.SettingsName == "OmbiSettings"); var securityToken = config.FirstOrDefault(x => x.Type == ConfigurationTypes.SecurityToken); await CheckSecurityToken(securityToken, settingsDb, instance); if (url == null) @@ -118,34 +125,7 @@ namespace Ombi urlValue = host; } - if (dbBaseUrl == null) - { - if (baseUrl.HasValue() && baseUrl.StartsWith("/")) - { - dbBaseUrl = new ApplicationConfiguration - { - Type = ConfigurationTypes.BaseUrl, - Value = baseUrl - }; - - using (var tran = await settingsDb.Database.BeginTransactionAsync()) - { - settingsDb.ApplicationConfigurations.Add(dbBaseUrl); - await settingsDb.SaveChangesAsync(); - await tran.CommitAsync(); - } - } - } - else if (baseUrl.HasValue() && !baseUrl.Equals(dbBaseUrl.Value)) - { - dbBaseUrl.Value = baseUrl; - - using (var tran = await settingsDb.Database.BeginTransactionAsync()) - { - await settingsDb.SaveChangesAsync(); - await tran.CommitAsync(); - } - } + await SortOutBaseUrl(baseUrl, settingsDb, ombiSettingsContent); Console.WriteLine($"We are running on {urlValue}"); @@ -197,6 +177,80 @@ namespace Ombi return result.ToString(); } + + private static async Task SortOutBaseUrl(string baseUrl, SettingsContext settingsDb, GlobalSettings ombiSettingsContent) + { + var setBaseUrl = false; + if (ombiSettingsContent == null) + { + Console.WriteLine("Creating new Settings entity"); + ombiSettingsContent = new GlobalSettings + { + SettingsName = "OmbiSettings", + Content = JsonConvert.SerializeObject(new OmbiSettings()) + }; + using (var tran = await settingsDb.Database.BeginTransactionAsync()) + { + settingsDb.Add(ombiSettingsContent); + await settingsDb.SaveChangesAsync(); + await tran.CommitAsync(); + } + } + var ombiSettings = JsonConvert.DeserializeObject(ombiSettingsContent.Content); + if (ombiSettings == null) + { + if (baseUrl.HasValue() && baseUrl.StartsWith("/")) + { + setBaseUrl = true; + ombiSettings = new OmbiSettings + { + BaseUrl = baseUrl + }; + + ombiSettingsContent.Content = JsonConvert.SerializeObject(ombiSettings); + using (var tran = await settingsDb.Database.BeginTransactionAsync()) + { + settingsDb.Update(ombiSettingsContent); + await settingsDb.SaveChangesAsync(); + await tran.CommitAsync(); + } + } + } + else if (baseUrl.HasValue() && !baseUrl.Equals(ombiSettings.BaseUrl)) + { + setBaseUrl = true; + ombiSettings.BaseUrl = baseUrl; + + ombiSettingsContent.Content = JsonConvert.SerializeObject(ombiSettings); + using (var tran = await settingsDb.Database.BeginTransactionAsync()) + { + settingsDb.Update(ombiSettingsContent); + await settingsDb.SaveChangesAsync(); + await tran.CommitAsync(); + } + } + + + if (setBaseUrl) + { + var process = Process.GetCurrentProcess().MainModule.FileName; + var ombiInstalledDir = Path.GetDirectoryName(process); + var indexPath = Path.Combine(ombiInstalledDir, "ClientApp", "dist", "index.html"); + if (!File.Exists(indexPath)) + { + var error = $"Can't set the base URL because we cannot find the file at {indexPath}, if you are trying to set a base url please report this on Github!"; + Console.WriteLine(error); + throw new Exception(error); + } + var indexHtml = await File.ReadAllTextAsync(indexPath); + indexHtml = indexHtml.Replace("" + , $"", StringComparison.InvariantCultureIgnoreCase); + + await File.WriteAllTextAsync(indexPath, indexHtml); + + Console.WriteLine($"Wrote new baseurl at {indexPath}"); + } + } } public class Options diff --git a/src/Ombi/Startup.cs b/src/Ombi/Startup.cs index 49227a344..804abb840 100644 --- a/src/Ombi/Startup.cs +++ b/src/Ombi/Startup.cs @@ -153,25 +153,6 @@ namespace Ombi ombiService.SaveSettings(settings); } - if (!settings.Set) - { - settings.Set = true; - settings.CollectAnalyticData = true; - ombiService.SaveSettings(settings); - } - - // Check if it's in the startup args - var appConfig = serviceProvider.GetService(); - var baseUrl = appConfig.Get(ConfigurationTypes.BaseUrl); - if (baseUrl != null) - { - if (baseUrl.Value.HasValue()) - { - settings.BaseUrl = baseUrl.Value; - ombiService.SaveSettings(settings); - } - } - if (settings.BaseUrl.HasValue()) { app.UsePathBase(settings.BaseUrl); @@ -233,8 +214,8 @@ namespace Ombi app.UseSpa(spa => { -#if DEBUG spa.Options.SourcePath = "ClientApp"; +#if DEBUG spa.UseProxyToSpaDevelopmentServer("http://localhost:3578"); #endif });