Some checks failed
Build and Publish Docker Image / build-and-push (push) Has been cancelled
77 lines
2.8 KiB
C#
77 lines
2.8 KiB
C#
namespace OTSSignsOrchestrator.Core.Configuration;
|
|
|
|
public class FileLoggingOptions
|
|
{
|
|
public const string SectionName = "FileLogging";
|
|
public bool Enabled { get; set; } = true;
|
|
public string Path { get; set; } = "logs";
|
|
public string RollingInterval { get; set; } = "Day";
|
|
public int RetentionDays { get; set; } = 30;
|
|
public long FileSizeLimitBytes { get; set; } = 100 * 1024 * 1024; // 100MB
|
|
}
|
|
|
|
public class GitOptions
|
|
{
|
|
public const string SectionName = "Git";
|
|
public string CacheDir { get; set; } = ".template-cache";
|
|
public int CacheTtlMinutes { get; set; } = 60;
|
|
public int ShallowCloneDepth { get; set; } = 1;
|
|
}
|
|
|
|
public class DockerOptions
|
|
{
|
|
public const string SectionName = "Docker";
|
|
public List<string> DefaultConstraints { get; set; } = new() { "node.labels.xibo==true" };
|
|
public int DeployTimeoutSeconds { get; set; } = 30;
|
|
public bool ValidateBeforeDeploy { get; set; } = true;
|
|
}
|
|
|
|
public class XiboDefaultImages
|
|
{
|
|
public string Cms { get; set; } = "ghcr.io/xibosignage/xibo-cms:release-4.4.0";
|
|
public string Mysql { get; set; } = "mysql:8.4";
|
|
public string Memcached { get; set; } = "memcached:alpine";
|
|
public string QuickChart { get; set; } = "ianw/quickchart";
|
|
}
|
|
|
|
public class XiboOptions
|
|
{
|
|
public const string SectionName = "Xibo";
|
|
public XiboDefaultImages DefaultImages { get; set; } = new();
|
|
public int TestConnectionTimeoutSeconds { get; set; } = 10;
|
|
}
|
|
|
|
public class DatabaseOptions
|
|
{
|
|
public const string SectionName = "Database";
|
|
public string Provider { get; set; } = "Sqlite";
|
|
}
|
|
|
|
public class InstanceDefaultsOptions
|
|
{
|
|
public const string SectionName = "InstanceDefaults";
|
|
|
|
/// <summary>Default template repo URL if not overridden per-instance.</summary>
|
|
public string? TemplateRepoUrl { get; set; }
|
|
public string? TemplateRepoPat { get; set; }
|
|
|
|
/// <summary>Template for CMS server hostname. Use {abbrev} as placeholder.</summary>
|
|
public string CmsServerNameTemplate { get; set; } = "{abbrev}.ots-signs.com";
|
|
|
|
public string SmtpServer { get; set; } = string.Empty;
|
|
public string SmtpUsername { get; set; } = string.Empty;
|
|
public string SmtpPassword { get; set; } = string.Empty;
|
|
|
|
public int BaseHostHttpPort { get; set; } = 8080;
|
|
|
|
/// <summary>Template for theme path. Use {abbrev} as placeholder.</summary>
|
|
/// <summary>Static host path for the theme volume mount. Overridable per-instance.</summary>
|
|
public string ThemeHostPath { get; set; } = "/cms/ots-theme";
|
|
|
|
/// <summary>Subfolder name on CIFS share for the library volume. Use {abbrev} as placeholder.</summary>
|
|
public string LibraryShareSubPath { get; set; } = "{abbrev}-cms-library";
|
|
|
|
public string MySqlDatabaseTemplate { get; set; } = "{abbrev}_cms_db";
|
|
public string MySqlUserTemplate { get; set; } = "{abbrev}_cms_user";
|
|
}
|