Просмотр исходного кода

Improvements to upgrade functions

* Improved backup functionality to back up service configuration files and default template sets
* Use src/deb/hestia/upgrade.conf to control common items for a build.
* Add UPGRADE_SEND_EMAIL and UPGRADE_SEND_EMAIL_LOG to hestia.conf and UI - control update notification behaviors
* Add verbose logging for non-release builds.
* Add warnings for non-release builds to installer output.
* Additional notifications for different release types to gather feedback.
* Improve handling of upgrade scripts and version detection.
Kristan Kenney 5 лет назад
Родитель
Сommit
2e35514edb
59 измененных файлов с 973 добавлено и 384 удалено
  1. 9 1
      CHANGELOG.md
  2. 37 30
      bin/v-list-sys-config
  3. 19 0
      func/main.sh
  4. 568 227
      func/upgrade.sh
  5. 47 0
      install/upgrade/upgrade.conf
  6. 0 0
      install/upgrade/versions/0.9.8-29.sh
  7. 0 13
      install/upgrade/versions/1.0.1.sh
  8. 0 0
      install/upgrade/versions/1.0.2.sh
  9. 0 0
      install/upgrade/versions/1.0.3.sh
  10. 1 1
      install/upgrade/versions/1.0.4.sh
  11. 0 0
      install/upgrade/versions/1.0.5.sh
  12. 0 0
      install/upgrade/versions/1.0.6.sh
  13. 0 8
      install/upgrade/versions/1.00.0-190618.sh
  14. 0 0
      install/upgrade/versions/1.1.0.sh
  15. 0 0
      install/upgrade/versions/1.1.1.sh
  16. 0 10
      install/upgrade/versions/1.2.0.sh
  17. 9 0
      install/upgrade/versions/1.2.1.sh
  18. 0 0
      install/upgrade/versions/1.2.2.sh
  19. 0 22
      install/upgrade/versions/previous/1.0.4.sh
  20. 0 17
      install/upgrade/versions/previous/1.2.1.sh
  21. 48 14
      src/deb/hestia/postinst
  22. 22 0
      web/edit/server/index.php
  23. 8 4
      web/inc/i18n/ar.php
  24. 8 4
      web/inc/i18n/az.php
  25. 8 4
      web/inc/i18n/bg.php
  26. 9 4
      web/inc/i18n/bs.php
  27. 11 4
      web/inc/i18n/cn.php
  28. 4 0
      web/inc/i18n/cz.php
  29. 5 0
      web/inc/i18n/da.php
  30. 8 4
      web/inc/i18n/de.php
  31. 8 4
      web/inc/i18n/el.php
  32. 4 0
      web/inc/i18n/en.php
  33. 6 0
      web/inc/i18n/es.php
  34. 5 0
      web/inc/i18n/fa.php
  35. 4 0
      web/inc/i18n/fi.php
  36. 6 2
      web/inc/i18n/fr.php
  37. 4 0
      web/inc/i18n/hr.php
  38. 4 0
      web/inc/i18n/hu.php
  39. 4 0
      web/inc/i18n/id.php
  40. 8 4
      web/inc/i18n/it.php
  41. 4 0
      web/inc/i18n/ja.php
  42. 4 0
      web/inc/i18n/ka.php
  43. 4 0
      web/inc/i18n/ko.php
  44. 4 0
      web/inc/i18n/nl.php
  45. 4 0
      web/inc/i18n/no.php
  46. 4 0
      web/inc/i18n/pl.php
  47. 4 0
      web/inc/i18n/pt-BR.php
  48. 4 0
      web/inc/i18n/pt.php
  49. 4 0
      web/inc/i18n/ro.php
  50. 8 4
      web/inc/i18n/ru.php
  51. 4 0
      web/inc/i18n/se.php
  52. 4 0
      web/inc/i18n/sr.php
  53. 4 0
      web/inc/i18n/th.php
  54. 4 0
      web/inc/i18n/tr.php
  55. 4 0
      web/inc/i18n/tw.php
  56. 4 0
      web/inc/i18n/ua.php
  57. 4 0
      web/inc/i18n/ur.php
  58. 4 0
      web/inc/i18n/vi.php
  59. 23 3
      web/templates/admin/edit_server.html

+ 9 - 1
CHANGELOG.md

@@ -3,7 +3,15 @@ All notable changes to this project will be documented in this file.
 
 ## [CURRENT] - Development
 ### Features
-- Use stronger ciphers and Disable TLS v1.1 for vsftpd.
+- The software update procedure will now perform a system health check prior to installation and repair missing environment variables.
+- Installs from branches/versions other than those from `release` will provide verbose output and logging to aid in debugging and development.
+- Administrators now have control over software update notifications through the following settings in `$HESTIA/conf/hestia.conf`:
+    - `UPGRADE_SEND_EMAIL` = Sends an email notification to admin email address
+    - `UPGRADE_SEND_EMAIL_LOG` = Sends installation log output to admin email address
+
+### Bugfixes
+- Fixed an issue where template files were not correctly backed up during upgrades.
+- Improved version detection during upgrades.
 
 ### Bugfixes
 - Create mailhelo.conf if it doesnt exist to prevent a error message during grep.

+ 37 - 30
bin/v-list-sys-config

@@ -12,6 +12,7 @@
 # Argument definition
 format=${1-shell}
 
+source $HESTIA/func/main.sh
 source $HESTIA/conf/hestia.conf
 
 # JSON list function
@@ -45,6 +46,8 @@ json_list() {
         "REPOSITORY": "'$REPOSITORY'",
         "VERSION": "'$VERSION'",
         "RELEASE_BRANCH": "'$RELEASE_BRANCH'",
+        "UPGRADE_SEND_EMAIL": "'$UPGRADE_SEND_EMAIL'",
+        "UPGRADE_SEND_EMAIL_LOG": "'$UPGRADE_SEND_EMAIL_LOG'",
         "DEMO_MODE": "'$DEMO_MODE'",
         "THEME": "'$THEME'",
         "LANGUAGE": "'$LANGUAGE'",
@@ -61,24 +64,24 @@ json_list() {
 # Shell list
 shell_list() {
     if [ ! -z "$WEB_SYSTEM" ]; then
-        echo "WEB Server:       $WEB_SYSTEM:$WEB_PORT ($WEB_RGROUPS)"
-        echo "SSL Support:      $WEB_SSL:$WEB_SSL_PORT"
+        echo "Web Server:                       $WEB_SYSTEM:$WEB_PORT ($WEB_RGROUPS)"
+        echo "SSL Support:                      $WEB_SSL:$WEB_SSL_PORT"
     fi
     if [ ! -z "$WEB_BACKEND" ]; then
-        echo "WEB Backend:      $WEB_BACKEND"
+        echo "Web Backend:                      $WEB_BACKEND"
     fi
     if [ ! -z "$PROXY_SYSTEM" ]; then
-        echo "Proxy Server:     $PROXY_SYSTEM:$PROXY_PORT"
-        echo "Proxy SSL:        $PROXY_SYSTEM:$PROXY_SSL_PORT"
+        echo "Proxy Server:                     $PROXY_SYSTEM:$PROXY_PORT"
+        echo "Proxy SSL:                        $PROXY_SYSTEM:$PROXY_SSL_PORT"
     fi
     if [ ! -z "$STATS_SYSTEM" ]; then
-        echo "Web Stats:        ${STATS_SYSTEM//,/, }"
+        echo "Statistics Engine:                ${STATS_SYSTEM//,/, }"
     fi
     if [ ! -z "$FTP_SYSTEM" ]; then
-        echo "FTP Server:       $FTP_SYSTEM"
+        echo "FTP Server:                       $FTP_SYSTEM"
     fi
     if [ ! -z "$MAIL_SYSTEM" ]; then
-        echo -n "Mail Server:      $MAIL_SYSTEM"
+        echo -n "Mail Server:                      $MAIL_SYSTEM"
         if [ ! -z "$IMAP_SYSTEM" ]; then
             echo -n " + $IMAP_SYSTEM"
         fi
@@ -90,56 +93,56 @@ shell_list() {
         fi
         echo
         if [ ! -z "$WEBMAIL_ALIAS" ]; then
-            echo "Webmail alias:    $WEBMAIL_ALIAS"
+            echo "Webmail alias:                    $WEBMAIL_ALIAS"
         fi
     fi
     if [ ! -z "$DB_SYSTEM" ]; then
-        echo "Database:         ${DB_SYSTEM//,/, }"
+        echo "Database:                         ${DB_SYSTEM//,/, }"
         if [ ! -z "$DB_PMA_ALIAS" ]; then
-            echo "PMA ALIAS:          $DB_PMA_ALIAS"
+            echo "phpMyAdmin Alias:                 $DB_PMA_ALIAS"
         fi
         if [ ! -z "$DB_PGA_ALIAS" ]; then
-            echo "PGA ALIAS:          $DB_PGA_ALIAS"
+            echo "phpPgAdmin Alias:                 $DB_PGA_ALIAS"
         fi
     fi
     if [ ! -z "$DNS_SYSTEM" ]; then
-        echo -n "DNS server:       $DNS_SYSTEM"
+        echo -n "DNS Server:                       $DNS_SYSTEM"
         if [ ! -z "$DNS_CLUSTER" ]; then
             echo -n " (cluster)"
         fi
         echo
     fi
     if [ ! -z "$CRON_SYSTEM" ]; then
-        echo "CRON:             $CRON_SYSTEM"
+        echo "CRON daemon:                      $CRON_SYSTEM"
     fi
     if [ ! -z "$FIREWALL_SYSTEM" ]; then
-        echo -n "Firewall:         $FIREWALL_SYSTEM"
+        echo -n "Firewall:                         $FIREWALL_SYSTEM"
         if [ ! -z "$FIREWALL_EXTENSION" ]; then
             echo -n "+ $FIREWALL_EXTENSION"
         fi
         echo
     fi
     if [ ! -z "$BACKUP_SYSTEM" ]; then
-        echo "Backups:          ${BACKUP_SYSTEM//,/, }"
-        if [ ! -z "$BACKUP" ]; then
-            echo "Backup Dir:         $BACKUP"
-        fi
+        echo "Backups:                          ${BACKUP_SYSTEM//,/, }"
+        echo "Backup Directory:                 $BACKUP"
     fi
     if [ ! -z "$DISK_QUOTA" ]; then
-        echo "Disk Quota:       $DISK_QUOTA"
+        echo "Disk Quota enabled:               $DISK_QUOTA"
     fi
     if [ ! -z "$LANGUAGE" ] && [ "$LANGUAGE" != 'en' ]; then
-        echo "Language:         $LANGUAGE"
+        echo "System Language:                  $LANGUAGE"
     fi
-    echo "Version:          $VERSION"
+    echo "Version:                          $VERSION"
     if [ ! -z "$DEMO_MODE" ]; then
-        echo "Demo Mode:        $DEMO_MODE"
+        echo "Demo Mode:                        $DEMO_MODE"
     fi
     if [ ! -z "$FILE_MANAGER" ]; then
-        echo "File Manager:        $FILE_MANAGER"
+        echo "File Manager enabled:             $FILE_MANAGER"
     fi
-    echo "Release Branch:   $RELEASE_BRANCH"
-    echo "Theme:            $THEME"
+    echo "Release Branch:                   $RELEASE_BRANCH"
+    echo "Theme:                            $THEME"
+    echo "Updates: Notify by email:         $UPGRADE_SEND_EMAIL"
+    echo "Updates: Email install log:       $UPGRADE_SEND_EMAIL_LOG"
 }
 
 # PLAIN list function
@@ -150,8 +153,9 @@ plain_list() {
     echo -ne "$ANTIVIRUS_SYSTEM\t$ANTISPAM_SYSTEM\t$DB_SYSTEM\t"
     echo -ne "$DNS_SYSTEM\t$DNS_CLUSTER\t$STATS_SYSTEM\t$BACKUP_SYSTEM\t"
     echo -ne "$CRON_SYSTEM\t$DISK_QUOTA\t$FIREWALL_SYSTEM\t$FIREWALL_EXTENSION\t"
-    echo -ne "$FILE_MANAGER\t$REPOSITORY\t$VERSION\t$DEMO_MODE\t$RELEASE_BRANCH\t$THEME\t"
-    echo -e "$LANGUAGE\t$BACKUP_GZIP\t$BACKUP\t$WEBMAIL_ALIAS\t$DB_PMA_URL\t$DB_PGA_URL"
+    echo -ne "$FILE_MANAGER\t$REPOSITORY\t$VERSION\t$DEMO_MODE\t$RELEASE_BRANCH\t"
+    echo -ne "$UPGRADE_SEND_EMAIL\t$UPGRADE_SEND_EMAIL_LOG\t$THEME\t$LANGUAGE\t$BACKUP_GZIP\t"
+    echo -e  "$BACKUP\t$WEBMAIL_ALIAS\t$DB_PMA_URL\t$DB_PGA_URL"
 }
 
 
@@ -164,7 +168,9 @@ csv_list() {
     echo -n "'DNS_SYSTEM','DNS_CLUSTER','STATS_SYSTEM','BACKUP_SYSTEM',"
     echo -n "'CRON_SYSTEM','DISK_QUOTA','FIREWALL_SYSTEM',"
     echo -n "'FIREWALL_EXTENSION','FILE_MANAGER','REPOSITORY',"
-    echo -n "'VERSION','LANGUAGE','BACKUP_GZIP','BACKUP','WEBMAIL_ALIAS',"
+    echo -n "'VERSION','DEMO_MODE','RELEASE_BRANCH',"
+    echo -n "'UPGRADE_SEND_EMAIL','UPGRADE_SEND_EMAIL_LOG',"
+    echo -n "'THEME', 'LANGUAGE','BACKUP_GZIP','BACKUP','WEBMAIL_ALIAS',"
     echo -n "'DB_PMA_ALIAS','DB_PGA_ALIAS'"
     echo
     echo -n "'$WEB_SYSTEM','$WEB_RGROUPS','$WEB_PORT','$WEB_SSL',"
@@ -173,7 +179,8 @@ csv_list() {
     echo -n "'$ANTIVIRUS_SYSTEM','$ANTISPAM_SYSTEM','$DB_SYSTEM','$DNS_SYSTEM',"
     echo -n "'$DNS_CLUSTER','$STATS_SYSTEM','$BACKUP_SYSTEM','$CRON_SYSTEM',"
     echo -n "'$DISK_QUOTA','$FIREWALL_SYSTEM','$FIREWALL_EXTENSION','$FILE_MANAGER',"
-    echo -n "'$REPOSITORY', '$VERSION','$DEMO_MODE','$RELEASE_BRANCH','$THEME','$LANGUAGE',"
+    echo -n "'$REPOSITORY', '$VERSION','$DEMO_MODE','$RELEASE_BRANCH',"
+    echo -n "'$UPGRADE_SEND_EMAIL','$UPGRADE_SEND_EMAIL_LOG','$THEME','$LANGUAGE',"
     echo -n "'$BACKUP_GZIP','$BACKUP','$WEBMAIL_ALIAS','$DB_PMA_URL','$DB_PGA_URL'"
     echo
 }

+ 19 - 0
func/main.sh

@@ -43,6 +43,25 @@ E_RRD=18
 E_UPDATE=19
 E_RESTART=20
 
+# Detect operating system
+detect_os() {
+    if [ -e "/etc/os-release" ]; then
+        get_os_type=$(grep "^ID=" /etc/os-release | cut -f 2 -d '=')
+        if [ "$get_os_type" = "ubuntu" ]; then
+            if [ -e '/usr/bin/lsb_release' ]; then
+                OS_VERSION="$(lsb_release -s -r)"
+                OS_TYPE='Ubuntu'            
+            fi
+        elif [ "$get_os_type" = "debian" ]; then
+            OS_TYPE='Debian'
+            OS_VERSION=$(cat /etc/debian_version|grep -o "[0-9]\{1,2\}"|head -n1)
+        fi
+    else
+        OS_TYPE="Unsupported OS"
+        OS_VERSION="Unknown"
+    fi
+}
+
 # Generate time stamp
 new_timestamp() {
     time_n_date=$(date +'%T %F')

+ 568 - 227
func/upgrade.sh

@@ -6,64 +6,319 @@
 #######                Functions & Initialization             #######
 #####################################################################
 
+is_debug_build() {
+    if [[ "$new_version" =~ "alpha" ]] || [[ "$new_version" =~ "beta" ]]; then
+        DEBUG_MODE="true"
+    fi
+
+    # Remove pre-release designation tags from display version
+    DISPLAY_VER=$(echo $new_version | sed "s|-alpha||g" | sed "s|-beta||g")
+}
+
+upgrade_health_check() {
+    echo "============================================================================="
+    echo "[ ! ] Performing system health check before proceeding with installation...  "
+    # Perform basic health check against hestia.conf to ensure that
+    # system variables exist and are set to expected defaults.
+
+    if [ -z "$VERSION" ]; then
+        export VERSION="1.1.0"
+        $BIN/v-change-sys-config-value 'VERSION' "$VERSION"
+        echo
+        echo "[ ! ] Unable to detect installed version of Hestia Control Panel."
+        echo "      Setting default version to $VERSION and processing upgrade steps."
+        echo
+    fi
+
+    # Release branch
+    if [ -z "$RELEASE_BRANCH" ]; then
+        echo "[ ! ] Adding missing variable to hestia.conf: RELEASE_BRANCH ('release')"
+        $BIN/v-change-sys-config-value 'RELEASE_BRANCH' 'release'
+    fi
+
+    # Webmail alias
+    if [ ! -z "$IMAP_SYSTEM" ]; then
+        if [ -z "$WEBMAIL_ALIAS" ]; then
+            echo "[ ! ] Adding missing variable to hestia.conf: WEBMAIL_ALIAS ('webmail')"
+            $BIN/v-change-sys-config-value 'WEBMAIL_ALIAS' 'webmail'
+        fi
+    fi
+
+    # phpMyAdmin/phpPgAdmin alias
+    if [ ! -z "$DB_SYSTEM" ]; then
+        if [ "$DB_SYSTEM" = "mysql" ]; then
+            if [ -z "$DB_PMA_ALIAS" ]; then 
+                echo "[ ! ] Adding missing variable to hestia.conf: DB_PMA_ALIAS ('phpMyAdmin')"
+                $BIN/v-change-sys-config-value 'DB_PMA_ALIAS' 'phpMyAdmin'
+            fi
+        fi
+        if [ "$DB_SYSTEM" = "pgsql" ]; then
+            if [ -z "$DB_PGA_ALIAS" ]; then 
+                echo "[ ! ] Adding missing variable to hestia.conf: DB_PGA_ALIAS ('phpPgAdmin')"
+                $BIN/v-change-sys-config-value 'DB_PGA_ALIAS' 'phpPgAdmin'
+            fi
+        fi
+    fi
+
+    # Backup compression level
+    if [ -z "$BACKUP_GZIP" ]; then 
+        echo "[ ! ] Adding missing variable to hestia.conf: BACKUP_GZIP ('9')"
+        $BIN/v-change-sys-config-value 'BACKUP_GZIP' '9'
+    fi
+
+    # Theme
+    if [ -z "$THEME" ]; then 
+        echo "[ ! ] Adding missing variable to hestia.conf: THEME ('default')"
+        $BIN/v-change-sys-theme 'default'
+    fi
+
+    # Default language
+    if [ -z "$LANGUAGE" ]; then 
+        echo "[ ! ] Adding missing variable to hestia.conf: LANGUAGE ('en')"
+        $BIN/v-change-sys-language 'en'
+    fi
+
+    # Disk Quota
+    if [ -z "$DISK_QUOTA" ]; then 
+        echo "[ ! ] Adding missing variable to hestia.conf: DISK_QUOTA ('no')"
+        $BIN/v-change-sys-config-value 'DISK_QUOTA' 'no'
+    fi
+
+    # CRON daemon
+    if [ -z "$CRON_SYSTEM" ]; then 
+        echo "[ ! ] Adding missing variable to hestia.conf: CRON_SYSTEM ('cron')"
+        $BIN/v-change-sys-config-value 'CRON_SYSTEM' 'cron'
+    fi
+
+    # Backend port
+    if [ -z "$BACKEND_PORT" ]; then 
+        echo "[ ! ] Adding missing variable to hestia.conf: BACKEND_PORT ('8083')"
+        $BIN/v-change-sys-port '8083' >/dev/null 2>&1
+    fi
+
+    # Upgrade: Send email notification
+    if [ -z "$UPGRADE_SEND_EMAIL" ]; then 
+        echo "[ ! ] Adding missing variable to hestia.conf: UPGRADE_SEND_EMAIL ('true')"
+        $BIN/v-change-sys-config-value 'UPGRADE_SEND_EMAIL' 'true'
+    fi
+
+    # Upgrade: Send email notification
+    if [ -z "$UPGRADE_SEND_EMAIL_LOG" ]; then 
+        echo "[ ! ] Adding missing variable to hestia.conf: UPGRADE_SEND_EMAIL_LOG ('false')"
+        $BIN/v-change-sys-config-value 'UPGRADE_SEND_EMAIL_LOG' 'false'
+    fi
+
+    # File Manager
+    if [ -z "$FILE_MANAGER" ]; then
+        echo "[ ! ] Adding missing variable to hestia.conf: FILE_MANAGER ('true')"
+        echo "[ ! ] File Manager is enabled but not installed, repairing components..."
+        $BIN/v-add-sys-filemanager quiet
+    fi
+    echo "[ * ] Health check complete. Starting upgrade from $VERSION to $new_version..."
+    echo "============================================================================="
+}
+
 upgrade_welcome_message() {
     echo
-    echo '                _   _           _   _        ____ ____                  '
-    echo '               | | | | ___  ___| |_(_) __ _ / ___|  _ \                 '
-    echo '               | |_| |/ _ \/ __| __| |/ _` | |   | |_) |                '
-    echo '               |  _  |  __/\__ \ |_| | (_| | |___|  __/                 '
-    echo '               |_| |_|\___||___/\__|_|\__,_|\____|_|                    '
-    echo "                                                                        "
-    echo "                  Hestia Control Panel Software Update                  "
-    echo "                            Version: $new_version                       "
-    echo "========================================================================"
+    echo '                  _   _           _   _        ____ ____                      '
+    echo '                 | | | | ___  ___| |_(_) __ _ / ___|  _ \                     '
+    echo '                 | |_| |/ _ \/ __| __| |/ _` | |   | |_) |                    '
+    echo '                 |  _  |  __/\__ \ |_| | (_| | |___|  __/                     '
+    echo '                 |_| |_|\___||___/\__|_|\__,_|\____|_|                        '
+    echo "                                                                              "
+    echo "                    Hestia Control Panel Software Update                      "
+    echo "                               Version: ${DISPLAY_VER}                         "
+    if [[ "$new_version" =~ "beta" ]]; then
+        echo "                                BETA RELEASE                               "
+    fi
+    if [[ "$new_version" =~ "alpha" ]]; then
+        echo "                            DEVELOPMENT SNAPSHOT                           "
+        echo "                      NOT INTENDED FOR PRODUCTION USE                      "
+        echo "                            USE AT YOUR OWN RISK                           "
+    fi
+    echo
+    echo "=============================================================================="
     echo
-    echo "[ ! ] IMPORTANT INFORMATION:                                              "
+    echo "[ ! ] IMPORTANT INFORMATION:                                                  "
     echo
-    echo "Default configuration files and templates may be modified or replaced   "
-    echo "during the upgrade process. You may restore these files from:           "
+    echo "Default configuration files and templates may be modified or replaced         "
+    echo "during the upgrade process. You may restore these files from:                 "
     echo ""
-    echo "Backup directory: $HESTIA_BACKUP/                                       "
+    echo "Backup directory: $HESTIA_BACKUP/                                             "
+    echo "Installation log: $LOG                                                        "
     echo
-    echo "This process may take a few minutes, please wait...                     "
+}
+
+upgrade_welcome_message_log() {
+    echo "=============================================================================="
+    echo "Hestia Control Panel Software Update Log"
+    echo "=============================================================================="
     echo
-    echo "========================================================================"
+    echo "OPERATING SYSTEM:      $OS_TYPE ($OS_VERSION)"
+    echo "CURRENT VERSION:       $VERSION"
+    echo "NEW VERSION:           $new_version"
+    echo "RELEASE BRANCH:        $RELEASE_BRANCH"
+    if [[ "$new_version" =~ "alpha" ]]; then
+        echo "BUILD TYPE:            Development snapshot"
+    elif [[ "$new_version" =~ "beta" ]]; then
+        echo "BUILD TYPE:            Beta release"
+    else
+        echo "BUILD TYPE:            Production release"
+    fi
+    echo 
+    echo "INSTALLER OPTIONS:"
+    echo "============================================================================="
+    echo "Send email notification on upgrade complete:      $UPGRADE_SEND_EMAIL"
+    echo "Send installed log output to admin email:         $UPGRADE_SEND_EMAIL_LOG"
+    echo 
+}
+
+upgrade_step_message() {
     echo
+    echo "[ - ] Now applying any necessary patches from version v$version_step..."
 }
 
 upgrade_complete_message() {
-    # Add notification to panel
-    $HESTIA/bin/v-add-user-notification admin 'Upgrade complete' 'Your server has been updated to Hestia Control Panel <b>v'$new_version'</b>.<br><br>Please tell us about any bugs or issues by opening an issue report on <a href="https://github.com/hestiacp/hestiacp/issues" target="_new"><i class="fab fa-github"></i> GitHub</a> or e-mail <a href="mailto:info@hestiacp.com?Subject="['$new_version'] Bug Report: ">info@hestiacp.com</a>.<br><br><b>Have a wonderful day!</b><br><br><i class="fas fa-heart status-icon red"></i> The Hestia Control Panel development team'
-
     # Echo message to console output
+    echo "============================================================================="
     echo
-    echo "========================================================================"
-    echo
-    echo "Upgrade complete! If you encounter any issues or find a bug,            "
-    echo "please take a moment to report it to us on GitHub at the URL below:     "
-    echo "https://github.com/hestiacp/hestiacp/issues                             "
+    echo "Upgrade complete! If you encounter any issues or find a bug,                 "
+    echo "please take a moment to report it to us on GitHub at the URL below:          "
+    echo "https://github.com/hestiacp/hestiacp/issues                                  "
     echo
-    echo "We hope that you enjoy using this version of Hestia Control Panel,      "
-    echo "have a wonderful day!                                                   "
+    echo "We hope that you enjoy using this version of Hestia Control Panel,           "
+    echo "have a wonderful day!                                                        "
     echo
-    echo "Sincerely,                                                              "
-    echo "The Hestia Control Panel development team                               "
+    echo "Sincerely,                                                                   "
+    echo "The Hestia Control Panel development team                                    "
     echo
-    echo "Web:      https://www.hestiacp.com/                                     "
-    echo "Forum:    https://forum.hestiacp.com/                                   "
-    echo "GitHub:   https://github.com/hestiacp/hestiacp/                        "
-    echo "E-mail:   info@hestiacp.com                                             "
+    echo "Web:      https://www.hestiacp.com/                                          "
+    echo "Forum:    https://forum.hestiacp.com/                                        "
+    echo "GitHub:   https://github.com/hestiacp/hestiacp/                              "
+    echo "E-mail:   info@hestiacp.com                                                  "
     echo 
-    echo "Made with love & pride by the open-source community around the world.   "
+    echo "Made with love & pride by the open-source community around the world.        "
     echo
+    echo "============================================================================="
     echo
 }
 
+upgrade_complete_message_log() {
+    echo 
+    echo "============================================================================="
+    echo "UPGRADE COMPLETE.                                                            "
+    echo "Please report any issues on GitHub:                                          "
+    echo "https://github.com/hestiacp/hestiacp/issues                                  "
+    echo "============================================================================="
+    echo 
+}
+
+upgrade_cleanup_message() {
+    echo "============================================================================="
+    echo "Installation tasks complete, performing clean-up...                          "
+    echo "============================================================================="
+}
+
+upgrade_get_version() {
+    # Retrieve new version number for Hestia Control Panel from .deb package
+    new_version=$(dpkg -l | awk '$2=="hestia" { print $3 }')
+}
+
+upgrade_set_version() {
+    # Set new version number in hestia.conf
+    sed -i "/VERSION/d" $HESTIA/conf/hestia.conf
+    echo "VERSION='$@'" >> $HESTIA/conf/hestia.conf
+}
+
+upgrade_send_notification_to_panel () {
+    # Add notification to panel if variable is set to true or is not set
+    if [[ "$new_version" =~ "alpha" ]]; then
+        # Send notifications for development releases
+        $HESTIA/bin/v-add-user-notification admin 'Development snapshot installed' '<b>Version:</b> '$new_version'<br><b>Code Branch:</b> '$RELEASE_BRANCH'<br><br>Please tell us about any bugs or issues by opening an issue report on <a href="https://github.com/hestiacp/hestiacp/issues" target="_new"><i class="fab fa-github"></i> GitHub</a> and feel free to share your feedback on our <a href="https://forum.hestiacp.com" target="_new">discussion forum</a>.<br><br><i class="fas fa-heart status-icon red"></i> The Hestia Control Panel development team'
+    elif [[ "$new_version" =~ "beta" ]]; then
+        # Send feedback notification for beta releases
+        $HESTIA/bin/v-add-user-notification admin 'Thank you for testing Hestia Control Panel '$new_version'.' '<b>Please share your feedback with our development team through our <a href="https://forum.hestiacp.com" target="_new">discussion forum</a>.<br><br>Found a bug? Report it on <a href="https://github.com/hestiacp/hestiacp/issues" target="_new"><i class="fab fa-github"></i> GitHub</a>!</b><br><br><i class="fas fa-heart status-icon red"></i> The Hestia Control Panel development team'
+    else
+        # Send normal upgrade complete notification for stable releases
+        $HESTIA/bin/v-add-user-notification admin 'Upgrade complete' 'Your server has been updated to Hestia Control Panel <b>v'$new_version'</b>.<br><br>Please tell us about any bugs or issues by opening an issue report on <a href="https://github.com/hestiacp/hestiacp/issues" target="_new"><i class="fab fa-github"></i> GitHub</a>.<br><br><b>Have a wonderful day!</b><br><br><i class="fas fa-heart status-icon red"></i> The Hestia Control Panel development team'
+    fi
+}
+
+upgrade_send_notification_to_email () {
+    if [ "$UPGRADE_SEND_EMAIL" = "true" ]; then
+        # Retrieve admin email address, sendmail path, and message temp file path
+        admin_email=$(v-list-user admin json | grep "CONTACT" | cut -d'"' -f4)
+        send_mail="$HESTIA/web/inc/mail-wrapper.php"
+        message_tmp_file="/tmp/hestia-upgrade-complete.txt"
+
+        # Create temporary file
+        touch $message_tmp_file
+
+        # Write message to file
+        echo "$HOSTNAME has been upgraded from Hestia Control Panel v$VERSION to v${new_version}." >> $message_tmp_file
+        echo "Installation log: $LOG" >> $message_tmp_file
+        echo "" >> $message_tmp_file
+        echo "What's new: https://github.com/hestiacp/hestiacp/blob/$RELEASE_BRANCH/CHANGELOG.md" >> $message_tmp_file
+        echo  >> $message_tmp_file
+        echo "What to do if you run into issues:" >> $message_tmp_file
+        echo "- Check our forums for possible solutions: https://forum.hestiacp.com" >> $message_tmp_file
+        echo "- File an issue report on GitHub: https://github.com/hestiacp/hestiacp/issues" >> $message_tmp_file
+        echo "" >> $message_tmp_file
+        echo "==================================================="  >> $message_tmp_file
+        echo "Have a wonderful day," >> $message_tmp_file
+        echo "The Hestia Control Panel development team" >> $message_tmp_file
+        
+        # Read back message from file and pass through to sendmail
+        cat $message_tmp_file | $send_mail -s "Update Installed - v${new_version}" $admin_email
+        rm -f $message_tmp_file
+    fi
+}
+
+upgrade_send_log_to_email() {
+    if [ "$UPGRADE_SEND_EMAIL_LOG" = "true" ]; then
+        admin_email=$(v-list-user admin json | grep "CONTACT" | cut -d'"' -f4)
+        send_mail="$HESTIA/web/inc/mail-wrapper.php"
+        cat $LOG | $send_mail -s "Update Installation Log - v${new_version}" $admin_email
+    fi
+}
+
 upgrade_init_backup() {
     # Ensure that backup directories are created
     # Hestia Control Panel configuration files
     mkdir -p $HESTIA_BACKUP/conf/hestia/
-    
+
+    # System services (apache2, nginx, bind9, vsftpd, etc).
+    if [ ! -z "$WEB_SYSTEM" ]; then
+        mkdir -p $HESTIA_BACKUP/conf/$WEB_SYSTEM/
+    fi
+    if [ ! -z "$IMAP_SYSTEM" ]; then
+        mkdir -p $HESTIA_BACKUP/conf/$IMAP_SYSTEM/
+    fi
+    if [ ! -z "$MAIL_SYSTEM" ]; then
+        mkdir -p $HESTIA_BACKUP/conf/$MAIL_SYSTEM/
+    fi
+    if [ ! -z "$DNS_SYSTEM" ]; then
+        mkdir -p $HESTIA_BACKUP/conf/$DNS_SYSTEM/
+    fi
+    if [ ! -z "$PROXY_SYSTEM" ]; then
+        mkdir -p $HESTIA_BACKUP/conf/$PROXY_SYSTEM/
+    fi
+    if [ ! -z "$DB_SYSTEM" ]; then
+        mkdir -p $HESTIA_BACKUP/conf/$DB_SYSTEM/
+    fi
+    if [ ! -z "$FTP_SYSTEM" ]; then
+        mkdir -p $HESTIA_BACKUP/conf/$FTP_SYSTEM/
+    fi
+    if [ ! -z "$FIREWALL_SYSTEM" ]; then
+        mkdir -p $HESTIA_BACKUP/conf/$FIREWALL_SYSTEM/
+    fi
+    if [ ! -z "$FIREWALL_EXTENSION" ]; then
+        mkdir -p $HESTIA_BACKUP/conf/$FIREWALL_EXTENSION/
+    fi
+    if [ -e "/etc/ssh/sshd_config" ]; then
+        mkdir -p $HESTIA_BACKUP/conf/ssh/
+    fi
+
     # Hosting Packages
     mkdir -p $HESTIA_BACKUP/packages/
 
@@ -92,7 +347,7 @@ upgrade_init_backup() {
         fi
         if [[  "$DB_SYSTEM" =~ "pgsql" ]]; then 
             mkdir -p $HESTIA_BACKUP/conf/pgsql/        
-        fi       
+        fi
     fi
     if [ ! -z "$FTP_SYSTEM" ]; then
         mkdir -p $HESTIA_BACKUP/conf/$FTP_SYSTEM/
@@ -106,49 +361,95 @@ upgrade_init_backup() {
     if [ -e "/etc/ssh/sshd_config" ]; then
         mkdir -p $HESTIA_BACKUP/conf/ssh/
     fi
+}
 
-    echo "[ * ] Backing up existing templates and configuration files..."
+upgrade_init_logging() {
+    # Set log file path
+    LOG="$HESTIA_BACKUP/hst-upgrade-$(date +%d%m%Y%H%M).log"
 
+    # Create log file
+    touch $LOG
+}
+
+upgrade_start_backup() {
+    echo "[ * ] Backing up existing templates and configuration files..."
+    if [ "$DEBUG_MODE" = "true" ]; then
+        echo "      - Packages"
+    fi
     cp -rf $HESTIA/data/packages/* $HESTIA_BACKUP/packages/
 
+    if [ "$DEBUG_MODE" = "true" ]; then
+        echo "      - Templates"
+    fi
     cp -rf $HESTIA/data/templates/* $HESTIA_BACKUP/templates/
 
+    if [ "$DEBUG_MODE" = "true" ]; then
+        echo "      - Configuration files:"
+    fi
+
     # Hestia Control Panel configuration files
+    if [ "$DEBUG_MODE" = "true" ]; then
+        echo "      ---- hestia"
+    fi
     cp -rf $HESTIA/conf/* $HESTIA_BACKUP/conf/hestia/
 
     # System service configuration files (apache2, nginx, bind9, vsftpd, etc).
     if [ ! -z "$WEB_SYSTEM" ]; then
+        if [ "$DEBUG_MODE" = "true" ]; then
+            echo "      ---- $WEB_SYSTEM"
+        fi
         cp -f /etc/$WEB_SYSTEM/*.conf $HESTIA_BACKUP/conf/$WEB_SYSTEM/
         cp -f /etc/$WEB_SYSTEM/conf.d/*.conf $HESTIA_BACKUP/conf/$WEB_SYSTEM/
     fi
     if [ ! -z "$PROXY_SYSTEM" ]; then
+        if [ "$DEBUG_MODE" = "true" ]; then
+            echo "      ---- $PROXY_SYSTEM"
+        fi
         cp -f /etc/$PROXY_SYSTEM/*.conf $HESTIA_BACKUP/conf/$PROXY_SYSTEM/
         cp -f /etc/$PROXY_SYSTEM/conf.d/*.conf $HESTIA_BACKUP/conf/$PROXY_SYSTEM/
         cp -f /etc/$PROXY_SYSTEM/conf.d/*.inc $HESTIA_BACKUP/conf/$PROXY_SYSTEM/
     fi
     if [ ! -z "$IMAP_SYSTEM" ]; then
+        if [ "$DEBUG_MODE" = "true" ]; then
+            echo "      ---- $IMAP_SYSTEM"
+        fi
         cp -f /etc/$IMAP_SYSTEM/*.conf $HESTIA_BACKUP/conf/$IMAP_SYSTEM/
         cp -f /etc/$IMAP_SYSTEM/conf.d/*.conf $HESTIA_BACKUP/conf/$IMAP_SYSTEM/
     fi
     if [ ! -z "$MAIL_SYSTEM" ]; then
+        if [ "$DEBUG_MODE" = "true" ]; then
+            echo "      ---- $MAIL_SYSTEM"
+        fi
         cp -f /etc/$MAIL_SYSTEM/*.conf $HESTIA_BACKUP/conf/$MAIL_SYSTEM/
     fi
     if [ ! -z "$DNS_SYSTEM" ]; then
         if [ "$DNS_SYSTEM" = "bind9" ]; then
+            if [ "$DEBUG_MODE" = "true" ]; then
+                echo "      ---- $DNS_SYSTEM"
+            fi
             cp -f /etc/bind/*.conf $HESTIA_BACKUP/conf/$DNS_SYSTEM/
         fi
     fi
-    if [ ! -z "$DB_SYSTEM" ]; then    
-        if [[  "$DB_SYSTEM" =~ "mysql" ]]; then 
+    if [ ! -z "$DB_SYSTEM" ]; then
+        if [[ "$DB_SYSTEM" =~ "mysql" ]]; then
+            if [ "$DEBUG_MODE" = "true" ]; then
+                echo "      ---- mysql"
+            fi
             cp -f /etc/mysql/*.cnf $HESTIA_BACKUP/conf/mysql/
             cp -f /etc/mysql/conf.d/*.cnf $HESTIA_BACKUP/conf/mysql/      
         fi
-        if [[  "$DB_SYSTEM" =~ "pgsql" ]]; then 
+        if [[ "$DB_SYSTEM" =~ "pgsql" ]]; then
+            if [ "$DEBUG_MODE" = "true" ]; then
+                echo "      ---- pgsql"
+            fi
             cp -f /etc/mysql/*.cnf $HESTIA_BACKUP/conf/pgsql/
             cp -f /etc/mysql/conf.d/*.cnf $HESTIA_BACKUP/conf/pgsql/         
         fi
     fi
     if [ ! -z "$FTP_SYSTEM" ]; then
+        if [ "$DEBUG_MODE" = "true" ]; then
+            echo "      ---- $FTP_SYSTEM"
+        fi
         if [ "$FTP_SYSTEM" = "vsftpd" ]; then
             cp -f /etc/$FTP_SYSTEM.conf $HESTIA_BACKUP/conf/$FTP_SYSTEM/
         fi
@@ -158,10 +459,16 @@ upgrade_init_backup() {
         fi
     fi
     if [ ! -z "$FIREWALL_EXTENSION" ]; then
+        if [ "$DEBUG_MODE" = "true" ]; then
+            echo "      ---- $FIREWALL_EXTENSION"
+        fi
         cp -f /etc/$FIREWALL_EXTENSION/*.conf $HESTIA_BACKUP/conf/$FIREWALL_EXTENSION/
         cp -f /etc/$FIREWALL_EXTENSION/*.local $HESTIA_BACKUP/conf/$FIREWALL_EXTENSION/
     fi
     if [ -e "/etc/ssh/sshd_config" ]; then
+        if [ "$DEBUG_MODE" = "true" ]; then
+            echo "      ---- sshd"
+        fi
         cp -f /etc/ssh/sshd_config $HESTIA_BACKUP/conf/ssh/sshd_config
     fi
 }
@@ -171,200 +478,198 @@ upgrade_refresh_config() {
     source /usr/local/hestia/func/main.sh
 }
 
-upgrade_start_routine() {
-    #####################################################################
-    #######       Ensure that release branch variable exists      #######
-    #####################################################################
-    release_branch_check=$(cat $HESTIA/conf/hestia.conf | grep RELEASE_BRANCH)
-    if [ -z "$release_branch_check" ]; then
-        echo "[ * ] Adding global release branch variable to system configuration..."
-        $BIN/v-change-sys-config-value 'RELEASE_BRANCH' 'release'
-    fi
-    
-    #####################################################################
-    #######             Start standard upgrade process            #######
-    #######  Place instructions for all post v1.0.1 builds below  #######
-    #####################################################################
+upgrade_start_routine() {   
+    # Parse version numbers for comparison
+    function check_version { echo "$@" | awk -F. '{ printf("%d%03d%03d%03d\n", $1,$2,$3,$4); }'; }
 
-    # Ensure that latest upgrade commands are processed if version is the same
-    if [ $VERSION = "$new_version" ]; then
-        echo "[ ! ] The latest version of Hestia Control Panel is already installed."
-        echo "      Verifying configuration..."
-        echo ""
-        source $HESTIA/install/upgrade/versions/latest.sh
-        VERSION="$new_version"
-        upgrade_set_version $VERSION
-        upgrade_refresh_config
-    fi
-
-    if [ $VERSION = "0.9.8-25" ] || [ $VERSION = "0.9.8-26" ] || [ $VERSION = "0.9.8-27" ] || [ $VERSION = "0.9.8-28" ] || [ $VERSION = "0.9.8-29" ] || [ $VERSION = "0.10.0" ] || [ $VERSION = "1.00.0-190618" ] || [ $VERSION = "1.00.0-190621" ] || [ $VERSION = "1.0.0" ]; then
-        source $HESTIA/install/upgrade/versions/previous/0.9.8-29.sh
-        source $HESTIA/install/upgrade/versions/previous/1.00.0-190618.sh
-        source $HESTIA/install/upgrade/versions/previous/1.0.1.sh
-        VERSION="1.0.1"
-        upgrade_set_version $VERSION
-        upgrade_refresh_config
-    fi
-
-    # Upgrade to Version 1.0.2
-    if [ $VERSION = "1.0.1" ]; then
-        source $HESTIA/install/upgrade/versions/previous/1.0.2.sh
-        VERSION="1.0.2"
-        upgrade_set_version $VERSION
-        upgrade_refresh_config
-    fi
-
-    # Upgrade to Version 1.0.3
-    if [ $VERSION = "1.0.2" ]; then
-        source $HESTIA/install/upgrade/versions/previous/1.0.3.sh
-        VERSION="1.0.3"
-        upgrade_set_version $VERSION
-        upgrade_refresh_config
-    fi
+    # Remove pre-release designation from version number for upgrade scripts
+    VERSION=$(echo $VERSION | sed "s|-alpha||g" | sed "s|-beta||g")
 
-    # Upgrade to Version 1.0.4
-    if [ $VERSION = "1.0.3" ]; then
-        source $HESTIA/install/upgrade/versions/previous/1.0.4.sh
-        VERSION="1.0.4"
-        upgrade_set_version $VERSION
-        upgrade_refresh_config
-    fi
-
-    # Upgrade to Version 1.0.5
-    if [ $VERSION = "1.0.4" ]; then
-        source $HESTIA/install/upgrade/versions/previous/1.0.5.sh
-        VERSION="1.0.5"
-        upgrade_set_version $VERSION
-        upgrade_refresh_config
-    fi
-
-    # Upgrade to Version 1.0.6
-    if [ $VERSION = "1.0.5" ]; then
-        source $HESTIA/install/upgrade/versions/previous/1.0.6.sh
-        VERSION="1.0.6"
-        upgrade_set_version $VERSION
-        upgrade_refresh_config
-    fi
-
-    # Upgrade to Version 1.1.0
-    if [ $VERSION = "1.0.6" ]; then
-        source $HESTIA/install/upgrade/versions/previous/1.1.0.sh
-        VERSION="1.1.0"
-        upgrade_set_version $VERSION
-        upgrade_refresh_config
-    fi
-
-    # Upgrade to Version 1.1.1
-    if [ $VERSION = "1.1.0" ]; then
-        source $HESTIA/install/upgrade/versions/previous/1.1.1.sh
-        VERSION="1.1.1"
-        upgrade_set_version $VERSION
-        upgrade_refresh_config
-    fi
+    # Get list of all available version steps and create array
+    upgrade_steps=$(ls $HESTIA/install/upgrade/versions/*.sh)
+    for script in $upgrade_steps; do
+        declare -a available_versions
+        available_versions+=($(echo $script | sed "s|/usr/local/hestia/install/upgrade/versions/||g" | sed "s|.sh||g"))
+    done
 
-    # Upgrade to Version 1.2.0
-    if [ $VERSION = "1.1.1" ] || [ $VERSION = "1.1.2" ]; then
-        source $HESTIA/install/upgrade/versions/previous/1.2.0.sh
-        VERSION="1.2.1"
+    # Define variables for accessing supported versions
+    all_versions=$(printf "%s\n" ${available_versions[@]})
+    oldest_version=$(printf "%s\n" ${available_versions[@]} | sort -r | tail -n1)
+    latest_version=$(printf "%s\n" ${available_versions[@]} | tail -n1)
+
+    # Check for supported versions and process necessary upgrade steps
+    if [ $(check_version $latest_version) -gt $(check_version $VERSION) ]; then
+        for version_step in "${available_versions[@]}"
+        do
+            if [ $(check_version $VERSION) -lt $(check_version "$version_step") ]; then
+                upgrade_step_message
+                source $HESTIA/install/upgrade/versions/$version_step.sh
+            fi
+        done
         upgrade_set_version $VERSION
         upgrade_refresh_config
-    fi
-
-
-    # Upgrade to Version 1.2.1
-    if [ $VERSION = "1.2.0" ]; then
-        # Process steps which may not have correctly executed from v1.1.0.
-        echo
-        echo "[ ! ] Reprocessing steps from v1.1.0 due to a previous installer bug..."
-        echo
-        source $HESTIA/install/upgrade/versions/previous/1.1.0.sh
-        source $HESTIA/install/upgrade/versions/previous/1.2.0.sh
-        VERSION="1.2.1"
-        upgrade_refresh_config
-    fi
-
-
-    # Upgrade to Version 1.2.2
-    if [ $VERSION = "1.2.1" ]; then
-        source $HESTIA/install/upgrade/versions/latest.sh
+    else
+        echo ""
+        echo "[ ! ] The latest version of Hestia Control Panel is already installed."
+        echo "      Verifying configuration..."
+        echo ""
+        source $HESTIA/install/upgrade/versions/$VERSION.sh
         VERSION="$new_version"
+        upgrade_set_version $VERSION
         upgrade_refresh_config
     fi
 
-
     #####################################################################
     #######     End version-specific upgrade instruction sets     #######
     #####################################################################
 }
 
 upgrade_phpmyadmin() {
-    # Check if MariaDB/MySQL is installed on the server before attempting to install or upgrade phpMyAdmin
-    if [ "$DB_SYSTEM" = "mysql" ]; then
-        # Define version check function
-        function version_ge(){ test "$(printf '%s\n' "$@" | sort -V | head -n 1)" != "$1" -o ! -z "$1" -a "$1" = "$2"; }
-
-        pma_release_file=$(ls /usr/share/phpmyadmin/RELEASE-DATE-* 2>/dev/null |tail -n 1)
-        if version_ge "${pma_release_file##*-}" "$pma_v"; then
-            echo "[ ! ] phpMyAdmin v${pma_release_file##*-} is already installed, skipping update..."
-        else
-            # Display upgrade information
-            echo "[ * ] Upgrading phpMyAdmin to version v$pma_v..."
-            [ -d /usr/share/phpmyadmin ] || mkdir -p /usr/share/phpmyadmin
-
-            # Download latest phpMyAdmin release
-            wget --quiet https://files.phpmyadmin.net/phpMyAdmin/$pma_v/phpMyAdmin-$pma_v-all-languages.tar.gz
-
-            # Unpack files
-            tar xzf phpMyAdmin-$pma_v-all-languages.tar.gz
-
-            # Delete file to prevent error
-            rm -fr /usr/share/phpmyadmin/doc/html
-
-            # Overwrite old files
-            cp -rf phpMyAdmin-$pma_v-all-languages/* /usr/share/phpmyadmin
+    if [ "$UPGRADE_UPDATE_PHPMYADMIN" = "true" ]; then
+        # Check if MariaDB/MySQL is installed on the server before attempting to install or upgrade phpMyAdmin
+        if [ "$DB_SYSTEM" = "mysql" ]; then
+            # Define version check function
+            function version_ge(){ test "$(printf '%s\n' "$@" | sort -V | head -n 1)" != "$1" -o ! -z "$1" -a "$1" = "$2"; }
+
+            pma_release_file=$(ls /usr/share/phpmyadmin/RELEASE-DATE-* 2>/dev/null |tail -n 1)
+            if version_ge "${pma_release_file##*-}" "$pma_v"; then
+                echo "[ ! ] Verifying phpMyAdmin v${pma_release_file##*-} installation..."
+                # Update permissions
+                if [ -e /var/lib/phpmyadmin/blowfish_secret.inc.php ]; then
+                    chmod 0644 /var/lib/phpmyadmin/blowfish_secret.inc.php
+                fi
+            else
+                # Display upgrade information
+                echo "[ * ] Upgrading phpMyAdmin to version v$pma_v..."
+                [ -d /usr/share/phpmyadmin ] || mkdir -p /usr/share/phpmyadmin
+
+                # Download latest phpMyAdmin release
+                wget --quiet https://files.phpmyadmin.net/phpMyAdmin/$pma_v/phpMyAdmin-$pma_v-all-languages.tar.gz
+
+                # Unpack files
+                tar xzf phpMyAdmin-$pma_v-all-languages.tar.gz
+
+                # Delete file to prevent error
+                rm -fr /usr/share/phpmyadmin/doc/html
+
+                # Overwrite old files
+                cp -rf phpMyAdmin-$pma_v-all-languages/* /usr/share/phpmyadmin
+
+                # Set config and log directory
+                sed -i "s|define('CONFIG_DIR', ROOT_PATH);|define('CONFIG_DIR', '/etc/phpmyadmin/');|" /usr/share/phpmyadmin/libraries/vendor_config.php
+                sed -i "s|define('TEMP_DIR', ROOT_PATH . 'tmp/');|define('TEMP_DIR', '/var/lib/phpmyadmin/tmp/');|" /usr/share/phpmyadmin/libraries/vendor_config.php
+
+                # Create temporary folder and change permissions
+                if [ ! -d /usr/share/phpmyadmin/tmp ]; then
+                    mkdir /usr/share/phpmyadmin/tmp
+                    chmod 777 /usr/share/phpmyadmin/tmp
+                fi
+
+                if [ -e /var/lib/phpmyadmin/blowfish_secret.inc.php ]; then
+                    chmod 0644 /var/lib/phpmyadmin/blowfish_secret.inc.php
+                fi
+
+                # Clean up source files
+                rm -fr phpMyAdmin-$pma_v-all-languages
+                rm -f phpMyAdmin-$pma_v-all-languages.tar.gz
+            fi
+        fi
+    fi
+}
 
-            # Set config and log directory
-            sed -i "s|define('CONFIG_DIR', ROOT_PATH);|define('CONFIG_DIR', '/etc/phpmyadmin/');|" /usr/share/phpmyadmin/libraries/vendor_config.php
-            sed -i "s|define('TEMP_DIR', ROOT_PATH . 'tmp/');|define('TEMP_DIR', '/var/lib/phpmyadmin/tmp/');|" /usr/share/phpmyadmin/libraries/vendor_config.php
+upgrade_filemanager() {
+    if [ "$UPGRADE_UPDATE_FILEMANAGER" = "true" ]; then
+        FILE_MANAGER_CHECK=$(cat $HESTIA/conf/hestia.conf | grep "FILE_MANAGER='false'")
+        if [ -z "$FILE_MANAGER_CHECK" ]; then
+            echo "[ * ] Updating File Manager..."
+            # Reinstall the File Manager
+            $HESTIA/bin/v-delete-sys-filemanager quiet
+            $HESTIA/bin/v-add-sys-filemanager quiet
+        fi
+    fi
+}
 
-            # Create temporary folder and change permissions
-            if [ ! -d /usr/share/phpmyadmin/tmp ]; then
-                mkdir /usr/share/phpmyadmin/tmp
-                chmod 777 /usr/share/phpmyadmin/tmp
+upgrade_filemanager_update_config() {
+    if [ "$UPGRADE_UPDATE_FILEMANAGER_CONFIG" = "true" ]; then
+        FILE_MANAGER_CHECK=$(cat $HESTIA/conf/hestia.conf | grep "FILE_MANAGER='false'")
+        if [ -z "$FILE_MANAGER_CHECK" ]; then
+            if [ -e "$HESTIA/web/fm/configuration.php" ]; then
+                echo "[ * ] Updating File Manager configuration..."
+                # Update configuration.php
+                cp -f $HESTIA_INSTALL_DIR/filemanager/filegator/configuration.php $HESTIA/web/fm/configuration.php
+                # Set environment variable for interface
+                $HESTIA/bin/v-change-sys-config-value 'FILE_MANAGER' 'true'
             fi
-
-            # Clean up source files
-            rm -fr phpMyAdmin-$pma_v-all-languages
-            rm -f phpMyAdmin-$pma_v-all-languages.tar.gz
         fi
     fi
 }
 
-upgrade_get_version() {
-    # Retrieve new version number for Hestia Control Panel from .deb package
-    new_version=$(dpkg -l | awk '$2=="hestia" { print $3 }')
+upgrade_rebuild_web_templates() {
+    if [ "$UPGRADE_UPDATE_WEB_TEMPLATES" = "true" ]; then
+        echo "[ ! ] Updating default web domain templates..."
+        $BIN/v-update-web-templates
+    fi
 }
 
-upgrade_set_version() {
-    # Set new version number in hestia.conf
-    sed -i "/VERSION/d" $HESTIA/conf/hestia.conf
-    echo "VERSION='$@'" >> $HESTIA/conf/hestia.conf
+upgrade_rebuild_mail_templates() {
+    if [ "$UPGRADE_UPDATE_MAIL_TEMPLATES" = "true" ]; then
+        echo "[ ! ] Updating default mail domain templates..."
+        $BIN/v-update-mail-templates
+    fi
+}
+
+upgrade_rebuild_dns_templates() {
+    if [ "$UPGRADE_UPDATE_DNS_TEMPLATES" = "true" ]; then
+        echo "[ ! ] Updating default DNS zone templates..."
+        $BIN/v-update-dns-templates
+    fi
 }
 
 upgrade_rebuild_users() {
-    for user in $($HESTIA/bin/v-list-sys-users plain); do
-        echo "[ * ] Rebuilding domains and account for user: $user..."
-        if [ ! -z "$WEB_SYSTEM" ]; then
-            $BIN/v-rebuild-web-domains $user 'no' >/dev/null 2>&1
-        fi
-        if [ ! -z "$DNS_SYSTEM" ]; then
-            $BIN/v-rebuild-dns-domains $user 'no' >/dev/null 2>&1
-        fi
-        if [ ! -z "$MAIL_SYSTEM" ]; then 
-            $BIN/v-rebuild-mail-domains $user 'no' >/dev/null 2>&1
+    if [ "$UPGRADE_REBUILD_USERS" = "true" ]; then
+        if [ "$DEBUG_MODE" = "true" ]; then
+            echo "[ * ] Rebuilding user accounts and domains:"
+        else
+            echo "[ * ] Rebuilding user accounts and domains, this may take a few minutes..."
         fi
-        $BIN/v-rebuild-user $user 'no' >/dev/null 2>&1
-    done
+        for user in $($HESTIA/bin/v-list-sys-users plain); do
+            if [ "$DEBUG_MODE" = "true" ]; then
+                echo "      - $user:"
+            else
+                echo "      - $user..."
+            fi
+            if [ ! -z "$WEB_SYSTEM" ]; then
+                if [ "$DEBUG_MODE" = "true" ]; then
+                    echo "      ---- Web domains..."
+                    $BIN/v-rebuild-web-domains $user 'no'
+                else
+                    $BIN/v-rebuild-web-domains $user 'no' >/dev/null 2>&1
+                fi
+            fi
+            if [ ! -z "$DNS_SYSTEM" ]; then
+                if [ "$DEBUG_MODE" = "true" ]; then
+                    echo "      ---- DNS zones..."
+                    $BIN/v-rebuild-dns-domains $user 'no'
+                else
+                    $BIN/v-rebuild-dns-domains $user 'no' >/dev/null 2>&1
+                fi
+            fi
+            if [ ! -z "$MAIL_SYSTEM" ]; then 
+                if [ "$DEBUG_MODE" = "true" ]; then
+                    echo "      ---- Mail domains..."
+                    $BIN/v-rebuild-mail-domains $user 'no'
+                else
+                    $BIN/v-rebuild-mail-domains $user 'no' >/dev/null 2>&1
+                fi
+            fi
+            if [ "$DEBUG_MODE" = "true" ]; then
+                echo "      ---- User configuration..."
+                $BIN/v-rebuild-user $user 'no'
+            else
+                $BIN/v-rebuild-user $user 'no' >/dev/null 2>&1
+            fi
+        done
+    fi
 }
 
 upgrade_restart_services() {
@@ -376,32 +681,68 @@ upgrade_restart_services() {
         fi
     fi
 
-    echo "[ * ] Restarting services..."
-    sleep 5
-    if [ ! -z "$MAIL_SYSTEM" ]; then
-        $BIN/v-restart-mail $restart
-    fi
-    if [ ! -z "$WEB_SYSTEM" ]; then
-        $BIN/v-restart-web $restart
-        $BIN/v-restart-proxy $restart
-    fi
-    if [ ! -z "$DNS_SYSTEM" ]; then
-        $BIN/v-restart-dns $restart
-    fi
-    for v in `ls /etc/php/`; do
-        if [ -e /etc/php/$v/fpm ]; then
-            $BIN/v-restart-service php$v-fpm $restart
+    if [ "$UPGRADE_RESTART_SERVICES" = "true" ]; then
+        echo "[ * ] Restarting services..."
+        sleep 2
+        if [ ! -z "$MAIL_SYSTEM" ]; then
+            if [ "$DEBUG_MODE" = "true" ]; then
+                echo "      - $MAIL_SYSTEM"
+            fi
+            $BIN/v-restart-mail $restart
         fi
-    done
-    if [ ! -z "$FTP_SYSTEM" ]; then
-        $BIN/v-restart-ftp $restart
-    fi
-    if [ ! -z "$FIREWALL_EXTENSION" ]; then
-        $BIN/v-restart-service $FIREWALL_EXTENSION yes
+        if [ ! -z "$WEB_SYSTEM" ]; then
+            if [ "$DEBUG_MODE" = "true" ]; then
+                echo "      - $WEB_SYSTEM"
+            fi
+            $BIN/v-restart-web $restart
+        fi
+        if [ ! -z "$PROXY_SYSTEM" ]; then
+            if [ "$DEBUG_MODE" = "true" ]; then
+                echo "      - $PROXY_SYSTEM"
+            fi
+            $BIN/v-restart-proxy $restart
+        fi
+        if [ ! -z "$DNS_SYSTEM" ]; then
+            if [ "$DEBUG_MODE" = "true" ]; then
+                echo "      - $DNS_SYSTEM"
+            fi
+            $BIN/v-restart-dns $restart
+        fi
+        for v in `ls /etc/php/`; do
+            if [ -e /etc/php/$v/fpm ]; then
+                if [ "$DEBUG_MODE" = "true" ]; then
+                    echo "      - php$v-fpm"
+                fi
+                $BIN/v-restart-service php$v-fpm $restart
+            fi
+        done
+        if [ ! -z "$FTP_SYSTEM" ]; then
+            if [ "$DEBUG_MODE" = "true" ]; then
+                echo "      - $FTP_SYSTEM"
+            fi
+            $BIN/v-restart-ftp $restart
+        fi
+        if [ ! -z "$FIREWALL_EXTENSION" ]; then
+            if [ "$DEBUG_MODE" = "true" ]; then
+                echo "      - $FIREWALL_EXTENSION"
+            fi
+            $BIN/v-restart-service $FIREWALL_EXTENSION yes
+        fi
+        # Restart SSH daemon service
+        if [ "$DEBUG_MODE" = "true" ]; then
+            echo "      - sshd"
+        fi
+        $BIN/v-restart-service ssh $restart
     fi
 
-    # Restart SSH daemon and Hestia Control Panel service
-    $BIN/v-restart-service ssh $restart
+    # Always restart the Hestia Control Panel service
+    if [ "$DEBUG_MODE" = "true" ]; then
+        echo "      - hestia"
+    fi
     $BIN/v-restart-service hestia $restart
 }
 
+upgrade_perform_cleanup() {
+    # Remove upgrade configuration file as it's not needed
+    rm -f $HESTIA_INSTALL_DIR/upgrade/upgrade.conf
+}

+ 47 - 0
install/upgrade/upgrade.conf

@@ -0,0 +1,47 @@
+#######################################################################################
+#######                             User preferences                            #######
+#######################################################################################
+
+# These values can be modified by the user in $HESTIA/conf/hestia.conf
+# and can be adjusted from within the Web UI from Server > Configure > Updates.
+
+# Send an "upgrade complete" notification to the admin's e-mail address:
+# UPGRADE_SEND_EMAIL='true'
+
+# Send the update installation log to the admin's e-mail address:
+# UPGRADE_SEND_EMAIL_LOG='true'
+
+# Add upgrade notification to panel (this switch is not exposed via Web UI):
+# UPGRADE_SEND_NOTIFICATION='true'
+
+# Enable verbose logging and debug information
+# DEBUG_MODE='true'
+
+#######################################################################################
+#######                             Upgrade switches                            #######
+#######################################################################################
+
+# Update default templates when performing an upgrade
+UPGRADE_UPDATE_WEB_TEMPLATES='true'
+UPGRADE_UPDATE_MAIL_TEMPLATES='true'
+UPGRADE_UPDATE_DNS_TEMPLATES='true'
+
+# Update phpMyAdmin if installed during upgrade
+UPGRADE_UPDATE_PHPMYADMIN='true'
+
+# Update the File Manager or it's configuration
+# UPGRADE_UPDATE_FILEMANAGER: Performs an upgrade/repair install of the File Manager
+# UPGRADE_UPDATE_FILEMANAGER: Updates only the configuration file
+UPGRADE_UPDATE_FILEMANAGER='false'
+UPGRADE_UPDATE_FILEMANAGER_CONFIG='true'
+
+# Post installation clean-up
+UPGRADE_REBUILD_USERS='true'
+UPGRADE_RESTART_SERVICES='true'
+
+#######################################################################################
+#######                        3rd Party Software Updates                       #######
+#######################################################################################
+
+# Set version of phpMyAdmin to install during upgrade if not already installed
+pma_v='5.0.2'

+ 0 - 0
install/upgrade/versions/previous/0.9.8-29.sh → install/upgrade/versions/0.9.8-29.sh


+ 0 - 13
install/upgrade/versions/previous/1.0.1.sh → install/upgrade/versions/1.0.1.sh

@@ -6,19 +6,6 @@
 #######                      Place additional commands below.                   #######
 #######################################################################################
 
-# Ensure that users from previous releases are set to the correct stable release branch
-if [ ! -z "$RELEASE_BRANCH" ] && [ "$RELEASE_BRANCH" = "master" ] || [ "$RELEASE_BRANCH" = "develop" ]; then
-    echo "[ * ] Updating default release branch configuration..."
-    $HESTIA/bin/v-change-sys-config-value 'RELEASE_BRANCH' 'release'
-fi
-
-# Back up old template files and install the latest versions
-if [ -d $HESTIA/data/templates/ ]; then
-    echo "[ * ] Updating web templates to enable per-domain HSTS/OCSP SSL support..."
-    cp -rf $HESTIA/data/templates $HESTIA_BACKUP/templates/
-    $HESTIA/bin/v-update-web-templates >/dev/null 2>&1
-fi
-
 # Remove global options from nginx.conf to prevent conflicts with other web packages
 # and remove OCSP SSL stapling from global configuration as it has moved to per-domain availability in this release.
 if [ -e /etc/nginx/nginx.conf ]; then

+ 0 - 0
install/upgrade/versions/previous/1.0.2.sh → install/upgrade/versions/1.0.2.sh


+ 0 - 0
install/upgrade/versions/previous/1.0.3.sh → install/upgrade/versions/1.0.3.sh


+ 1 - 1
install/upgrade/versions/latest.sh → install/upgrade/versions/1.0.4.sh

@@ -1,6 +1,6 @@
 #!/bin/sh
 
-# Hestia Control Panel upgrade script for target version 1.2.3
+# Hestia Control Panel upgrade script for target version 1.0.4
 
 #######################################################################################
 #######                      Place additional commands below.                   #######

+ 0 - 0
install/upgrade/versions/previous/1.0.5.sh → install/upgrade/versions/1.0.5.sh


+ 0 - 0
install/upgrade/versions/previous/1.0.6.sh → install/upgrade/versions/1.0.6.sh


+ 0 - 8
install/upgrade/versions/previous/1.00.0-190618.sh → install/upgrade/versions/1.00.0-190618.sh

@@ -44,14 +44,6 @@ if [ -d $HESTIA/data/packages/ ]; then
     cp -f $HESTIA/data/packages/default.pkg $HESTIA_BACKUP/packages/
 fi
 
-# Back up old template files and install the latest versions
-if [ -d $HESTIA/data/templates/ ]; then
-    echo "[ * ] Replacing default Web, DNS, and Mail templates..."
-    cp -rf $HESTIA/data/templates $HESTIA_BACKUP/templates/
-    $HESTIA/bin/v-update-web-templates >/dev/null 2>&1
-    $HESTIA/bin/v-update-dns-templates >/dev/null 2>&1
-	$HESTIA/bin/v-update-mail-templates >/dev/null 2>&1
-fi
 
 # Remove old Office 365 template as there is a newer version with an updated name
 if [ -f $HESTIA/data/templates/dns/o365.tpl ]; then

+ 0 - 0
install/upgrade/versions/previous/1.1.0.sh → install/upgrade/versions/1.1.0.sh


+ 0 - 0
install/upgrade/versions/previous/1.1.1.sh → install/upgrade/versions/1.1.1.sh


+ 0 - 10
install/upgrade/versions/previous/1.2.0.sh → install/upgrade/versions/1.2.0.sh

@@ -217,13 +217,3 @@ if [ -z "$GZIP_LVL_CHECK" ]; then
     echo "[ * ] Updating backup compression level variable..."
     $BIN/v-change-sys-config-value "BACKUP_GZIP" '9'
 fi
-
-# Update template files to add warnings
-# Backup current templates
-cp -r -f $HESTIA/data/templates/* $HESTIA_BACKUP/templates/
-echo "[ ! ] Updating default web domain templates..."
-$BIN/v-update-web-templates
-echo "[ ! ] Updating default mail domain templates..."
-$BIN/v-update-mail-templates
-echo "[ ! ] Updating default DNS zone templates..."
-$BIN/v-update-dns-templates

+ 9 - 0
install/upgrade/versions/1.2.1.sh

@@ -0,0 +1,9 @@
+#!/bin/sh
+
+# Hestia Control Panel upgrade script for target version 1.2.1
+
+#######################################################################################
+#######                      Place additional commands below.                   #######
+#######################################################################################
+
+

+ 0 - 0
install/upgrade/versions/previous/1.2.2.sh → install/upgrade/versions/1.2.2.sh


+ 0 - 22
install/upgrade/versions/previous/1.0.4.sh

@@ -1,22 +0,0 @@
-#!/bin/sh
-
-# Hestia Control Panel upgrade script for target version 1.0.4
-
-#######################################################################################
-#######                      Place additional commands below.                   #######
-#######################################################################################
-
-# Add php-imagick package to existing version...
-#php_versions=$(ls /etc/php/*/fpm -d 2>/dev/null |wc -l)
-#if [ "$php_versions" -gt 1 ]; then
-#    echo "[ * ] Install PHP Imageqick..."
-#    software="php-imagick"
-#    for v in $(ls /etc/php/); do
-#        if [ ! -d "/etc/php/$v/fpm/pool.d/" ]; then
-#            continue
-#        fi
-#        software="$software php$v-imagick"
-#    done
-#fi
-#apt -qq update
-#apt -qq install $software -y

+ 0 - 17
install/upgrade/versions/previous/1.2.1.sh

@@ -1,17 +0,0 @@
-#!/bin/sh
-
-# Hestia Control Panel upgrade script for target version 1.2.1
-
-#######################################################################################
-#######                      Place additional commands below.                   #######
-#######################################################################################
-
-# Update template files to add warnings
-# Backup current templates
-cp -r -f $HESTIA/data/templates/* $HESTIA_BACKUP/templates/
-echo "[ ! ] Updating default web domain templates..."
-$BIN/v-update-web-templates
-echo "[ ! ] Updating default mail domain templates..."
-$BIN/v-update-mail-templates
-echo "[ ! ] Updating default DNS zone templates..."
-$BIN/v-update-dns-templates

+ 48 - 14
src/deb/hestia/postinst

@@ -8,9 +8,11 @@ fi
 #                Initialize functions/variables               #
 ###############################################################
 
-# Load upgrade functions and refresh variables/configuration
+# Load upgrade functions and variables
+source /usr/local/hestia/func/main.sh
 source /usr/local/hestia/func/upgrade.sh
-upgrade_refresh_config
+source /usr/local/hestia/conf/hestia.conf
+source /usr/local/hestia/install/upgrade/upgrade.conf
 
 ###############################################################
 #             Set new version numbers for packages            #
@@ -18,36 +20,68 @@ upgrade_refresh_config
 # Hestia Control Panel
 new_version=$(dpkg -l | awk '$2=="hestia" { print $3 }')
 
-# phpMyAdmin
-pma_v='5.0.2'
-
 ###############################################################
 #               Begin standard upgrade routines               #
 ###############################################################
 
+# Set default verbose output based on release branch
+is_debug_build
 
-# Set up console display and welcome message
-upgrade_welcome_message
+# Detect operating system version
+detect_os
 
 # Initialize backup directories
 upgrade_init_backup
 
+# Initialize logging
+upgrade_init_logging
+
+# Set up console display and welcome message
+upgrade_welcome_message_log >> $LOG
+upgrade_welcome_message
+
+# Perform upgrade health check and refresh configuration before upgrading
+upgrade_health_check | tee -a $LOG
+upgrade_refresh_config
+
+# Back up existing configuration files and templates
+upgrade_start_backup | tee -a $LOG
+
 # Execute version-specific upgrade scripts
-upgrade_start_routine
+upgrade_start_routine | tee -a $LOG
+
+# Upgrade File Manager and update configuration
+upgrade_filemanager | tee -a $LOG
+upgrade_filemanager_update_config | tee -a $LOG
+
+# Update Web domain templates
+upgrade_rebuild_web_templates | tee -a $LOG
+
+# Update Mail domain templates
+upgrade_rebuild_mail_templates | tee -a $LOG
+
+# Update DNS zone templates
+upgrade_rebuild_dns_templates | tee -a $LOG
 
 # Upgrade phpMyAdmin if applicable
-upgrade_phpmyadmin
+upgrade_phpmyadmin | tee -a $LOG
 
 # Set new version number in hestia.conf
 upgrade_set_version $new_version
 
-# Perform account and domain rebuild to ensure configuration files are correct
-upgrade_rebuild_users
-
-# Restart necessary services for changes to take full effect
-upgrade_restart_services
+# Perform upgrade clean-up tasks (rebuild domains and users, restart services, delete temporary files)
+upgrade_cleanup_message | tee -a $LOG
+upgrade_rebuild_users | tee -a $LOG
+upgrade_restart_services | tee -a $LOG
+upgrade_perform_cleanup | tee -a $LOG
 
 # Add upgrade notification to admin user's panel and display completion message
+upgrade_complete_message_log >> $LOG
 upgrade_complete_message
 
+# If setting variables are set to true in hestia.conf, send notifications and email output.
+upgrade_send_notification_to_panel
+upgrade_send_notification_to_email
+upgrade_send_log_to_email
+
 exit 0

+ 22 - 0
web/edit/server/index.php

@@ -359,6 +359,28 @@ if (!empty($_POST['save'])) {
         }
     }
 
+    // Update send notification setting
+    if (empty($_SESSION['error_msg'])) {
+        if ($_POST['v_upgrade_send_notification_email'] != $_SESSION['UPGRADE_SEND_EMAIL']) {
+            if ($_POST['v_upgrade_send_notification_email'] == 'on'){ $_POST['v_upgrade_send_notification_email'] = 'true'; } else { $_POST['v_upgrade_send_notification_email'] = 'false'; }
+            exec (HESTIA_CMD."v-change-sys-config-value UPGRADE_SEND_EMAIL ".escapeshellarg($_POST['v_upgrade_send_notification_email']), $output, $return_var);
+            check_return_code($return_var,$output);
+            unset($output);
+            $v_upgrade_notification_adv = 'yes';
+        }
+    }
+
+    // Update send log by email setting
+    if (empty($_SESSION['error_msg'])) {
+        if ($_POST['v_upgrade_send_email_log'] != $_SESSION['UPGRADE_SEND_EMAIL_LOG']) {
+            if ($_POST['v_upgrade_send_email_log'] == 'on') { $_POST['v_upgrade_send_email_log'] = 'true'; } else { $_POST['v_upgrade_send_email_log'] = 'false'; }
+            exec (HESTIA_CMD."v-change-sys-config-value UPGRADE_SEND_EMAIL_LOG ".escapeshellarg($_POST['v_upgrade_send_email_log']), $output, $return_var);
+            check_return_code($return_var,$output);
+            unset($output);
+            $v_upgrade_send_log_adv = 'yes';
+        }
+    }
+
     // Disable local backup
     if (empty($_SESSION['error_msg'])) {
         if (($_POST['v_backup'] == 'no') && ($v_backup == 'yes' )) {

+ 8 - 4
web/inc/i18n/ar.php

@@ -892,8 +892,12 @@ $LANG['ar'] = array(
     'Notifications' => 'إشعارات',
 
     // Help
-    'Help' => 'مساعدة',
-    'Documentation' => 'توثيق',
-    'Support' => 'الدعم',
-    'Submit an issue report' => 'إرسال تقرير بالمشكلة',
+    'Help' => 'Help',
+    'Documentation' => 'Documentation',
+    'Support' => 'Support',
+    'Submit an issue report' => 'Submit an issue report',
+
+    'SYSTEM_UPGRADE_SEND_NOTIFICATION_EMAIL' => 'إرسال إشعار بالبريد الإلكتروني عند تثبيت التحديث',
+    'SYSTEM_UPGRADE_SAVE_LOG' => 'احفظ سجل تثبيت التحديث',
+    'SYSTEM_UPGRADE_SEND_EMAIL_LOG' => 'أرسل سجل تثبيت التحديث بالبريد الإلكتروني',
 );

+ 8 - 4
web/inc/i18n/az.php

@@ -856,8 +856,12 @@ $LANG['az'] = array(
     'Notifications' => 'Bildirişlər',
 
     // Help
-    'Help' => 'Kömək edin',
-    'Documentation' => 'Sənədlər',
-    'Support' => 'Dəstək',
-    'Submit an issue report' => 'Bir problem hesabatı təqdim edin',
+    'Help' => 'Help',
+    'Documentation' => 'Documentation',
+    'Support' => 'Support',
+    'Submit an issue report' => 'Submit an issue report',
+
+    'SYSTEM_UPGRADE_SEND_NOTIFICATION_EMAIL' => 'Yeniləmə quraşdırıldıqda e-poçt bildirişini göndərin',
+    'SYSTEM_UPGRADE_SAVE_LOG' => 'Yeniləmə quraşdırma jurnalını qeyd edin',
+    'SYSTEM_UPGRADE_SEND_EMAIL_LOG' => 'Yeniləmə quraşdırma jurnalını elektron poçtla göndərin',
 );

+ 8 - 4
web/inc/i18n/bg.php

@@ -882,9 +882,13 @@ $LANG['bg'] = array(
     'Notifications' => 'Известия',
     
     // Help
-    'Help' => 'Помогне',
-    'Documentation' => 'документация',
-    'Support' => 'поддържа',
-    'Submit an issue report' => 'Изпратете доклад за проблем',
+    'Help' => 'Help',
+    'Documentation' => 'Documentation',
+    'Support' => 'Support',
+    'Submit an issue report' => 'Submit an issue report',
+
+    'SYSTEM_UPGRADE_SEND_NOTIFICATION_EMAIL' => 'Известие по имейл, когато е инсталирана актуализация',
+    'SYSTEM_UPGRADE_SAVE_LOG' => 'Запазете дневниците за актуализация',
+    'SYSTEM_UPGRADE_SEND_EMAIL_LOG' => 'Изпратете дневника за инсталиране на актуализацията по имейл',
 );
 

+ 9 - 4
web/inc/i18n/bs.php

@@ -884,8 +884,13 @@ $LANG['bs'] = array(
     'Notifications' => 'Obavijesti',
     
     // Help
-    'Help' => 'Pomoć',
-    'Documentation' => 'Dokumentacija',
-    'Support' => 'Podrška',
-    'Submit an issue report' => 'Pošaljite prijavu problema',
+    'Help' => 'Help',
+    'Documentation' => 'Documentation',
+    'Support' => 'Support',
+    'Submit an issue report' => 'Submit an issue report',
+    'disk' => 'Disk',    
+
+    'SYSTEM_UPGRADE_SEND_NOTIFICATION_EMAIL' => 'Pošaljite obavijest e-poštom kada je ažuriranje instalirano',
+    'SYSTEM_UPGRADE_SAVE_LOG' => 'Spremi dnevnik instalacije ažuriranja',
+    'SYSTEM_UPGRADE_SEND_EMAIL_LOG' => 'Pošaljite dnevnik instalacije ažuriranja e-poštom',
 );

+ 11 - 4
web/inc/i18n/cn.php

@@ -898,8 +898,15 @@ $LANG['cn'] = array(
     'Notifications' => '通知事项',
     
     // Help
-    'Help' => '救命',
-    'Documentation' => '文献资料',
-    'Support' => '支持',
-    'Submit an issue report' => '提交问题报告',
+    'Help' => 'Help',
+    'Documentation' => 'Documentation',
+    'Support' => 'Support',
+    'Submit an issue report' => 'Submit an issue report',
+    'backend server' =>  'Backend Server',
+    'traffic' => 'Traffic',
+    'disk' => 'Disk',
+
+    'SYSTEM_UPGRADE_SEND_NOTIFICATION_EMAIL' => '安装更新后发送电子邮件通知',
+    'SYSTEM_UPGRADE_SAVE_LOG' => '保存更新安装日志',
+    'SYSTEM_UPGRADE_SEND_EMAIL_LOG' => '通过电子邮件发送更新安装日志',
 );

+ 4 - 0
web/inc/i18n/cz.php

@@ -890,4 +890,8 @@ $LANG['cz'] = array(
     'Documentation' => 'Documentation',
     'Support' => 'Support',
     'Submit an issue report' => 'Submit an issue report',
+
+    'SYSTEM_UPGRADE_SEND_NOTIFICATION_EMAIL' => 'Po instalaci aktualizace odešlete e-mailové upozornění',
+    'SYSTEM_UPGRADE_SAVE_LOG' => 'Uložte instalační protokol aktualizace',
+    'SYSTEM_UPGRADE_SEND_EMAIL_LOG' => 'Pošlete instalační protokol aktualizace e-mailem',
 );

+ 5 - 0
web/inc/i18n/da.php

@@ -889,4 +889,9 @@ $LANG['da'] = array(
     'Documentation' => 'Documentation',
     'Support' => 'Support',
     'Submit an issue report' => 'Submit an issue report',
+    'disk' => 'Disk',    
+
+    'SYSTEM_UPGRADE_SEND_NOTIFICATION_EMAIL' => 'Send e-mail-meddelelse, når en opdatering er installeret',
+    'SYSTEM_UPGRADE_SAVE_LOG' => 'Gem opdateringsinstallationslog',
+    'SYSTEM_UPGRADE_SEND_EMAIL_LOG' => 'Send opdateringsinstallationslogg via e-mail',
 );

+ 8 - 4
web/inc/i18n/de.php

@@ -881,8 +881,12 @@ $LANG['de'] = array(
     'Notifications' => 'Benachrichtigungen',
     
     // Help
-    'Help' => 'Hilfe',
-    'Documentation' => 'Dokumentation',
-    'Support' => 'Unterstützung',
-    'Submit an issue report' => 'Senden Sie einen Problembericht',
+    'Help' => 'Help',
+    'Documentation' => 'Documentation',
+    'Support' => 'Support',
+    'Submit an issue report' => 'Submit an issue report',
+
+    'SYSTEM_UPGRADE_SEND_NOTIFICATION_EMAIL' => 'Senden Sie eine E-Mail-Benachrichtigung, wenn ein Update installiert wurde',
+    'SYSTEM_UPGRADE_SAVE_LOG' => 'Speichern Sie das Update-Installationsprotokoll',
+    'SYSTEM_UPGRADE_SEND_EMAIL_LOG' => 'Senden Sie das Update-Installationsprotokoll per E-Mail',
 );

+ 8 - 4
web/inc/i18n/el.php

@@ -886,8 +886,12 @@ $LANG['el'] = array(
     'Notifications' => 'Ειδοποιήσεις',
     
     // Help
-    'Help' => 'Βοήθεια',
-    'Documentation' => 'Τεκμηρίωση',
-    'Support' => 'Υποστήριξη',
-    'Submit an issue report' => 'Υποβολή αναφοράς προβλήματος',
+    'Help' => 'Help',
+    'Documentation' => 'Documentation',
+    'Support' => 'Support',
+    'Submit an issue report' => 'Submit an issue report',
+
+    'SYSTEM_UPGRADE_SEND_NOTIFICATION_EMAIL' => 'Αποστολή ειδοποίησης μέσω email όταν έχει εγκατασταθεί μια ενημέρωση',
+    'SYSTEM_UPGRADE_SAVE_LOG' => 'Αποθήκευση αρχείου καταγραφής εγκατάστασης ενημέρωσης',
+    'SYSTEM_UPGRADE_SEND_EMAIL_LOG' => 'Αποστολή καταγραφής εγκατάστασης ενημέρωσης μέσω email',
 );

+ 4 - 0
web/inc/i18n/en.php

@@ -889,4 +889,8 @@ $LANG['en'] = array(
     'Documentation' => 'Documentation',
     'Support' => 'Support',
     'Submit an issue report' => 'Submit an issue report',
+
+    'SYSTEM_UPGRADE_SEND_NOTIFICATION_EMAIL' => 'Send email notification when an update has been installed',
+    'SYSTEM_UPGRADE_SAVE_LOG' => 'Save update installation log',
+    'SYSTEM_UPGRADE_SEND_EMAIL_LOG' => 'Send update installation log by email',
 );

+ 6 - 0
web/inc/i18n/es.php

@@ -892,4 +892,10 @@ $LANG['es'] = array(
     'Documentation' => 'Documentation',
     'Support' => 'Support',
     'Submit an issue report' => 'Submit an issue report',
+    'traffic' => 'Traffic',
+    'disk' => 'Disk',
+
+    'SYSTEM_UPGRADE_SEND_NOTIFICATION_EMAIL' => 'Enviar notificación por correo electrónico cuando se haya instalado una actualización',
+    'SYSTEM_UPGRADE_SAVE_LOG' => 'Guardar registro de instalación de actualizaciones',
+    'SYSTEM_UPGRADE_SEND_EMAIL_LOG' => 'Enviar el registro de instalación de actualizaciones por correo electrónico',
 );

+ 5 - 0
web/inc/i18n/fa.php

@@ -858,4 +858,9 @@ $LANG['fa'] = array(
     'Documentation' => 'Documentation',
     'Support' => 'Support',
     'Submit an issue report' => 'Submit an issue report',
+    'disk' => 'Disk',    
+
+    'SYSTEM_UPGRADE_SEND_NOTIFICATION_EMAIL' => 'اعلان ایمیل را هنگام نصب به روزرسانی ارسال کنید',
+    'SYSTEM_UPGRADE_SAVE_LOG' => 'ذخیره سیاهههای مربوط به نصب',
+    'SYSTEM_UPGRADE_SEND_EMAIL_LOG' => 'گزارش های نصب را از طریق ایمیل ارسال کنید',
 );

+ 4 - 0
web/inc/i18n/fi.php

@@ -851,6 +851,10 @@ $LANG['fi'] = array(
     'Please scan the code below in your 2FA application:' => 'To finish setting up two-factor authentication, scan the QR code below<br />using an authentication app (such as <a href="https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2">Google Authenticator</a>):',
     '2FA Reset Code:' => 'Account Recovery Code:',
     
+    'SYSTEM_UPGRADE_SEND_NOTIFICATION_EMAIL' => 'Lähetä sähköposti-ilmoitus, kun päivitys on asennettu',
+    'SYSTEM_UPGRADE_SAVE_LOG' => 'Tallenna päivityksen asennusloki',
+    'SYSTEM_UPGRADE_SEND_EMAIL_LOG' => 'Lähetä päivitysasennusloki sähköpostitse',
+    
 // Texts below doesn't exist in en.php
     'traffic' => 'tiedonsiirto',
     'disk' => 'levytila',

+ 6 - 2
web/inc/i18n/fr.php

@@ -890,6 +890,10 @@ $LANG['fr'] = array(
     // Help
     'Help' => 'Aidez-moi',
     'Documentation' => 'Documentation',
-    'Support' => 'Soutien',
-    'Submit an issue report' => 'Soumettre un rapport de problème',
+    'Support' => 'Support',
+    'Submit an issue report' => 'Submit an issue report',
+
+    'SYSTEM_UPGRADE_SEND_NOTIFICATION_EMAIL' => 'Envoyer une notification par e-mail lorsqu\'une mise à jour a été installée',
+    'SYSTEM_UPGRADE_SAVE_LOG' => 'Enregistrer le journal d\'installation des mises à jour',
+    'SYSTEM_UPGRADE_SEND_EMAIL_LOG' => 'Envoyer le journal d\'installation de la mise à jour par e-mail',
 );

+ 4 - 0
web/inc/i18n/hr.php

@@ -891,4 +891,8 @@ $LANG['hr'] = array(
     'Documentation' => 'Documentation',
     'Support' => 'Support',
     'Submit an issue report' => 'Submit an issue report',
+
+    'SYSTEM_UPGRADE_SEND_NOTIFICATION_EMAIL' => 'Pošaljite obavijest e-poštom kada je ažuriranje instalirano',
+    'SYSTEM_UPGRADE_SAVE_LOG' => 'Spremi dnevnik instalacije ažuriranja',
+    'SYSTEM_UPGRADE_SEND_EMAIL_LOG' => 'Pošaljite dnevnik instalacije ažuriranja e-poštom',
 );

+ 4 - 0
web/inc/i18n/hu.php

@@ -892,4 +892,8 @@ $LANG['hu'] = array(
     'Documentation' => 'Documentation',
     'Support' => 'Support',
     'Submit an issue report' => 'Submit an issue report',
+
+    'SYSTEM_UPGRADE_SEND_NOTIFICATION_EMAIL' => 'Küldjön e-mail értesítést, ha telepítve van egy frissítés',
+    'SYSTEM_UPGRADE_SAVE_LOG' => 'Mentse a frissítési telepítési naplót',
+    'SYSTEM_UPGRADE_SEND_EMAIL_LOG' => 'Küldje el a frissítési telepítési naplót e-mailben',
 );

+ 4 - 0
web/inc/i18n/id.php

@@ -889,4 +889,8 @@ $LANG['id'] = array(
     'Documentation' => 'Documentation',
     'Support' => 'Support',
     'Submit an issue report' => 'Submit an issue report',
+
+    'SYSTEM_UPGRADE_SEND_NOTIFICATION_EMAIL' => 'Kirim pemberitahuan email ketika pembaruan telah diinstal',
+    'SYSTEM_UPGRADE_SAVE_LOG' => 'Simpan pembaruan log instalasi',
+    'SYSTEM_UPGRADE_SEND_EMAIL_LOG' => 'Kirim pembaruan log instalasi melalui email',
 );

+ 8 - 4
web/inc/i18n/it.php

@@ -883,8 +883,12 @@ $LANG['it'] = array(
     'Notifications' => 'Notifiche',
     
     // Help
-    'Help' => 'Aiuto',
-    'Documentation' => 'Documentazione',
-    'Support' => 'Supporto',
-    'Submit an issue report' => 'Invia una segnalazione di problemi',
+    'Help' => 'Help',
+    'Documentation' => 'Documentation',
+    'Support' => 'Support',
+    'Submit an issue report' => 'Submit an issue report',
+
+    'SYSTEM_UPGRADE_SEND_NOTIFICATION_EMAIL' => 'Invia notifica e-mail quando è stato installato un aggiornamento',
+    'SYSTEM_UPGRADE_SAVE_LOG' => 'Salva il registro di installazione degli aggiornamenti',
+    'SYSTEM_UPGRADE_SEND_EMAIL_LOG' => 'Invia il registro di installazione degli aggiornamenti via e-mail',
 );

+ 4 - 0
web/inc/i18n/ja.php

@@ -888,4 +888,8 @@ $LANG['ja'] = array(
     'Documentation' => 'Documentation',
     'Support' => 'Support',
     'Submit an issue report' => 'Submit an issue report',
+
+    'SYSTEM_UPGRADE_SEND_NOTIFICATION_EMAIL' => '更新がインストールされたときにメール通知を送信する',
+    'SYSTEM_UPGRADE_SAVE_LOG' => '更新インストールログを保存する',
+    'SYSTEM_UPGRADE_SEND_EMAIL_LOG' => 'メールで更新インストールログを送信する',
 );

+ 4 - 0
web/inc/i18n/ka.php

@@ -886,4 +886,8 @@ $LANG['ka'] = array(
     'Documentation' => 'Documentation',
     'Support' => 'Support',
     'Submit an issue report' => 'Submit an issue report',
+
+    'SYSTEM_UPGRADE_SEND_NOTIFICATION_EMAIL' => 'ელ.ფოსტის გაგზავნის გაგზავნა გაგზავნისთანავე',
+    'SYSTEM_UPGRADE_SAVE_LOG' => 'შეინახეთ განახლების ინსტალაციის ჟურნალი',
+    'SYSTEM_UPGRADE_SEND_EMAIL_LOG' => 'გაგზავნის განახლების ინსტალაციის ჟურნალი ელ.ფოსტით',
 );

+ 4 - 0
web/inc/i18n/ko.php

@@ -888,4 +888,8 @@ $LANG['ko'] = array(
     'Documentation' => 'Documentation',
     'Support' => 'Support',
     'Submit an issue report' => 'Submit an issue report',
+
+    'SYSTEM_UPGRADE_SEND_NOTIFICATION_EMAIL' => '업데이트가 설치되면 이메일 알림 보내기',
+    'SYSTEM_UPGRADE_SAVE_LOG' => '업데이트 설치 로그 저장',
+    'SYSTEM_UPGRADE_SEND_EMAIL_LOG' => '이메일로 업데이트 설치 로그 보내기',
 );

+ 4 - 0
web/inc/i18n/nl.php

@@ -899,4 +899,8 @@ $LANG['nl'] = array(
     'Documentation' => 'Documentation',
     'Support' => 'Support',
     'Submit an issue report' => 'Submit an issue report',
+
+    'SYSTEM_UPGRADE_SEND_NOTIFICATION_EMAIL' => 'Stuur een e-mailmelding wanneer een update is geïnstalleerd',
+    'SYSTEM_UPGRADE_SAVE_LOG' => 'Sla het updatelogboek op',
+    'SYSTEM_UPGRADE_SEND_EMAIL_LOG' => 'Stuur het updatelogboek per e-mail',
 );

+ 4 - 0
web/inc/i18n/no.php

@@ -889,4 +889,8 @@ $LANG['no'] = array(
     'Documentation' => 'Documentation',
     'Support' => 'Support',
     'Submit an issue report' => 'Submit an issue report',
+
+    'SYSTEM_UPGRADE_SEND_NOTIFICATION_EMAIL' => 'Send e-postvarsling når en oppdatering er installert',
+    'SYSTEM_UPGRADE_SAVE_LOG' => 'Lagre oppdateringsinstallasjonsloggen',
+    'SYSTEM_UPGRADE_SEND_EMAIL_LOG' => 'Send oppdateringsinstallasjonslogg via e-post',
 );

+ 4 - 0
web/inc/i18n/pl.php

@@ -891,4 +891,8 @@ $LANG['pl'] = array(
     'Documentation' => 'Documentation',
     'Support' => 'Support',
     'Submit an issue report' => 'Submit an issue report',
+
+    'SYSTEM_UPGRADE_SEND_NOTIFICATION_EMAIL' => 'Wyślij powiadomienie e-mail, gdy aktualizacja zostanie zainstalowana',
+    'SYSTEM_UPGRADE_SAVE_LOG' => 'Zapisz dziennik instalacji aktualizacji',
+    'SYSTEM_UPGRADE_SEND_EMAIL_LOG' => 'Wyślij dziennik instalacji aktualizacji pocztą e-mail',
 );

+ 4 - 0
web/inc/i18n/pt-BR.php

@@ -884,4 +884,8 @@ $LANG['pt-BR'] = array(
     'Documentation' => 'Documentation',
     'Support' => 'Support',
     'Submit an issue report' => 'Submit an issue report',
+
+    'SYSTEM_UPGRADE_SEND_NOTIFICATION_EMAIL' => 'Enviar notificação por email quando uma atualização estiver instalada',
+    'SYSTEM_UPGRADE_SAVE_LOG' => 'Salvar log de instalação da atualização',
+    'SYSTEM_UPGRADE_SEND_EMAIL_LOG' => 'Enviar log de instalação da atualização por email',
 );

+ 4 - 0
web/inc/i18n/pt.php

@@ -887,4 +887,8 @@ $LANG['pt'] = array(
     'Documentation' => 'Documentation',
     'Support' => 'Support',
     'Submit an issue report' => 'Submit an issue report',
+
+    'SYSTEM_UPGRADE_SEND_NOTIFICATION_EMAIL' => 'Enviar notificação por email quando uma atualização estiver instalada',
+    'SYSTEM_UPGRADE_SAVE_LOG' => 'Salvar log de instalação da atualização',
+    'SYSTEM_UPGRADE_SEND_EMAIL_LOG' => 'Enviar log de instalação da atualização por email',
 );

+ 4 - 0
web/inc/i18n/ro.php

@@ -888,4 +888,8 @@ $LANG['ro'] = array(
     'Documentation' => 'Documentation',
     'Support' => 'Support',
     'Submit an issue report' => 'Submit an issue report',
+
+    'SYSTEM_UPGRADE_SEND_NOTIFICATION_EMAIL' => 'Trimiteți o notificare prin e-mail atunci când a fost instalată o actualizare',
+    'SYSTEM_UPGRADE_SAVE_LOG' => 'Salvați jurnalul de instalare de actualizare',
+    'SYSTEM_UPGRADE_SEND_EMAIL_LOG' => 'Trimiteți jurnalul de instalare de actualizare prin e-mail',
 );

+ 8 - 4
web/inc/i18n/ru.php

@@ -887,8 +887,12 @@ $LANG['ru'] = array(
     'Notifications' => 'Уведомления',
     
     // Help
-    'Help' => 'Помогите',
-    'Documentation' => 'Документация',
-    'Support' => 'Служба поддержки',
-    'Submit an issue report' => 'Отправить отчет о проблеме',
+    'Help' => 'Help',
+    'Documentation' => 'Documentation',
+    'Support' => 'Support',
+    'Submit an issue report' => 'Submit an issue report',
+
+    'SYSTEM_UPGRADE_SEND_NOTIFICATION_EMAIL' => 'Отправить уведомление по электронной почте, когда обновление было установлено',
+    'SYSTEM_UPGRADE_SAVE_LOG' => 'Сохранить журнал установки обновлений',
+    'SYSTEM_UPGRADE_SEND_EMAIL_LOG' => 'Отправить журнал установки обновления по электронной почте',
 );

+ 4 - 0
web/inc/i18n/se.php

@@ -887,4 +887,8 @@ $LANG['se'] = array(
     'Documentation' => 'Documentation',
     'Support' => 'Support',
     'Submit an issue report' => 'Submit an issue report',
+
+    'SYSTEM_UPGRADE_SEND_NOTIFICATION_EMAIL' => 'Skicka e-postmeddelande när en uppdatering har installerats',
+    'SYSTEM_UPGRADE_SAVE_LOG' => 'Spara uppdateringsinstallationslogg',
+    'SYSTEM_UPGRADE_SEND_EMAIL_LOG' => 'Skicka uppdateringsinstallationslogg via e-post',
 );

+ 4 - 0
web/inc/i18n/sr.php

@@ -888,4 +888,8 @@ $LANG['sr'] = array(
     'Documentation' => 'Documentation',
     'Support' => 'Support',
     'Submit an issue report' => 'Submit an issue report',
+
+    'SYSTEM_UPGRADE_SEND_NOTIFICATION_EMAIL' => 'Пошаљите обавештење е-поштом када је ажурирање инсталирано',
+    'SYSTEM_UPGRADE_SAVE_LOG' => 'Сачувајте дневник инсталације ажурирања',
+    'SYSTEM_UPGRADE_SEND_EMAIL_LOG' => 'Пошаљите дневник инсталације ажурирања е-поштом',
 );

+ 4 - 0
web/inc/i18n/th.php

@@ -891,4 +891,8 @@ $LANG['th'] = array(
     'Documentation' => 'Documentation',
     'Support' => 'Support',
     'Submit an issue report' => 'Submit an issue report',
+
+    'SYSTEM_UPGRADE_SEND_NOTIFICATION_EMAIL' => 'ส่งอีเมลแจ้งเตือนเมื่อมีการติดตั้งการอัปเดต',
+    'SYSTEM_UPGRADE_SAVE_LOG' => 'บันทึกบันทึกการติดตั้งการอัพเดท',
+    'SYSTEM_UPGRADE_SEND_EMAIL_LOG' => 'ส่งบันทึกการติดตั้งการอัปเดตทางอีเมล',
 );

+ 4 - 0
web/inc/i18n/tr.php

@@ -889,4 +889,8 @@ $LANG['tr'] = array(
     'Documentation' => 'Documentation',
     'Support' => 'Support',
     'Submit an issue report' => 'Submit an issue report',
+
+    'SYSTEM_UPGRADE_SEND_NOTIFICATION_EMAIL' => 'Bir güncelleme yüklendiğinde e-posta bildirimi gönder',
+    'SYSTEM_UPGRADE_SAVE_LOG' => 'Güncelleme yükleme günlüğünü kaydet',
+    'SYSTEM_UPGRADE_SEND_EMAIL_LOG' => 'Güncelleme kurulum günlüğünü e-posta ile gönder',
 );

+ 4 - 0
web/inc/i18n/tw.php

@@ -889,4 +889,8 @@ $LANG['tw'] = array(
     'Documentation' => 'Documentation',
     'Support' => 'Support',
     'Submit an issue report' => 'Submit an issue report',
+
+    'SYSTEM_UPGRADE_SEND_NOTIFICATION_EMAIL' => '安裝更新後發送電子郵件通知',
+    'SYSTEM_UPGRADE_SAVE_LOG' => '保存更新安裝日誌',
+    'SYSTEM_UPGRADE_SEND_EMAIL_LOG' => '通過電子郵件發送更新安裝日誌',
 );

+ 4 - 0
web/inc/i18n/ua.php

@@ -859,4 +859,8 @@ $LANG['ua'] = array(
     'Documentation' => 'Documentation',
     'Support' => 'Support',
     'Submit an issue report' => 'Submit an issue report',
+
+    'SYSTEM_UPGRADE_SEND_NOTIFICATION_EMAIL' => 'Send email notification when an update has been installed',
+    'SYSTEM_UPGRADE_SAVE_LOG' => 'Save update installation log',
+    'SYSTEM_UPGRADE_SEND_EMAIL_LOG' => 'Send update installation log by email',
 );

+ 4 - 0
web/inc/i18n/ur.php

@@ -868,4 +868,8 @@ $LANG['ur'] = array(
     'Documentation' => 'Documentation',
     'Support' => 'Support',
     'Submit an issue report' => 'Submit an issue report',
+
+    'SYSTEM_UPGRADE_SEND_NOTIFICATION_EMAIL' => 'جب اپ ڈیٹ انسٹال ہوجائے تو ای میل کی اطلاع بھیجیں',
+    'SYSTEM_UPGRADE_SAVE_LOG' => 'اپ ڈیٹ انسٹالیشن لاگ محفوظ کریں',
+    'SYSTEM_UPGRADE_SEND_EMAIL_LOG' => 'ای میل کے ذریعہ اپ ڈیٹ انسٹالیشن لاگ ارسال کریں',
 );

+ 4 - 0
web/inc/i18n/vi.php

@@ -889,4 +889,8 @@ $LANG['vi'] = array(
     'Documentation' => 'Documentation',
     'Support' => 'Support',
     'Submit an issue report' => 'Submit an issue report',
+
+    'SYSTEM_UPGRADE_SEND_NOTIFICATION_EMAIL' => 'Gửi email thông báo khi bản cập nhật đã được cài đặt',
+    'SYSTEM_UPGRADE_SAVE_LOG' => 'Lưu nhật ký cài đặt cập nhật',
+    'SYSTEM_UPGRADE_SEND_EMAIL_LOG' => 'Gửi nhật ký cài đặt cập nhật qua email',
 );

+ 23 - 3
web/templates/admin/edit_server.html

@@ -156,7 +156,7 @@
                             <tr>
                                 <td class="vst-text input-label step-top advanced-options">
                                     <a href="javascript:elementHideShow('version');" class="vst-text">
-                                        <i class="fas fa-code-branch"></i><b><?php print __('Version');?> &amp; <?php print __('Release');?> <img src="/images/arrow.png"></b>
+                                        <i class="fas fa-code-branch"></i><b><?php print __('Updates');?> <img src="/images/arrow.png"></b>
                                     </a>
                                 </td>
                             </tr>
@@ -164,7 +164,7 @@
                                     <table style="display:<?php if (empty($v_adv)) echo 'none';?> ;" id="version">
                                         <tr>
                                             <td class="vst-text">
-                                                <?php print __('Version') ?>
+                                                <?php print __('Version'); ?>
                                             </td>
                                         </tr>
                                         <tr>
@@ -175,7 +175,7 @@
                                         </tr>                           
                                         <tr>
                                             <td class="vst-text input-label">
-                                                <?php print __('Release') ?>
+                                                <?php print __('Release'); ?>
                                             </td>
                                         </tr>
                                         <tr>
@@ -184,6 +184,26 @@
                                                 <br><br>
                                             </td>
                                         </tr>
+                                        <tr>
+                                            <td class="vst-text input-label">
+                                                <?php print __('Options'); ?>
+                                            </td>
+                                        </tr>
+                                        <tr>
+                                            <td>
+                                                <label><input type="checkbox" size="20" class="vst-checkbox" name="v_upgrade_send_notification_email" <?php if ((isset($_SESSION['UPGRADE_SEND_EMAIL'])) && (!empty($_SESSION['UPGRADE_SEND_EMAIL'])) && ($_SESSION['UPGRADE_SEND_EMAIL'] == "true")) echo "checked=yes" ?>><?php print __('SYSTEM_UPGRADE_SEND_NOTIFICATION_EMAIL');?></label>
+                                            </td>
+                                        </tr>
+                                        <tr>
+                                            <td>
+                                                <label><input type="checkbox" size="20" class="vst-checkbox" name="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=yes" ?>><?php print __('SYSTEM_UPGRADE_SEND_EMAIL_LOG');?></label>
+                                            </td>
+                                        </tr>
+                                        <tr>
+                                            <td>
+                                                <br />
+                                            </td>
+                                        </tr>
                                     </table>
                                 </td>
                             </tr>