diff --git a/src/webui/api/appcontroller.cpp b/src/webui/api/appcontroller.cpp
index 9e580e1e9..e256136a3 100644
--- a/src/webui/api/appcontroller.cpp
+++ b/src/webui/api/appcontroller.cpp
@@ -217,6 +217,9 @@ void AppController::preferencesAction()
for (const Utils::Net::Subnet &subnet : asConst(pref->getWebUiAuthSubnetWhitelist()))
authSubnetWhitelistStringList << Utils::Net::subnetToString(subnet);
data["bypass_auth_subnet_whitelist"] = authSubnetWhitelistStringList.join("\n");
+ // Use alternative Web UI
+ data["alternative_webui_enabled"] = pref->isAltWebUiEnabled();
+ data["alternative_webui_path"] = pref->getWebUiRootFolder();
// Security
data["web_ui_clickjacking_protection_enabled"] = pref->isWebUiClickjackingProtectionEnabled();
data["web_ui_csrf_protection_enabled"] = pref->isWebUiCSRFProtectionEnabled();
@@ -518,6 +521,11 @@ void AppController::setPreferencesAction()
// recognize new lines and commas as delimiters
pref->setWebUiAuthSubnetWhitelist(m["bypass_auth_subnet_whitelist"].toString().split(QRegularExpression("\n|,"), QString::SkipEmptyParts));
}
+ // Use alternative Web UI
+ if ((it = m.find(QLatin1String("alternative_webui_enabled"))) != m.constEnd())
+ pref->setAltWebUiEnabled(it.value().toBool());
+ if ((it = m.find(QLatin1String("alternative_webui_path"))) != m.constEnd())
+ pref->setWebUiRootFolder(it.value().toString());
// Security
if (m.contains("web_ui_clickjacking_protection_enabled"))
pref->setWebUiClickjackingProtectionEnabled(m["web_ui_clickjacking_protection_enabled"].toBool());
diff --git a/src/webui/www/private/preferences_content.html b/src/webui/www/private/preferences_content.html
index ba48b138a..19ca43616 100644
--- a/src/webui/www/private/preferences_content.html
+++ b/src/webui/www/private/preferences_content.html
@@ -705,6 +705,15 @@
+
+