diff --git a/build/Version.props b/build/Version.props
index fd0d736472..4f3b87ee93 100644
--- a/build/Version.props
+++ b/build/Version.props
@@ -14,10 +14,10 @@
1.3.0
1.2.1
1.0.2
- 6
netstandard2.0
+ 6
-
- https://dotnetcli.azureedge.net/dotnet/aspnetcore/Runtime/6.0.20/dotnet-hosting-6.0.20-win.exe
+ https://dotnetcli.azureedge.net/dotnet/aspnetcore/Runtime/6.0.20/dotnet-hosting-6.0.20-win.exe
+ https://ftp.osuosl.org/pub/mariadb/mariadb-11.0.2/winx64-packages/mariadb-11.0.2-winx64.msi
diff --git a/build/package/winget/Tgstation.Server.Host.Service.Wix.Bundle/Bundle.wxs b/build/package/winget/Tgstation.Server.Host.Service.Wix.Bundle/Bundle.wxs
index 2213c5ab0a..c316226284 100644
--- a/build/package/winget/Tgstation.Server.Host.Service.Wix.Bundle/Bundle.wxs
+++ b/build/package/winget/Tgstation.Server.Host.Service.Wix.Bundle/Bundle.wxs
@@ -1,7 +1,7 @@
-
+
@@ -13,11 +13,11 @@
-
-
-
+
+
+
diff --git a/build/package/winget/Tgstation.Server.Host.Service.Wix.Bundle/Tgstation.Server.Host.Service.Wix.Bundle.wixproj b/build/package/winget/Tgstation.Server.Host.Service.Wix.Bundle/Tgstation.Server.Host.Service.Wix.Bundle.wixproj
index f36ff5c638..1858d41c47 100644
--- a/build/package/winget/Tgstation.Server.Host.Service.Wix.Bundle/Tgstation.Server.Host.Service.Wix.Bundle.wixproj
+++ b/build/package/winget/Tgstation.Server.Host.Service.Wix.Bundle/Tgstation.Server.Host.Service.Wix.Bundle.wixproj
@@ -1,7 +1,7 @@
- ProductVersion=$(TgsCoreVersion);NetMajorVersion=$(TgsNetMajorVersion);DotnetRedistUrl=$(TgsDotnetRedistUrl)
+ ProductVersion=$(TgsCoreVersion);NetMajorVersion=$(TgsNetMajorVersion);DotnetRedistUrl=$(TgsDotnetRedistUrl);MariaDBRedistUrl=$(TgsMariaDBRedistUrl)
Bundle
x86
tgstation-server-installer
@@ -19,6 +19,10 @@
+
+
+
+
diff --git a/build/package/winget/Tgstation.Server.Host.Service.Wix.Bundle/Theme.wxl b/build/package/winget/Tgstation.Server.Host.Service.Wix.Bundle/Theme.wxl
new file mode 100644
index 0000000000..69dcacccdd
--- /dev/null
+++ b/build/package/winget/Tgstation.Server.Host.Service.Wix.Bundle/Theme.wxl
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/build/package/winget/Tgstation.Server.Host.Service.Wix.Bundle/Theme.xml b/build/package/winget/Tgstation.Server.Host.Service.Wix.Bundle/Theme.xml
new file mode 100644
index 0000000000..d6bd65e5c5
--- /dev/null
+++ b/build/package/winget/Tgstation.Server.Host.Service.Wix.Bundle/Theme.xml
@@ -0,0 +1,95 @@
+
+
+
+ Segoe UI
+ Segoe UI
+ Segoe UI
+ Segoe UI
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #(loc.InstallLicenseLinkText)
+ #(loc.MariaDBCheckbox)
+ #(loc.InstallAcceptCheckbox)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #(loc.FailureHyperlinkLogText)
+
+
+
+
+
+
+
diff --git a/build/package/winget/Tgstation.Server.Host.Service.Wix/Package.wxs b/build/package/winget/Tgstation.Server.Host.Service.Wix/Package.wxs
index e136a27cd9..b546febbe3 100644
--- a/build/package/winget/Tgstation.Server.Host.Service.Wix/Package.wxs
+++ b/build/package/winget/Tgstation.Server.Host.Service.Wix/Package.wxs
@@ -8,6 +8,7 @@
+
@@ -15,7 +16,8 @@
-
+
+
diff --git a/build/package/winget/prepare_installer_input_artifacts.ps1 b/build/package/winget/prepare_installer_input_artifacts.ps1
index 7a264a180e..ab075c6e3c 100644
--- a/build/package/winget/prepare_installer_input_artifacts.ps1
+++ b/build/package/winget/prepare_installer_input_artifacts.ps1
@@ -13,6 +13,7 @@ try
[XML]$versionXML = Get-Content build/Version.props -ErrorAction Stop
$redistUrl = $versionXML.Project.PropertyGroup.TgsDotnetRedistUrl
+ $dbRedistUrl = $versionXML.Project.PropertyGroup.TgsMariaDBRedistUrl
mkdir artifacts
$previousProgressPreference = $ProgressPreference
@@ -20,6 +21,7 @@ try
try
{
Invoke-WebRequest -Uri $redistUrl -OutFile artifacts/hosting-bundle.exe
+ Invoke-WebRequest -Uri $dbRedistUrl -OutFile artifacts/mariadb.msi
} finally {
$ProgressPreference = $previousProgressPreference
}
diff --git a/src/Tgstation.Server.Host/Configuration/InternalConfiguration.cs b/src/Tgstation.Server.Host/Configuration/InternalConfiguration.cs
index 0d54f24d73..0ed1730c9c 100644
--- a/src/Tgstation.Server.Host/Configuration/InternalConfiguration.cs
+++ b/src/Tgstation.Server.Host/Configuration/InternalConfiguration.cs
@@ -24,5 +24,10 @@
/// The base path for the app settings configuration files.
///
public string AppSettingsBasePath { get; set; }
+
+ ///
+ /// Coerce the to select .
+ ///
+ public bool MariaDBSetup { get; set; }
}
}
diff --git a/src/Tgstation.Server.Host/Setup/SetupWizard.cs b/src/Tgstation.Server.Host/Setup/SetupWizard.cs
index d83aeeb11c..9309b7a891 100644
--- a/src/Tgstation.Server.Host/Setup/SetupWizard.cs
+++ b/src/Tgstation.Server.Host/Setup/SetupWizard.cs
@@ -362,6 +362,12 @@ namespace Tgstation.Server.Host.Setup
{
if (firstTime)
{
+ if (internalConfiguration.MariaDBSetup)
+ {
+ await console.WriteAsync("It looks like you just installed MariaDB. Selecting it as the database type.", true, cancellationToken);
+ return DatabaseType.MariaDB;
+ }
+
await console.WriteAsync(String.Empty, true, cancellationToken);
await console.WriteAsync(
"NOTE: If you are serious about hosting public servers, it is HIGHLY reccommended that TGS runs on a database *OTHER THAN* Sqlite.",
@@ -413,19 +419,30 @@ namespace Tgstation.Server.Host.Setup
{
DatabaseType = await PromptDatabaseType(firstTime, cancellationToken),
};
- firstTime = false;
string serverAddress = null;
ushort? serverPort = null;
- bool isSqliteDB = databaseConfiguration.DatabaseType == DatabaseType.Sqlite;
+ var definitelyLocalMariaDB = firstTime && internalConfiguration.MariaDBSetup;
+ var isSqliteDB = databaseConfiguration.DatabaseType == DatabaseType.Sqlite;
IPHostEntry serverAddressEntry = null;
if (!isSqliteDB)
do
{
await console.WriteAsync(null, true, cancellationToken);
- await console.WriteAsync("Enter the server's address and port [: or ] (blank for local): ", false, cancellationToken);
- serverAddress = await console.ReadLineAsync(false, cancellationToken);
+ if (definitelyLocalMariaDB)
+ {
+ await console.WriteAsync("Enter the server's port (blank for 3306): ", false, cancellationToken);
+ var enteredPort = await console.ReadLineAsync(false, cancellationToken);
+ if (!String.IsNullOrWhiteSpace(enteredPort) && enteredPort.Trim() != "3306")
+ serverAddress = $"localhost:{enteredPort}";
+ }
+ else
+ {
+ await console.WriteAsync("Enter the server's address and port [: or ] (blank for local): ", false, cancellationToken);
+ serverAddress = await console.ReadLineAsync(false, cancellationToken);
+ }
+
if (String.IsNullOrWhiteSpace(serverAddress))
serverAddress = null;
else if (databaseConfiguration.DatabaseType == DatabaseType.SqlServer)
@@ -463,7 +480,7 @@ namespace Tgstation.Server.Host.Setup
while (true);
await console.WriteAsync(null, true, cancellationToken);
- await console.WriteAsync($"Enter the database {(isSqliteDB ? "file path" : "name")} (Can be from previous installation. Otherwise, should not exist): ", false, cancellationToken);
+ await console.WriteAsync($"Enter the database {(isSqliteDB ? "file path" : "name")} ({(definitelyLocalMariaDB ? "leave blank for \"tgs\")" : "Can be from previous installation. Otherwise, should not exist")}): ", false, cancellationToken);
string databaseName;
bool dbExists = false;
@@ -484,6 +501,8 @@ namespace Tgstation.Server.Host.Setup
null,
cancellationToken);
}
+ else if (definitelyLocalMariaDB)
+ databaseName = "tgs";
if (String.IsNullOrWhiteSpace(databaseName))
await console.WriteAsync("Invalid database name!", true, cancellationToken);
@@ -510,8 +529,17 @@ namespace Tgstation.Server.Host.Setup
if (!isSqliteDB)
if (!useWinAuth)
{
- await console.WriteAsync("Enter username: ", false, cancellationToken);
- username = await console.ReadLineAsync(false, cancellationToken);
+ if (definitelyLocalMariaDB)
+ {
+ await console.WriteAsync("Using username: root", true, cancellationToken);
+ username = "root";
+ }
+ else
+ {
+ await console.WriteAsync("Enter username: ", false, cancellationToken);
+ username = await console.ReadLineAsync(false, cancellationToken);
+ }
+
await console.WriteAsync("Enter password: ", false, cancellationToken);
password = await console.ReadLineAsync(true, cancellationToken);
}
@@ -625,6 +653,11 @@ namespace Tgstation.Server.Host.Setup
await console.WriteAsync(e.Message, true, cancellationToken);
await console.WriteAsync(null, true, cancellationToken);
await console.WriteAsync("Retrying database configuration...", true, cancellationToken);
+
+ if (definitelyLocalMariaDB)
+ await console.WriteAsync("No longer assuming MariaDB is the target.", true, cancellationToken);
+
+ firstTime = false;
}
}
while (true);