Jellyfin 11.0.0-PostgreSQL PREVIEW: version bump & defaults

- Update version to 11.0.0-PostgreSQL-PREVIEW in assemblies, installer, and build scripts
- Default web directory is now "wwwroot" across all platforms
- Configuration manager now creates .example files if missing
- Set PostgreSQL as default database with sensible options
- Postgres provider ensures database exists before table checks
- Add docs for marker conflict fixes and startup.json path issues
- Version string in logs/UI uses informational version
- Installer output filename and wizard show PREVIEW suffix
- Documentation summarizes version bump and verification steps
This commit is contained in:
2026-02-27 13:45:09 -05:00
parent d623cd03a9
commit 33d7c010fb
12 changed files with 1214 additions and 47 deletions
@@ -318,8 +318,44 @@ namespace Emby.Server.Implementations.AppBase
Logger.LogError(ex, "Error loading configuration file: {Path}", path);
}
return Activator.CreateInstance(configurationType)
// Configuration file doesn't exist, check for .example file
var examplePath = path + ".example";
var exampleFileJustCreated = false;
var defaultConfiguration = Activator.CreateInstance(configurationType)
?? throw new InvalidOperationException("Configuration type can't be Nullable<T>.");
try
{
Directory.CreateDirectory(Path.GetDirectoryName(path) ?? throw new InvalidOperationException("Path can't be a root directory."));
// Create .example file if it doesn't exist
if (!File.Exists(examplePath))
{
XmlSerializer.SerializeToFile(defaultConfiguration, examplePath);
Logger.LogInformation("Created example configuration file: {Path}", examplePath);
exampleFileJustCreated = true;
}
// Copy example to actual file only if example was just created or if we want to initialize from example
if (exampleFileJustCreated)
{
File.Copy(examplePath, path, overwrite: false);
Logger.LogInformation("Created configuration file from example: {Path}", path);
}
else
{
// Example exists but actual doesn't - create actual with defaults (user may have customized example)
XmlSerializer.SerializeToFile(defaultConfiguration, path);
Logger.LogInformation("Created default configuration file: {Path}", path);
}
}
catch (Exception ex)
{
Logger.LogWarning(ex, "Unable to create configuration file: {Path}", path);
}
return defaultConfiguration;
}
/// <inheritdoc />