aboutsummaryrefslogtreecommitdiff
path: root/Jellyfin.Server/Program.cs
diff options
context:
space:
mode:
authorJPVenson <github@jpb.email>2026-03-01 13:10:32 +0000
committerJPVenson <github@jpb.email>2026-03-01 13:10:32 +0000
commite70eaf8bc1470436fdafb7fef6e23898b4a3423b (patch)
tree1225e94b022dae4248b8af2f850ab35c185ecc14 /Jellyfin.Server/Program.cs
parentf680495ca377b20488cc8133a054317d6daf48fc (diff)
Add startup mode to migrate or seed the database on cmd
Diffstat (limited to 'Jellyfin.Server/Program.cs')
-rw-r--r--Jellyfin.Server/Program.cs28
1 files changed, 18 insertions, 10 deletions
diff --git a/Jellyfin.Server/Program.cs b/Jellyfin.Server/Program.cs
index 93f71fdc69..e774c16510 100644
--- a/Jellyfin.Server/Program.cs
+++ b/Jellyfin.Server/Program.cs
@@ -137,7 +137,7 @@ namespace Jellyfin.Server
StartupHelpers.PerformStaticInitialization();
- await ApplyStartupMigrationAsync(appPaths, startupConfig).ConfigureAwait(false);
+ await ApplyStartupMigrationAsync(appPaths, startupConfig, options).ConfigureAwait(false);
do
{
@@ -214,13 +214,17 @@ namespace Jellyfin.Server
{
configurationCompleted = true;
await _setupServer!.StopAsync().ConfigureAwait(false);
- await _jellyfinHost.StartAsync().ConfigureAwait(false);
- if (!OperatingSystem.IsWindows() && startupConfig.UseUnixSocket())
+ if (options.StartupMode is null or Configuration.StartupMode.MediaServer)
{
- var socketPath = StartupHelpers.GetUnixSocketPath(startupConfig, appPaths);
+ await _jellyfinHost.StartAsync().ConfigureAwait(false);
- StartupHelpers.SetUnixSocketPermissions(startupConfig, socketPath, _logger);
+ if (!OperatingSystem.IsWindows() && startupConfig.UseUnixSocket())
+ {
+ var socketPath = StartupHelpers.GetUnixSocketPath(startupConfig, appPaths);
+
+ StartupHelpers.SetUnixSocketPermissions(startupConfig, socketPath, _logger);
+ }
}
}
catch (Exception)
@@ -229,11 +233,14 @@ namespace Jellyfin.Server
throw;
}
- await appHost.RunStartupTasksAsync().ConfigureAwait(false);
+ if (options.StartupMode is null or Configuration.StartupMode.MediaServer)
+ {
+ await appHost.RunStartupTasksAsync().ConfigureAwait(false);
+ _logger.LogInformation("Startup complete {Time:g}", Stopwatch.GetElapsedTime(_startTimestamp));
- _logger.LogInformation("Startup complete {Time:g}", Stopwatch.GetElapsedTime(_startTimestamp));
+ await _jellyfinHost.WaitForShutdownAsync().ConfigureAwait(false);
+ }
- await _jellyfinHost.WaitForShutdownAsync().ConfigureAwait(false);
_restartOnShutdown = appHost.ShouldRestart;
_restoreFromBackup = appHost.RestoreBackupPath;
}
@@ -274,8 +281,9 @@ namespace Jellyfin.Server
/// </remarks>
/// <param name="appPaths">Application Paths.</param>
/// <param name="startupConfig">Startup Config.</param>
+ /// <param name="startupOptions">The applications startup options.</param>
/// <returns>A task.</returns>
- public static async Task ApplyStartupMigrationAsync(ServerApplicationPaths appPaths, IConfiguration startupConfig)
+ public static async Task ApplyStartupMigrationAsync(ServerApplicationPaths appPaths, IConfiguration startupConfig, StartupOptions startupOptions)
{
_migrationLogger = StartupLogger.Logger.BeginGroup<JellyfinMigrationService>($"Migration Service");
var startupConfigurationManager = new ServerConfigurationManager(appPaths, _loggerFactory, new MyXmlSerializer());
@@ -293,7 +301,7 @@ namespace Jellyfin.Server
PrepareDatabaseProvider(startupService);
var jellyfinMigrationService = ActivatorUtilities.CreateInstance<JellyfinMigrationService>(startupService);
- await jellyfinMigrationService.CheckFirstTimeRunOrMigration(appPaths).ConfigureAwait(false);
+ await jellyfinMigrationService.CheckFirstTimeRunOrMigration(appPaths, startupOptions).ConfigureAwait(false);
await jellyfinMigrationService.MigrateStepAsync(Migrations.Stages.JellyfinMigrationStageTypes.PreInitialisation, startupService).ConfigureAwait(false);
}