|
|
|
@ -20,6 +20,7 @@ using Jellyfin.Drawing.Skia;
|
|
|
|
|
using MediaBrowser.Common.Configuration;
|
|
|
|
|
using MediaBrowser.Controller.Drawing;
|
|
|
|
|
using MediaBrowser.Controller.Extensions;
|
|
|
|
|
using MediaBrowser.WebDashboard.Api;
|
|
|
|
|
using Microsoft.AspNetCore.Hosting;
|
|
|
|
|
using Microsoft.Extensions.Configuration;
|
|
|
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
|
|
@ -185,8 +186,23 @@ namespace Jellyfin.Server
|
|
|
|
|
new ManagedFileSystem(_loggerFactory.CreateLogger<ManagedFileSystem>(), appPaths),
|
|
|
|
|
GetImageEncoder(appPaths),
|
|
|
|
|
new NetworkManager(_loggerFactory.CreateLogger<NetworkManager>()));
|
|
|
|
|
|
|
|
|
|
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();
|
|
|
|
|
await appHost.InitAsync(serviceCollection, startupConfig).ConfigureAwait(false);
|
|
|
|
|
|
|
|
|
|