edit_server.php 40 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845
  1. <!-- Begin toolbar -->
  2. <div class="toolbar">
  3. <div class="toolbar-inner">
  4. <div class="toolbar-buttons">
  5. <a class="button button-secondary" id="btn-back" href="/list/server/">
  6. <i class="fas fa-arrow-left icon-blue"></i><?= _("Back") ?>
  7. </a>
  8. <a href="/list/ip/" class="button button-secondary">
  9. <i class="fas fa-ethernet icon-blue"></i><?= _("IP") ?>
  10. </a>
  11. <?php if (isset($_SESSION["FIREWALL_SYSTEM"]) && !empty($_SESSION["FIREWALL_SYSTEM"])) { ?>
  12. <a href="/list/firewall/" class="button button-secondary">
  13. <i class="fas fa-shield-halved icon-red"></i><?= _("Firewall") ?>
  14. </a>
  15. <?php } ?>
  16. </div>
  17. <div class="toolbar-buttons">
  18. <button class="button" type="submit" form="vstobjects">
  19. <i class="fas fa-floppy-disk icon-purple"></i><?= _("Save") ?>
  20. </button>
  21. </div>
  22. </div>
  23. </div>
  24. <!-- End toolbar -->
  25. <div class="container animate__animated animate__fadeIn">
  26. <form
  27. x-data="{
  28. hasSmtpRelay: <?= $v_smtp_relay == "true" ? "true" : "false" ?>,
  29. remoteBackupEnabled: <?= !empty($v_backup_remote_adv) ? "true" : "false" ?>
  30. }"
  31. id="vstobjects"
  32. name="v_configure_server"
  33. method="post"
  34. >
  35. <input type="hidden" name="token" value="<?= $_SESSION["token"] ?>">
  36. <input type="hidden" name="save" value="save">
  37. <div class="form-container">
  38. <h1 class="form-title"><?= _("Configuring Server") ?></h1>
  39. <?php show_alert_message($_SESSION); ?>
  40. <!-- Basic options tab -->
  41. <details class="collapse u-mb10">
  42. <summary class="collapse-header">
  43. <i class="fas fa-gear u-mr15"></i><?= _("Basic options") ?>
  44. </summary>
  45. <div class="collapse-content">
  46. <div class="u-mb10">
  47. <label for="v_hostname" class="form-label"><?= _("Hostname") ?></label>
  48. <input type="text" class="form-control" name="v_hostname" id="v_hostname" value="<?= htmlentities(trim($v_hostname, "'")) ?>">
  49. </div>
  50. <div class="u-mb10">
  51. <label for="v_timezone" class="form-label"><?= _("Time Zone") ?></label>
  52. <select class="form-select" name="v_timezone" id="v_timezone">
  53. <?php
  54. foreach ($v_timezones as $key => $value) {
  55. echo "\t\t\t\t<option value=\"".$value."\"";
  56. if ((!empty($v_timezone)) && ( $value == $v_timezone)){
  57. echo ' selected' ;
  58. }
  59. echo ">".$value."</option>\n";
  60. }
  61. ?>
  62. </select>
  63. </div>
  64. <div class="u-mb10">
  65. <label for="v_theme" class="form-label"><?= _("Theme") ?></label>
  66. <select class="form-select" name="v_theme" id="v_theme">
  67. <?php
  68. foreach ($theme as $key => $value) {
  69. echo "\t\t\t\t<option value=\"".$value."\"";
  70. if (($value == $_SESSION['THEME'])){
  71. echo ' selected' ;
  72. }
  73. echo ">".$value."</option>\n";
  74. }
  75. ?>
  76. </select>
  77. </div>
  78. <div class="form-check u-mb20">
  79. <input class="form-check-input" type="checkbox" name="v_policy_user_change_theme" id="v_policy_user_change_theme" <?php if ((isset($_SESSION['POLICY_USER_CHANGE_THEME'])) && (!empty($_SESSION['POLICY_USER_CHANGE_THEME'])) && ($_SESSION['POLICY_USER_CHANGE_THEME'] == "no")) echo 'checked' ?>>
  80. <label for="v_policy_user_change_theme">
  81. <?= _("Set as selected theme for all users") ?>
  82. </label>
  83. </div>
  84. <div class="u-mb10">
  85. <label for="v_language" class="form-label"><?= _("Default Language") ?></label>
  86. <select class="form-select" name="v_language" id="v_language">
  87. <?php
  88. foreach ($languages as $key => $value) {
  89. echo "\n\t\t\t\t\t\t\t\t\t<option value=\"".$key."\"";
  90. if (( $key == $_SESSION['LANGUAGE'] && (empty($v_language)) )) {
  91. echo 'selected' ;
  92. }
  93. echo ">".htmlentities($value)."</option>\n";
  94. }
  95. ?>
  96. </select>
  97. </div>
  98. <div class="form-check">
  99. <input class="form-check-input" type="checkbox" name="v_language_update" id="v_language_update">
  100. <label for="v_language_update">
  101. <?= _("Set as default language for all users") ?>
  102. </label>
  103. </div>
  104. </div>
  105. </details>
  106. <!-- Updates tab -->
  107. <details class="collapse u-mb10">
  108. <summary class="collapse-header">
  109. <i class="fas fa-code-branch u-mr15"></i><?= _("Updates") ?>
  110. </summary>
  111. <div class="collapse-content">
  112. <p class="u-mb10">
  113. <?= _("Version") ?>: <span class="optional"><?= $_SESSION["VERSION"] ?></span>
  114. </p>
  115. <?php if ($_SESSION["RELEASE_BRANCH"] !== "release") { ?>
  116. <p><?= _("Release") ?>: <span class="optional"><?= $_SESSION["RELEASE_BRANCH"] ?></span></p>
  117. <?php } ?>
  118. <p class="u-mb5"><?= _("Options") ?></p>
  119. <div class="form-check">
  120. <input class="form-check-input" type="checkbox" name="v_debug_mode" id="v_debug_mode" <?php if ((isset($_SESSION['DEBUG_MODE'])) && (!empty($_SESSION['DEBUG_MODE'])) && ($_SESSION['DEBUG_MODE'] == "true")) echo 'checked' ?>>
  121. <label for="v_debug_mode">
  122. <?= _("Enable debug mode") ?>
  123. </label>
  124. </div>
  125. <div class="form-check">
  126. <input class="form-check-input" type="checkbox" name="v_experimental_features" id="v_experimental_features" <?php if ((isset($_SESSION['POLICY_SYSTEM_ENABLE_BACON'])) && (!empty($_SESSION['POLICY_SYSTEM_ENABLE_BACON'])) && ($_SESSION['POLICY_SYSTEM_ENABLE_BACON'] == "true")) echo 'checked' ?>>
  127. <label for="v_experimental_features">
  128. <?= _("Enable preview features") ?>
  129. </label>
  130. <span class="hint">(<a href="/list/server/preview/"><?= _("View") ?></a>)</span>
  131. </div>
  132. <div class="form-check">
  133. <input class="form-check-input" type="checkbox" name="v_upgrade_send_notification_email" id="v_upgrade_send_notification_email" <?php if ((isset($_SESSION['UPGRADE_SEND_EMAIL'])) && (!empty($_SESSION['UPGRADE_SEND_EMAIL'])) && ($_SESSION['UPGRADE_SEND_EMAIL'] == "true")) echo 'checked' ?>>
  134. <label for="v_upgrade_send_notification_email">
  135. <?= _("SYSTEM_UPGRADE_SEND_NOTIFICATION_EMAIL") ?>
  136. </label>
  137. </div>
  138. <div class="form-check">
  139. <input class="form-check-input" type="checkbox" name="v_upgrade_send_email_log" id="v_upgrade_send_email_log" <?php if ((isset($_SESSION['UPGRADE_SEND_EMAIL_LOG'])) && (!empty($_SESSION['UPGRADE_SEND_EMAIL_LOG'])) && ($_SESSION['UPGRADE_SEND_EMAIL_LOG'] == "true")) echo 'checked' ?>>
  140. <label for="v_upgrade_send_email_log">
  141. <?= _("SYSTEM_UPGRADE_SEND_EMAIL_LOG") ?>
  142. </label>
  143. </div>
  144. </div>
  145. </details>
  146. <!-- Web Server tab -->
  147. <details class="collapse u-mb10">
  148. <summary class="collapse-header">
  149. <i class="fas fa-earth-americas u-mr15"></i><?= _("Web Server") ?>
  150. </summary>
  151. <div class="collapse-content">
  152. <?php if (!empty($_SESSION["PROXY_SYSTEM"])) { ?>
  153. <p>
  154. <?= _("Proxy Server") ?>: <span class="u-ml5"><?= $_SESSION["PROXY_SYSTEM"] ?></span>
  155. <a href="/edit/server/<? echo $_SESSION['PROXY_SYSTEM'] ?>/" class="u-ml5">
  156. <i class="fas fa-pencil icon-orange"></i>
  157. </a>
  158. </p>
  159. <?php } ?>
  160. <?php if (!empty($_SESSION["WEB_SYSTEM"])) { ?>
  161. <p>
  162. <?= _("Web Server") ?>: <span class="u-ml5"><?= $_SESSION["WEB_SYSTEM"] ?></span>
  163. <a href="/edit/server/<? echo $_SESSION['WEB_SYSTEM'] ?>/" class="u-ml5">
  164. <i class="fas fa-pencil icon-orange"></i>
  165. </a>
  166. </p>
  167. <?php } ?>
  168. <?php if (!empty($_SESSION["WEB_BACKEND"])) { ?>
  169. <p>
  170. <?= _("Backend Server") ?>: <span class="u-ml5"><?= $_SESSION["WEB_BACKEND"] ?></span>
  171. <a href="/edit/server/<? echo $_SESSION['WEB_BACKEND'] ?>/" class="u-ml5">
  172. <i class="fas fa-pencil icon-orange"></i>
  173. </a>
  174. </p>
  175. <?php } ?>
  176. <?php if (!empty($_SESSION["WEB_BACKEND_POOL"])) { ?>
  177. <p>
  178. <?= _("Backend Pool Mode") ?>: <span class="u-ml5"><?= $_SESSION["WEB_BACKEND_POOL"] ?></span>
  179. </p>
  180. <?php } ?>
  181. <?php if (count($v_php_versions)): ?>
  182. <div class="u-mt15">
  183. <p class="u-mb10"><?= _("Enabled multi PHP versions") ?></p>
  184. <div class="alert alert-info u-mb10" role="alert">
  185. <i class="fas fa-info"></i>
  186. <p><?= _("Please wait while php is installed or removed") ?></p>
  187. </div>
  188. </div>
  189. <?php foreach ($v_php_versions as $php_version): ?>
  190. <div class="form-check">
  191. <input class="form-check-input" type="checkbox"
  192. <?= $php_version->installed ? "checked" : "" ?>
  193. <?= $php_version->protected ? "disabled" : "" ?>
  194. id="<?= $php_version->name ?>"
  195. name="v_php_versions[<?= $php_version->tpl ?>]">
  196. <label for="<?= $php_version->name ?>">
  197. <?= $php_version->name ?>
  198. </label>
  199. </div>
  200. <?php foreach ($php_version->usedby as $wd_user => $wd_domains): ?>
  201. <?php foreach ($wd_domains as $wd_domain): ?>
  202. <p class="u-side-by-side" style="border: 1px lightgrey; padding:0 10px;">
  203. <span>
  204. <i class="fas fa-user"></i>
  205. <?= $wd_user ?>
  206. </span>
  207. <span class="optional"><?= $wd_domain ?></span>
  208. </p>
  209. <?php endforeach; ?>
  210. <?php endforeach; ?>
  211. <?php endforeach; ?>
  212. <?php endif; ?>
  213. <?php if (!empty($_SESSION["WEB_BACKEND"])) { ?>
  214. <div class="u-mt10">
  215. <label for="v_php_default_version" class="form-label"><?= _("System PHP version") ?></label>
  216. <select class="form-select" name="v_php_default_version" id="v_php_default_version">
  217. <?php
  218. foreach ($v_php_versions as $php_version) {
  219. if ($php_version -> installed) {
  220. ?>
  221. <option value="<?=$php_version->version; ?>" <?php if($php_version->name == DEFAULT_PHP_VERSION){ echo "selected" ;}?> ><?=$php_version->name; ?></option>
  222. <?php
  223. }
  224. }
  225. ?>
  226. </select>
  227. </div>
  228. <?php } ?>
  229. </div>
  230. </details>
  231. <!-- DNS Server tab -->
  232. <?php if (!empty($_SESSION["DNS_SYSTEM"])) { ?>
  233. <details class="collapse u-mb10">
  234. <summary class="collapse-header">
  235. <i class="fas fa-book-atlas u-mr15"></i><?= _("DNS Server") ?>
  236. </summary>
  237. <div class="collapse-content">
  238. <p>
  239. <?= _("DNS Server") ?>: <span class="u-ml5"><?= $_SESSION["DNS_SYSTEM"] ?></span>
  240. <a href="/edit/server/<? echo $_SESSION['DNS_SYSTEM'] ?>/" class="u-ml5">
  241. <i class="fas fa-pencil icon-orange"></i>
  242. </a>
  243. </p>
  244. <p>
  245. <?= _("DNS Cluster") ?>: <span class="u-ml5"><?php if ($v_dns_cluster == 'yes') { echo _('Yes'); } else { echo _('No'); } ?></span>
  246. </p>
  247. <?php if ($v_dns_cluster == 'yes') {
  248. $i = 0;
  249. foreach ($dns_cluster as $key => $value) {
  250. $i++;
  251. ?>
  252. <div>
  253. <label for="v_dns_remote_host" class="form-label"><?= _("Host") . " #" . $i ?></label>
  254. <input type="text" class="form-control" name="v_dns_remote_host" id="v_dns_remote_host" value="<?= $key ?>" disabled>
  255. </div>
  256. <?php } } ?>
  257. </div>
  258. </details>
  259. <?php } ?>
  260. <!-- Mail Server tab -->
  261. <?php if (!empty($_SESSION["MAIL_SYSTEM"])) { ?>
  262. <details class="collapse u-mb10">
  263. <summary class="collapse-header">
  264. <i class="fas fa-envelopes-bulk u-mr15"></i><?= _("Mail Server") ?>
  265. </summary>
  266. <div class="collapse-content">
  267. <p>
  268. <?= _("Mail Server") ?>: <span class="u-ml5"><?= $_SESSION["MAIL_SYSTEM"] ?></span>
  269. <a href="/edit/server/<? echo $_SESSION['MAIL_SYSTEM'] ?>/" class="u-ml5">
  270. <i class="fas fa-pencil icon-orange"></i>
  271. </a>
  272. </p>
  273. <?php if (!empty($_SESSION["ANTIVIRUS_SYSTEM"])) { ?>
  274. <p>
  275. <?= _("Antivirus") ?>: <span class="u-ml5"><?= $_SESSION["ANTIVIRUS_SYSTEM"] ?></span>
  276. <a href="/edit/server/<? echo $_SESSION['ANTIVIRUS_SYSTEM'] ?>/" class="u-ml5">
  277. <i class="fas fa-pencil icon-orange"></i>
  278. </a>
  279. </p>
  280. <?php } ?>
  281. <?php if (!empty($_SESSION["ANTISPAM_SYSTEM"])) { ?>
  282. <p>
  283. <?= _("AntiSpam") ?>: <span class="u-ml5"><?= $_SESSION["ANTISPAM_SYSTEM"] ?></span>
  284. <a href="/edit/server/<? echo $_SESSION['ANTISPAM_SYSTEM'] ?>/" class="u-ml5">
  285. <i class="fas fa-pencil icon-orange"></i>
  286. </a>
  287. </p>
  288. <?php } ?>
  289. <?php if ($_SESSION["WEBMAIL_SYSTEM"]) { ?>
  290. <div class="u-mt15 u-mb10">
  291. <label for="v_webmail_alias" class="form-label">
  292. <?= _("Webmail URL") ?> <span class="hint">(<?= $_SESSION["WEBMAIL_ALIAS"] ?>.example.com)</span>
  293. </label>
  294. <input type="text" class="form-control" name="v_webmail_alias" id="v_webmail_alias" value="<?= $_SESSION["WEBMAIL_ALIAS"] ?>">
  295. </div>
  296. <?php } ?>
  297. <div class="form-check u-mt20">
  298. <input x-model="hasSmtpRelay" class="form-check-input" type="checkbox" name="v_smtp_relay" id="v_smtp_relay">
  299. <label for="v_smtp_relay">
  300. <?= _("Global SMTP Relay") ?>
  301. </label>
  302. </div>
  303. <div x-cloak x-show="hasSmtpRelay" id="smtp_relay_table" class="u-pl30 u-mt20">
  304. <div class="u-mb10">
  305. <label for="v_smtp_relay_host" class="form-label"><?= _("Host") ?></label>
  306. <input type="text" class="form-control" name="v_smtp_relay_host" id="v_smtp_relay_host" value="<?= htmlentities(trim($v_smtp_relay_host, "'")) ?>">
  307. </div>
  308. <div class="u-mb10">
  309. <label for="v_smtp_relay_port" class="form-label"><?= _("Port") ?></label>
  310. <input type="text" class="form-control" name="v_smtp_relay_port" id="v_smtp_relay_port" value="<?= htmlentities(trim($v_smtp_relay_port, "'")) ?>">
  311. </div>
  312. <div class="u-mb10">
  313. <label for="v_smtp_relay_user" class="form-label"><?= _("Username") ?></label>
  314. <input type="text" class="form-control" name="v_smtp_relay_user" id="v_smtp_relay_user" value="<?= htmlentities(trim($v_smtp_relay_user, "'")) ?>">
  315. </div>
  316. <div class="u-mb10">
  317. <label for="v_smtp_relay_pass" class="form-label"><?= _("Password") ?></label>
  318. <div class="u-pos-relative">
  319. <input type="text" class="form-control js-password-input" name="v_smtp_relay_pass" id="v_smtp_relay_pass">
  320. </div>
  321. </div>
  322. </div>
  323. </div>
  324. </details>
  325. <?php } ?>
  326. <!-- Databases tab -->
  327. <?php if (!empty($_SESSION["DB_SYSTEM"])) { ?>
  328. <details class="collapse u-mb10">
  329. <summary class="collapse-header">
  330. <i class="fas fa-database u-mr15"></i><?= _("Databases") ?>
  331. </summary>
  332. <div class="collapse-content">
  333. <div class="u-mb10">
  334. <label for="v_mysql" class="form-label">
  335. <?= _("MySQL Support") ?> <a href="/edit/server/mysql/" class="u-ml5"><i class="fas fa-pencil icon-orange"></i></a>
  336. </label>
  337. <select class="form-select" name="v_mysql" id="v_mysql" disabled>
  338. <option value="no"><?= _("No") ?></option>
  339. <option value="yes" <?php if($v_mysql == 'yes') echo 'selected' ?>><?= _("Yes") ?></option>
  340. </select>
  341. </div>
  342. <!-- MySQL / MariaDB Options-->
  343. <?php if ($v_mysql == "yes") { ?>
  344. <div class="u-mb20">
  345. <label for="v_mysql_url" class="form-label"><?= _("phpMyAdmin URL") ?></label>
  346. <input type="text" class="form-control" name="v_mysql_url" id="v_mysql_url" value="<?= $_SESSION["DB_PMA_ALIAS"] ?>">
  347. </div>
  348. <div class="u-mb10">
  349. <label for="v_phpmyadmin_key" class="form-label">
  350. <?= _("phpMyAdmin Single Sign On") ?><span class="hint">(<a href="https://docs.hestiacp.com/admin_docs/database/phpmyadmin-sso.html" target="_blank"><?= _("More info") ?></a>)</span>
  351. </label>
  352. <select class="form-select" name="v_phpmyadmin_key" id="v_phpmyadmin_key" <?php if ($_SESSION['API'] != 'yes'){ echo "disabled"; }?>>
  353. <option value="no"><?= _("Disabled") ?></option>
  354. <option value='yes' <?php if($_SESSION['PHPMYADMIN_KEY'] != ''){ echo 'selected="selected"'; }; ?>><?= _("Enabled") ?></option>
  355. </select>
  356. </div>
  357. <?php } ?>
  358. <?php if ($v_mysql == 'yes') {
  359. $i = 0;
  360. foreach ($v_mysql_hosts as $value) {
  361. $i++;
  362. ?>
  363. <div class="u-pl30">
  364. <div class="u-mb10">
  365. <label for="v_mysql_host" class="form-label"><?= _("Host") . " #" . $i ?></label>
  366. <input type="text" class="form-control" name="v_mysql_host" id="v_mysql_host" value="<?= $value["HOST"] ?>" disabled>
  367. </div>
  368. <div class="u-mb10">
  369. <label for="v_mysql_password" class="form-label"><?= _("Password") ?></label>
  370. <div class="u-pos-relative">
  371. <input type="text" class="form-control js-password-input" name="v_mysql_password" id="v_mysql_password">
  372. </div>
  373. </div>
  374. <div class="u-mb10">
  375. <label for="v_mysql_max" class="form-label">
  376. <?= _("Maximum Number Of Databases") ?>
  377. </label>
  378. <input type="text" class="form-control" name="v_mysql_max" id="v_mysql_max" value="<?= $value["MAX_DB"] ?>" disabled>
  379. </div>
  380. <div class="u-mb10">
  381. <label for="v_mysql_current" class="form-label">
  382. <?= _("Current Number Of Databases") ?>
  383. </label>
  384. <input type="text" class="form-control" name="v_mysql_current" id="v_mysql_current" value="<?= $value["U_DB_BASES"] ?>" disabled>
  385. </div>
  386. </div>
  387. <?php }} ?>
  388. <!-- PostgreSQL Options-->
  389. <?php if ($v_pgsql == 'yes') { ?>
  390. <div class="u-mb10">
  391. <label for="v_pgsql" class="form-label">
  392. <?= _("PostgreSQL Support") ?> <a href="/edit/server/postgresql/" class="u-ml5"><i class="fas fa-pencil icon-orange"></i></a>
  393. </label>
  394. <select class="form-select" name="v_pgsql" id="v_pgsql" disabled>
  395. <option value="no"><?= _("No") ?></option>
  396. <option value='yes' <?php if($v_pgsql == 'yes') echo 'selected' ?>><?= _("Yes") ?></option>
  397. </select>
  398. </div>
  399. <div class="u-mb20">
  400. <label for="v_pgsql_url" class="form-label">
  401. <?= _("phpPgAdmin URL") ?>
  402. </label>
  403. <input type="text" class="form-control" name="v_pgsql_url" id="v_pgsql_url" value="<?= $_SESSION["DB_PGA_ALIAS"] ?>">
  404. </div>
  405. <?php } ?>
  406. <?php if ($v_pgsql == 'yes') {
  407. $i = 0;
  408. foreach ($v_pgsql_hosts as $value) {
  409. $i++;
  410. ?>
  411. <div class="u-pl30">
  412. <div class="u-mb10">
  413. <label for="v_pgsql_host" class="form-label"><?= _("Host") . " #" . $i ?></label>
  414. <input type="text" class="form-control" name="v_pgsql_host" id="v_pgsql_host" value="<?= $value["HOST"] ?>" disabled>
  415. </div>
  416. <div class="u-mb10">
  417. <label for="v_psql_max" class="form-label">
  418. <?= _("Maximum Number Of Databases") ?>
  419. </label>
  420. <input type="text" class="form-control" name="v_psql_max" id="v_psql_max" value="<?= $value["MAX_DB"] ?>" disabled>
  421. </div>
  422. <div class="u-mb10">
  423. <label for="v_pgsql_max" class="form-label">
  424. <?= _("Current Number Of Databases") ?>
  425. </label>
  426. <input type="text" class="form-control" name="v_pgsql_max" id="v_pgsql_max" value="<?= $value["U_DB_BASES"] ?>" disabled>
  427. </div>
  428. </div>
  429. <?php }} ?>
  430. </div>
  431. </details>
  432. <?php } ?>
  433. <!-- Backups tab -->
  434. <details class="collapse u-mb10">
  435. <summary class="collapse-header">
  436. <i class="fas fa-arrow-rotate-left u-mr15"></i><?= _("Backups") ?>
  437. </summary>
  438. <div class="collapse-content">
  439. <div class="u-mb10">
  440. <label for="v_backup" class="form-label"><?= _("Local backup") ?></label>
  441. <select class="form-select" name="v_backup" id="v_backup">
  442. <option value="no"><?= _("No") ?></option>
  443. <option value="yes" <?php if($v_backup == 'yes') echo 'selected' ?>><?= _("Yes") ?></option>
  444. </select>
  445. </div>
  446. <div class="u-mb10">
  447. <label for="v_backup_mode" class="form-label">
  448. <?= _("Compression") ?>
  449. <a target="_blank" class="u-ml5" href="http://docs.hestiacp.com/admin_docs/backups.html#what-is-the-difference-between-zstd-and-gzip">
  450. <i class="fas fa-circle-question"></i>
  451. </a>
  452. </label>
  453. <select class="form-select" name="v_backup_mode" id="v_backup_mode">
  454. <option value="gzip" <?php if($v_backup_mode != 'zstd') echo 'selected' ?>>gzip</option>
  455. <option value="zstd" <?php if($v_backup_mode == 'zstd') echo 'selected' ?>>zstd</option>
  456. </select>
  457. </div>
  458. <div class="u-mb10">
  459. <label for="v_backup_gzip" class="form-label">
  460. <?= _("Compression level") ?>
  461. <a target="_blank" class="u-ml5" href="http://docs.hestiacp.com/admin_docs/backups.html#what-is-the-optimal-compression-ratio">
  462. <i class="fas fa-circle-question"></i>
  463. </a>
  464. </label>
  465. <select class="form-select" name="v_backup_gzip" id="v_backup_gzip">
  466. <?php for ($level = 1; $level < 20; $level++) { ?>
  467. <option value='<?=$level;?>' <?php if($v_backup_gzip == $level) echo 'selected' ?>><?=$level;?><?php if($level > 9){ echo sprintf(' (%s)', _('zstd only')); } ?></option>
  468. <?php } ?>
  469. </select>
  470. </div>
  471. <div class="u-mb20">
  472. <label for="v_backup_dir" class="form-label">
  473. <?= _("Directory") ?>
  474. <a target="_blank" class="u-ml5" href="https://docs.hestiacp.com/admin_docs/backups.html#how-to-change-default-backup-folder">
  475. <i class="fas fa-circle-question"></i>
  476. </a>
  477. </label>
  478. <input type="text" class="form-control" name="v_backup_dir" id="v_backup_dir" value="<?= trim($v_backup_dir, "'") ?>" disabled="disabled">
  479. </div>
  480. <div class="form-check">
  481. <input x-model="remoteBackupEnabled" class="form-check-input" type="checkbox" name="v_backup_remote_adv" id="v_backup_remote_adv">
  482. <label for="v_backup_remote_adv">
  483. <?= _("Remote backup") ?>
  484. </label>
  485. </div>
  486. <div x-cloak x-show="remoteBackupEnabled" id="remote_backup" class="u-pl30 u-mt20">
  487. <div class="u-mb10">
  488. <label for="backup_type" class="form-label">
  489. <?= _("Protocol") ?>
  490. <a target="_blank" class="u-ml5" href="http://docs.hestiacp.com/admin_docs/backups.html#what-kind-of-protocols-are-currently-supported">
  491. <i class="fas fa-circle-question"></i>
  492. </a>
  493. </label>
  494. <select class="form-select" name="v_backup_type" id="backup_type">
  495. <option value='ftp'><?= _("ftp") ?></option>
  496. <option value='sftp' <?php if((!empty($v_backup_type)) && (trim($v_backup_type,"'") == 'sftp' )) echo 'selected="selected"'; ?>><?= _("sftp") ?></option>
  497. <option value="b2" <?php if((!empty($v_backup_type)) && (trim($v_backup_type,"'") == 'b2' )) echo 'selected="selected"'; ?>><?= _("Backblaze") ?>
  498. <option value="rclone" <?php if((!empty($v_backup_type)) && (trim($v_backup_type,"'") == 'rclone' )) echo 'selected="selected"'; ?>><?= _("Rclone") ?>
  499. </select>
  500. </div>
  501. <div id="backup_sftp" style="display: <?php if ((!empty($v_backup_type)) && !in_array(trim($v_backup_type, "'"),array('ftp','sftp'))){ echo 'none';} else {echo 'block';} ?>">
  502. <div class="u-mb10">
  503. <label for="v_backup_host" class="form-label"><?= _("Host") ?></label>
  504. <input type="text" class="form-control" name="v_backup_host" id="v_backup_host" value="<?=trim($v_backup_host, "'")?>">
  505. </div>
  506. <div class="u-mb20">
  507. <label for="v_backup_port" class="form-label"><?= _("Port") ?></label>
  508. <input type="text" class="form-control" name="v_backup_port" id="v_backup_port" value="<?=trim($v_backup_port, "'")?>">
  509. </div>
  510. <div class="u-mb10">
  511. <label for="v_backup_username" class="form-label"><?= _("Username") ?></label>
  512. <input type="text" class="form-control" name="v_backup_username" id="v_backup_username" value="<?=trim($v_backup_username, "'")?>">
  513. </div>
  514. <div class="u-mb20">
  515. <label for="v_backup_password" class="form-label"><?= _("Password") ?></label>
  516. <div class="u-pos-relative">
  517. <input type="text" class="form-control js-password-input" name="v_backup_password" id="v_backup_password" value="<?=trim($v_backup_password, "'")?>">
  518. </div>
  519. </div>
  520. <div class="u-mb10">
  521. <label for="v_backup_bpath" class="form-label"><?= _("Directory") ?></label>
  522. <input type="text" class="form-control" name="v_backup_bpath" id="v_backup_bpath" value="<?=trim($v_backup_bpath, "'")?>">
  523. </div>
  524. </div>
  525. <div id="backup_bucket" style="display: <?php if ((empty($v_backup_type)) || !in_array(trim($v_backup_type, "'"),array('b2'))){ echo 'none';} else {echo 'block';} ?>">
  526. <div class="u-mb10">
  527. <label for="v_backup_bucket" class="form-label"><?= _("Bucket") ?></label>
  528. <input type="text" class="form-control" name="v_backup_bucket" id="v_backup_bucket" value="<?=trim($v_backup_bucket, "'")?>">
  529. </div>
  530. <div class="u-mb10">
  531. <label for="v_backup_application_id" class="form-label"><?= _("Key ID") ?></label>
  532. <input type="text" class="form-control" name="v_backup_application_id" id="v_backup_application_id" value="<?=trim($v_backup_application_id, "'")?>">
  533. </div>
  534. <div class="u-mb10">
  535. <label for="v_backup_application_key" class="form-label"><?= _("Application Key") ?></label>
  536. <input type="text" class="form-control" name="v_backup_application_key" id="v_backup_application_key" value="<?=trim($v_backup_application_key, "'")?>">
  537. </div>
  538. </div>
  539. <div id="backup_rclone" style="display: <?php if ((empty($v_backup_type)) || !in_array(trim($v_backup_type, "'"),array('rclone'))){ echo 'none';} else {echo 'block';} ?>">
  540. <div class="u-mb10">
  541. <label for="v_rclone_host" class="form-label"><?= _("Host") ?></label>
  542. <input type="text" class="form-control" name="v_rclone_host" id="v_rclone_host" value="<?=trim($v_rclone_host, "'")?>">
  543. </div>
  544. <div class="u-mb10">
  545. <label for="v_rclone_path" class="form-label"><?= _("Directory") ?></label>
  546. <input type="text" class="form-control" name="v_rclone_path" id="v_rclone_path" value="<?=trim($v_rclone_path, "'")?>">
  547. </div>
  548. </div>
  549. </div>
  550. </div>
  551. </details>
  552. <!-- SSL tab -->
  553. <details class="collapse u-mb10">
  554. <summary class="collapse-header">
  555. <i class="fas fa-lock u-mr15"></i><?= _("SSL") ?>
  556. </summary>
  557. <div class="collapse-content">
  558. <div class="u-mb20">
  559. <label for="v_ssl_crt" class="form-label">
  560. <?= _("SSL Certificate") ?>
  561. <span id="generate-csr"> / <a class="form-link" target="_blank" href="/generate/ssl/?domain=<?= htmlentities(trim($v_hostname, '"')) ?>"><?= _("Generate CSR") ?></a></span>
  562. </label>
  563. <textarea class="form-control u-min-height100 u-console" name="v_ssl_crt" id="v_ssl_crt"><?= htmlentities(trim($v_ssl_crt, "'")) ?></textarea>
  564. </div>
  565. <div class="u-mb20">
  566. <label for="v_ssl_key" class="form-label"><?= _("SSL Key") ?></label>
  567. <textarea class="form-control u-min-height100 u-console" name="v_ssl_key" id="v_ssl_key"><?= htmlentities(trim($v_ssl_key, "'")) ?></textarea>
  568. </div>
  569. <ul class="values-list">
  570. <li class="values-list-item">
  571. <span class="values-list-label"><?= _("SUBJECT") ?></span>
  572. <span class="values-list-value"><?= $v_ssl_subject ?></span>
  573. </li>
  574. <?php if ($v_ssl_aliases) { ?>
  575. <li class="values-list-item">
  576. <span class="values-list-label"><?= _("Aliases") ?></span>
  577. <span class="values-list-value"><?= $v_ssl_aliases ?></span>
  578. </li>
  579. <?php } ?>
  580. <li class="values-list-item">
  581. <span class="values-list-label"><?= _("NOT_BEFORE") ?></span>
  582. <span class="values-list-value"><?= $v_ssl_not_before ?></span>
  583. </li>
  584. <li class="values-list-item">
  585. <span class="values-list-label"><?= _("NOT_AFTER") ?></span>
  586. <span class="values-list-value"><?= $v_ssl_not_after ?></span>
  587. </li>
  588. <li class="values-list-item">
  589. <span class="values-list-label"><?= _("SIGNATURE") ?></span>
  590. <span class="values-list-value"><?= $v_ssl_signature ?></span>
  591. </li>
  592. <li class="values-list-item">
  593. <span class="values-list-label"><?= _("PUB_KEY") ?></span>
  594. <span class="values-list-value"><?= $v_ssl_pub_key ?></span>
  595. </li>
  596. <li class="values-list-item">
  597. <span class="values-list-label"><?= _("ISSUER") ?></span>
  598. <span class="values-list-value"><?= $v_ssl_issuer ?></span>
  599. </li>
  600. </ul>
  601. </div>
  602. </details>
  603. <!-- Security tab -->
  604. <details
  605. x-data="{
  606. showSystemOptions: false,
  607. showProtectionOptions: false,
  608. showPolicyOptions: false,
  609. }"
  610. class="collapse u-mb10"
  611. >
  612. <summary class="collapse-header">
  613. <i class="fas fa-key u-mr15"></i><?= _("Security") ?>
  614. </summary>
  615. <div class="collapse-content">
  616. <h2 x-on:click="showSystemOptions = !showSystemOptions" class="section-title">
  617. <?= _("System") ?>
  618. <i
  619. x-bind:class="showSystemOptions ? 'fa-square-minus' : 'fa-square-plus'"
  620. class="fas icon-dim icon-maroon js-section-toggle-icon"
  621. ></i>
  622. </h2>
  623. <div x-cloak x-show="showSystemOptions" id="security-system-table">
  624. <h3 class="u-mt20 u-mb10">
  625. <?= _("API") ?>
  626. </h3>
  627. <div class="u-mb10">
  628. <label for="api-system" class="form-label"><?= _("Enable API access") ?></label>
  629. <select class="form-select" name="v_api_system" id="api-system">
  630. <option value='0' <?php if(empty($_SESSION['API_SYSTEM']) || $_SESSION['API_SYSTEM'] == '0') echo 'selected' ?>><?= _("Disabled") ?></option>
  631. <option value='1' <?php if($_SESSION['API_SYSTEM'] == '1') echo 'selected' ?>><?= _("Enabled for admin") ?></option>
  632. <option value='2' <?php if($_SESSION['API_SYSTEM'] == '2') echo 'selected' ?>><?= _("Enabled for all users") ?></option>
  633. </select>
  634. </div>
  635. <div class="u-mb10">
  636. <label for="api" class="form-label"><?= _("Enable legacy API access") ?></label>
  637. <select class="form-select" name="v_api" id="api">
  638. <option value="yes"><?= _("Yes") ?></option>
  639. <option value="no" <?php if($_SESSION['API'] == 'no') echo 'selected' ?>><?= _("No") ?></option>
  640. </select>
  641. </div>
  642. <div id="security_ip" style="<?php if ($_SESSION['API'] == "no" && $_SESSION['API_SYSTEM'] == '0') echo 'display:none;';?>">
  643. <div class="u-mb10">
  644. <label for="v_api_allowed_ip" class="form-label u-side-by-side">
  645. <?= _("Allowed IP addresses for API") ?> <span class="optional">1 IP address per line</span>
  646. </label>
  647. <textarea class="form-control" name="v_api_allowed_ip" id="v_api_allowed_ip"><?php
  648. foreach(explode(',',$_SESSION['API_ALLOWED_IP']) as $ip ){
  649. echo trim($ip)."\n";
  650. }
  651. ?></textarea>
  652. </div>
  653. </div>
  654. <h3 class="u-mt20 u-mb10">
  655. <?= _("Login") ?>
  656. </h3>
  657. <div class="u-mb10">
  658. <label for="v_login_style" class="form-label"><?= _("Login screen style") ?></label>
  659. <select class="form-select" name="v_login_style" id="v_login_style">
  660. <option value="default"><?= _("Default") ?></option>
  661. <option value="old" <?php if($_SESSION['LOGIN_STYLE'] == 'old') echo 'selected' ?>><?= _("Old Style") ?></option>
  662. </select>
  663. </div>
  664. <div class="u-mb10">
  665. <label for="v_policy_system_password_reset" class="form-label"><?= _("Allow users to reset their passwords") ?></label>
  666. <select class="form-select" name="v_policy_system_password_reset" id="v_policy_system_password_reset">
  667. <option value="yes"><?= _("Yes") ?></option>
  668. <option value="no" <?php if($_SESSION['POLICY_SYSTEM_PASSWORD_RESET'] == 'no') echo 'selected' ?>><?= _("No") ?></option>
  669. </select>
  670. </div>
  671. <div class="u-mb20">
  672. <label for="v_inactive_session_timeout" class="form-label">
  673. <?= _("Inactive session timeout") ?> (<?= _("Minutes") ?>)
  674. </label>
  675. <input type="text" class="form-control" name="v_inactive_session_timeout" id="v_inactive_session_timeout" value="<?=trim($_SESSION['INACTIVE_SESSION_TIMEOUT'], "'")?>">
  676. </div>
  677. <div class="u-mb10">
  678. <label for="v_policy_csrf_strictness" class="form-label"><?= _("Prevent CSRF") ?></label>
  679. <select class="form-select" name="v_policy_csrf_strictness" id="v_policy_csrf_strictness">
  680. <option value="0" <?php if($_SESSION['POLICY_CSRF_STRICTNESS'] == '0') echo 'selected' ?>><?= _("Disabled") ?></option>
  681. <option value="1" <?php if($_SESSION['POLICY_CSRF_STRICTNESS'] == '1') echo 'selected' ?>><?= _("Enabled") ?></option>
  682. <option value="2" <?php if($_SESSION['POLICY_CSRF_STRICTNESS'] == '2') echo 'selected' ?>><?= _("Strict") ?></option>
  683. </select>
  684. </div>
  685. </div>
  686. <?php if (($_SESSION['userContext'] === "admin") && ($_SESSION['user'] === 'admin')) {?>
  687. <h2 x-on:click="showProtectionOptions = !showProtectionOptions" class="section-title">
  688. <?= _("System Protection") ?>
  689. <i
  690. x-bind:class="showProtectionOptions ? 'fa-square-minus' : 'fa-square-plus'"
  691. class="fas icon-dim icon-maroon js-section-toggle-icon"
  692. ></i>
  693. </h2>
  694. <div x-cloak x-show="showProtectionOptions" id="security-sysadminprotect-table">
  695. <h3 class="u-mt20 u-mb10">
  696. <?= _("System Administrator account") ?>
  697. </h3>
  698. <div class="u-mb10">
  699. <label for="v_policy_system_protected_admin" class="form-label"><?= _("Restrict access to read-only for other administrators") ?></label>
  700. <select class="form-select" name="v_policy_system_protected_admin" id="v_policy_system_protected_admin">
  701. <option value="yes"><?= _("Yes") ?></option>
  702. <option value="no" <?php if($_SESSION['POLICY_SYSTEM_PROTECTED_ADMIN'] !== 'yes') echo 'selected' ?>><?= _("No") ?></option>
  703. </select>
  704. </div>
  705. <div class="u-mb10">
  706. <label for="v_policy_system_hide_admin" class="form-label"><?= _("Hide account from other administrators") ?></label>
  707. <select class="form-select" name="v_policy_system_hide_admin" id="v_policy_system_hide_admin">
  708. <option value="yes"><?= _("Yes") ?></option>
  709. <option value="no" <?php if($_SESSION['POLICY_SYSTEM_HIDE_ADMIN'] !== 'yes') echo 'selected' ?>><?= _("No") ?></option>
  710. </select>
  711. </div>
  712. <div class="u-mb10">
  713. <label for="v_policy_system_hide_services" class="form-label"><?= _("Do not allow other administrators to access Server Settings") ?></label>
  714. <select class="form-select" name="v_policy_system_hide_services" id="v_policy_system_hide_services">
  715. <option value="yes"><?= _("Yes") ?></option>
  716. <option value="no" <?php if($_SESSION['POLICY_SYSTEM_HIDE_SERVICES'] !== 'yes') echo 'selected' ?>><?= _("No") ?></option>
  717. </select>
  718. </div>
  719. </div>
  720. <?php } ?>
  721. <h2 x-on:click="showPolicyOptions = !showPolicyOptions" class="section-title">
  722. <?= _("Policies") ?>
  723. <i
  724. x-bind:class="showPolicyOptions ? 'fa-square-minus' : 'fa-square-plus'"
  725. class="fas icon-dim icon-maroon js-section-toggle-icon"
  726. ></i>
  727. </h2>
  728. <div x-cloak x-show="showPolicyOptions" id="security-policies-table">
  729. <h3 class="u-mt20 u-mb10">
  730. <?= _("Users") ?>
  731. </h3>
  732. <?php if ($_SESSION["POLICY_SYSTEM_ENABLE_BACON"] === "true") { ?>
  733. <div class="u-mb10">
  734. <label for="v_policy_user_view_suspended" class="form-label">
  735. <?= _("Allow suspended users to log in with read-only access") ?> <span class="hint">(<?= _("Preview") ?>)</span>
  736. </label>
  737. <select class="form-select" name="v_policy_user_view_suspended" id="v_policy_user_view_suspended">
  738. <option value="yes" <?php if($_SESSION['POLICY_USER_VIEW_SUSPENDED'] !== 'no') echo 'selected' ?>><?= _("Yes") ?></option>
  739. <option value="no" <?php if($_SESSION['POLICY_USER_VIEW_SUSPENDED'] == 'no') echo 'selected' ?>><?= _("No") ?></option>
  740. </select>
  741. </div>
  742. <?php } ?>
  743. <div class="u-mb10">
  744. <label for="v_policy_user_edit_details" class="form-label"><?= _("Allow users to edit their account details") ?></label>
  745. <select class="form-select" name="v_policy_user_edit_details" id="v_policy_user_edit_details">
  746. <option value="yes" <?php if($_SESSION['POLICY_USER_EDIT_DETAILS'] !== 'no') echo 'selected' ?>><?= _("Yes") ?></option>
  747. <option value="no" <?php if($_SESSION['POLICY_USER_EDIT_DETAILS'] == 'no') echo 'selected' ?>><?= _("No") ?></option>
  748. </select>
  749. </div>
  750. <div class="u-mb10">
  751. <label for="v_policy_user_edit_web_templates" class="form-label"><?= _("Allow users to change templates when editing web domains") ?></label>
  752. <select class="form-select" name="v_policy_user_edit_web_templates" id="v_policy_user_edit_web_templates">
  753. <option value="yes" <?php if($_SESSION['POLICY_USER_EDIT_WEB_TEMPLATES'] !== 'no') echo 'selected' ?>><?= _("Yes") ?></option>
  754. <option value="no" <?php if($_SESSION['POLICY_USER_EDIT_WEB_TEMPLATES'] == 'no') echo 'selected' ?>><?= _("No") ?></option>
  755. </select>
  756. </div>
  757. <div class="u-mb10">
  758. <label for="v_policy_user_edit_dns_templates" class="form-label"><?= _("Allow users to change templates when editing DNS zones") ?></label>
  759. <select class="form-select" name="v_policy_user_edit_dns_templates" id="v_policy_user_edit_dns_templates">
  760. <option value="yes" <?php if($_SESSION['POLICY_USER_EDIT_DNS_TEMPLATES'] !== 'no') echo 'selected' ?>><?= _("Yes") ?></option>
  761. <option value="no" <?php if($_SESSION['POLICY_USER_EDIT_DNS_TEMPLATES'] == 'no') echo 'selected' ?>><?= _("No") ?></option>
  762. </select>
  763. </div>
  764. <div class="u-mb10">
  765. <label for="v_policy_user_view_logs" class="form-label"><?= _("Allow users to view action and login history logs") ?></label>
  766. <select class="form-select" name="v_policy_user_view_logs" id="v_policy_user_view_logs">
  767. <option value="yes" <?php if($_SESSION['POLICY_USER_VIEW_LOGS'] !== 'no') echo 'selected' ?>><?= _("Yes") ?></option>
  768. <option value="no" <?php if($_SESSION['POLICY_USER_VIEW_LOGS'] == 'no') echo 'selected' ?>><?= _("No") ?></option>
  769. </select>
  770. </div>
  771. <div class="u-mb10">
  772. <label for="v_policy_user_delete_logs" class="form-label"><?= _("Allow users to delete log history") ?></label>
  773. <select class="form-select" name="v_policy_user_delete_logs" id="v_policy_user_delete_logs">
  774. <option value="yes" <?php if($_SESSION['POLICY_USER_DELETE_LOGS'] !== 'no') echo 'selected' ?>><?= _("Yes") ?></option>
  775. <option value="no" <?php if($_SESSION['POLICY_USER_DELETE_LOGS'] == 'no') echo 'selected' ?>><?= _("No") ?></option>
  776. </select>
  777. </div>
  778. <h3 class="u-mt20 u-mb10">
  779. <?= _("Domains") ?>
  780. </h3>
  781. <div class="u-mb10">
  782. <label for="v_enforce_subdomain_ownership" class="form-label"><?= _("Enforce subdomain ownership") ?></label>
  783. <select class="form-select" name="v_enforce_subdomain_ownership" id="v_enforce_subdomain_ownership">
  784. <option value="yes"><?= _("Yes") ?></option>
  785. <option value="no" <?php if($_SESSION['ENFORCE_SUBDOMAIN_OWNERSHIP'] == 'no') echo 'selected' ?>><?= _("No") ?></option>
  786. </select>
  787. </div>
  788. </div>
  789. </div>
  790. </details>
  791. <!-- Plugins tab -->
  792. <details class="collapse u-mb10">
  793. <summary class="collapse-header">
  794. <i class="fas fa-puzzle-piece u-mr15"></i><?= _("Hestia Control Panel Plugins") ?>
  795. </summary>
  796. <div class="collapse-content">
  797. <div class="u-mb10">
  798. <label for="v_plugin_app_installer" class="form-label"><?= _("Quick App Installer") ?></label>
  799. <select class="form-select" name="v_plugin_app_installer" id="v_plugin_app_installer">
  800. <option value="false"><?= _("No") ?></option>
  801. <option value="true" <?php if($_SESSION['PLUGIN_APP_INSTALLER'] == 'true') echo 'selected' ?>><?= _("Yes") ?></option>
  802. </select>
  803. </div>
  804. <div class="u-mb10">
  805. <label for="v_filemanager" class="form-label"><?= _("Filemanager") ?></label>
  806. <select class="form-select" name="v_filemanager" id="v_filemanager">
  807. <option value="false"><?= _("No") ?></option>
  808. <option value="true" <?php if($_SESSION['FILE_MANAGER'] == 'true') echo 'selected' ?>><?= _("Yes") ?></option>
  809. </select>
  810. </div>
  811. <div class="u-mb10">
  812. <label for="v_quota" class="form-label"><?= _("FileSystem Disk Quota") ?></label>
  813. <select class="form-select" name="v_quota" id="v_quota">
  814. <option value="no"><?= _("No") ?></option>
  815. <option value="yes" <?php if($_SESSION['DISK_QUOTA'] == 'yes') echo 'selected' ?>><?= _("Yes") ?></option>
  816. </select>
  817. </div>
  818. <div class="u-mb10">
  819. <label for="v_firewall" class="form-label"><?= _("Firewall") ?></label>
  820. <select class="form-select" name="v_firewall" id="v_firewall">
  821. <option value="no"><?= _("No") ?></option>
  822. <option value="yes" <?php if($_SESSION['FIREWALL_SYSTEM'] == 'iptables') echo 'selected' ?>><?= _("Yes") ?></option>
  823. </select>
  824. </div>
  825. </div>
  826. </details>
  827. </div>
  828. </form>
  829. </div>