|
@@ -20,6 +20,7 @@ using Jellyfin.Drawing.Skia;
|
|
using MediaBrowser.Common.Configuration;
|
|
using MediaBrowser.Common.Configuration;
|
|
using MediaBrowser.Controller.Drawing;
|
|
using MediaBrowser.Controller.Drawing;
|
|
using MediaBrowser.Controller.Extensions;
|
|
using MediaBrowser.Controller.Extensions;
|
|
|
|
+using MediaBrowser.WebDashboard.Api;
|
|
using Microsoft.AspNetCore.Hosting;
|
|
using Microsoft.AspNetCore.Hosting;
|
|
using Microsoft.Extensions.Configuration;
|
|
using Microsoft.Extensions.Configuration;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
@@ -185,8 +186,23 @@ namespace Jellyfin.Server
|
|
new ManagedFileSystem(_loggerFactory.CreateLogger<ManagedFileSystem>(), appPaths),
|
|
new ManagedFileSystem(_loggerFactory.CreateLogger<ManagedFileSystem>(), appPaths),
|
|
GetImageEncoder(appPaths),
|
|
GetImageEncoder(appPaths),
|
|
new NetworkManager(_loggerFactory.CreateLogger<NetworkManager>()));
|
|
new NetworkManager(_loggerFactory.CreateLogger<NetworkManager>()));
|
|
|
|
+
|
|
try
|
|
try
|
|
{
|
|
{
|
|
|
|
+ // If hosting the web client, validate the client content path
|
|
|
|
+ if (startupConfig.HostWebClient())
|
|
|
|
+ {
|
|
|
|
+ string webContentPath = DashboardService.GetDashboardUIPath(startupConfig, appHost.ServerConfigurationManager);
|
|
|
|
+ if (!Directory.Exists(webContentPath) || Directory.GetFiles(webContentPath).Length == 0)
|
|
|
|
+ {
|
|
|
|
+ throw new InvalidOperationException(
|
|
|
|
+ "The server is expected to host the web client, but the provided content directory is either " +
|
|
|
|
+ $"invalid or empty: {webContentPath}. If you do not want to host the web client with the " +
|
|
|
|
+ "server, you may set the '--nowebclient' command line flag, or set" +
|
|
|
|
+ $"'{MediaBrowser.Controller.Extensions.ConfigurationExtensions.HostWebClientKey}=false' in your config settings.");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
ServiceCollection serviceCollection = new ServiceCollection();
|
|
ServiceCollection serviceCollection = new ServiceCollection();
|
|
await appHost.InitAsync(serviceCollection, startupConfig).ConfigureAwait(false);
|
|
await appHost.InitAsync(serviceCollection, startupConfig).ConfigureAwait(false);
|
|
|
|
|