Skip to content

Commit 2e35514

Browse files
author
Kristan Kenney
committed
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.
1 parent 810f0a7 commit 2e35514

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

59 files changed

+973
-384
lines changed

CHANGELOG.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,15 @@ All notable changes to this project will be documented in this file.
33

44
## [CURRENT] - Development
55
### Features
6-
- Use stronger ciphers and Disable TLS v1.1 for vsftpd.
6+
- The software update procedure will now perform a system health check prior to installation and repair missing environment variables.
7+
- Installs from branches/versions other than those from `release` will provide verbose output and logging to aid in debugging and development.
8+
- Administrators now have control over software update notifications through the following settings in `$HESTIA/conf/hestia.conf`:
9+
- `UPGRADE_SEND_EMAIL` = Sends an email notification to admin email address
10+
- `UPGRADE_SEND_EMAIL_LOG` = Sends installation log output to admin email address
11+
12+
### Bugfixes
13+
- Fixed an issue where template files were not correctly backed up during upgrades.
14+
- Improved version detection during upgrades.
715

816
### Bugfixes
917
- Create mailhelo.conf if it doesnt exist to prevent a error message during grep.

bin/v-list-sys-config

Lines changed: 37 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
# Argument definition
1313
format=${1-shell}
1414

15+
source $HESTIA/func/main.sh
1516
source $HESTIA/conf/hestia.conf
1617

1718
# JSON list function
@@ -45,6 +46,8 @@ json_list() {
4546
"REPOSITORY": "'$REPOSITORY'",
4647
"VERSION": "'$VERSION'",
4748
"RELEASE_BRANCH": "'$RELEASE_BRANCH'",
49+
"UPGRADE_SEND_EMAIL": "'$UPGRADE_SEND_EMAIL'",
50+
"UPGRADE_SEND_EMAIL_LOG": "'$UPGRADE_SEND_EMAIL_LOG'",
4851
"DEMO_MODE": "'$DEMO_MODE'",
4952
"THEME": "'$THEME'",
5053
"LANGUAGE": "'$LANGUAGE'",
@@ -61,24 +64,24 @@ json_list() {
6164
# Shell list
6265
shell_list() {
6366
if [ ! -z "$WEB_SYSTEM" ]; then
64-
echo "WEB Server: $WEB_SYSTEM:$WEB_PORT ($WEB_RGROUPS)"
65-
echo "SSL Support: $WEB_SSL:$WEB_SSL_PORT"
67+
echo "Web Server: $WEB_SYSTEM:$WEB_PORT ($WEB_RGROUPS)"
68+
echo "SSL Support: $WEB_SSL:$WEB_SSL_PORT"
6669
fi
6770
if [ ! -z "$WEB_BACKEND" ]; then
68-
echo "WEB Backend: $WEB_BACKEND"
71+
echo "Web Backend: $WEB_BACKEND"
6972
fi
7073
if [ ! -z "$PROXY_SYSTEM" ]; then
71-
echo "Proxy Server: $PROXY_SYSTEM:$PROXY_PORT"
72-
echo "Proxy SSL: $PROXY_SYSTEM:$PROXY_SSL_PORT"
74+
echo "Proxy Server: $PROXY_SYSTEM:$PROXY_PORT"
75+
echo "Proxy SSL: $PROXY_SYSTEM:$PROXY_SSL_PORT"
7376
fi
7477
if [ ! -z "$STATS_SYSTEM" ]; then
75-
echo "Web Stats: ${STATS_SYSTEM//,/, }"
78+
echo "Statistics Engine: ${STATS_SYSTEM//,/, }"
7679
fi
7780
if [ ! -z "$FTP_SYSTEM" ]; then
78-
echo "FTP Server: $FTP_SYSTEM"
81+
echo "FTP Server: $FTP_SYSTEM"
7982
fi
8083
if [ ! -z "$MAIL_SYSTEM" ]; then
81-
echo -n "Mail Server: $MAIL_SYSTEM"
84+
echo -n "Mail Server: $MAIL_SYSTEM"
8285
if [ ! -z "$IMAP_SYSTEM" ]; then
8386
echo -n " + $IMAP_SYSTEM"
8487
fi
@@ -90,56 +93,56 @@ shell_list() {
9093
fi
9194
echo
9295
if [ ! -z "$WEBMAIL_ALIAS" ]; then
93-
echo "Webmail alias: $WEBMAIL_ALIAS"
96+
echo "Webmail alias: $WEBMAIL_ALIAS"
9497
fi
9598
fi
9699
if [ ! -z "$DB_SYSTEM" ]; then
97-
echo "Database: ${DB_SYSTEM//,/, }"
100+
echo "Database: ${DB_SYSTEM//,/, }"
98101
if [ ! -z "$DB_PMA_ALIAS" ]; then
99-
echo "PMA ALIAS: $DB_PMA_ALIAS"
102+
echo "phpMyAdmin Alias: $DB_PMA_ALIAS"
100103
fi
101104
if [ ! -z "$DB_PGA_ALIAS" ]; then
102-
echo "PGA ALIAS: $DB_PGA_ALIAS"
105+
echo "phpPgAdmin Alias: $DB_PGA_ALIAS"
103106
fi
104107
fi
105108
if [ ! -z "$DNS_SYSTEM" ]; then
106-
echo -n "DNS server: $DNS_SYSTEM"
109+
echo -n "DNS Server: $DNS_SYSTEM"
107110
if [ ! -z "$DNS_CLUSTER" ]; then
108111
echo -n " (cluster)"
109112
fi
110113
echo
111114
fi
112115
if [ ! -z "$CRON_SYSTEM" ]; then
113-
echo "CRON: $CRON_SYSTEM"
116+
echo "CRON daemon: $CRON_SYSTEM"
114117
fi
115118
if [ ! -z "$FIREWALL_SYSTEM" ]; then
116-
echo -n "Firewall: $FIREWALL_SYSTEM"
119+
echo -n "Firewall: $FIREWALL_SYSTEM"
117120
if [ ! -z "$FIREWALL_EXTENSION" ]; then
118121
echo -n "+ $FIREWALL_EXTENSION"
119122
fi
120123
echo
121124
fi
122125
if [ ! -z "$BACKUP_SYSTEM" ]; then
123-
echo "Backups: ${BACKUP_SYSTEM//,/, }"
124-
if [ ! -z "$BACKUP" ]; then
125-
echo "Backup Dir: $BACKUP"
126-
fi
126+
echo "Backups: ${BACKUP_SYSTEM//,/, }"
127+
echo "Backup Directory: $BACKUP"
127128
fi
128129
if [ ! -z "$DISK_QUOTA" ]; then
129-
echo "Disk Quota: $DISK_QUOTA"
130+
echo "Disk Quota enabled: $DISK_QUOTA"
130131
fi
131132
if [ ! -z "$LANGUAGE" ] && [ "$LANGUAGE" != 'en' ]; then
132-
echo "Language: $LANGUAGE"
133+
echo "System Language: $LANGUAGE"
133134
fi
134-
echo "Version: $VERSION"
135+
echo "Version: $VERSION"
135136
if [ ! -z "$DEMO_MODE" ]; then
136-
echo "Demo Mode: $DEMO_MODE"
137+
echo "Demo Mode: $DEMO_MODE"
137138
fi
138139
if [ ! -z "$FILE_MANAGER" ]; then
139-
echo "File Manager: $FILE_MANAGER"
140+
echo "File Manager enabled: $FILE_MANAGER"
140141
fi
141-
echo "Release Branch: $RELEASE_BRANCH"
142-
echo "Theme: $THEME"
142+
echo "Release Branch: $RELEASE_BRANCH"
143+
echo "Theme: $THEME"
144+
echo "Updates: Notify by email: $UPGRADE_SEND_EMAIL"
145+
echo "Updates: Email install log: $UPGRADE_SEND_EMAIL_LOG"
143146
}
144147

145148
# PLAIN list function
@@ -150,8 +153,9 @@ plain_list() {
150153
echo -ne "$ANTIVIRUS_SYSTEM\t$ANTISPAM_SYSTEM\t$DB_SYSTEM\t"
151154
echo -ne "$DNS_SYSTEM\t$DNS_CLUSTER\t$STATS_SYSTEM\t$BACKUP_SYSTEM\t"
152155
echo -ne "$CRON_SYSTEM\t$DISK_QUOTA\t$FIREWALL_SYSTEM\t$FIREWALL_EXTENSION\t"
153-
echo -ne "$FILE_MANAGER\t$REPOSITORY\t$VERSION\t$DEMO_MODE\t$RELEASE_BRANCH\t$THEME\t"
154-
echo -e "$LANGUAGE\t$BACKUP_GZIP\t$BACKUP\t$WEBMAIL_ALIAS\t$DB_PMA_URL\t$DB_PGA_URL"
156+
echo -ne "$FILE_MANAGER\t$REPOSITORY\t$VERSION\t$DEMO_MODE\t$RELEASE_BRANCH\t"
157+
echo -ne "$UPGRADE_SEND_EMAIL\t$UPGRADE_SEND_EMAIL_LOG\t$THEME\t$LANGUAGE\t$BACKUP_GZIP\t"
158+
echo -e "$BACKUP\t$WEBMAIL_ALIAS\t$DB_PMA_URL\t$DB_PGA_URL"
155159
}
156160

157161

@@ -164,7 +168,9 @@ csv_list() {
164168
echo -n "'DNS_SYSTEM','DNS_CLUSTER','STATS_SYSTEM','BACKUP_SYSTEM',"
165169
echo -n "'CRON_SYSTEM','DISK_QUOTA','FIREWALL_SYSTEM',"
166170
echo -n "'FIREWALL_EXTENSION','FILE_MANAGER','REPOSITORY',"
167-
echo -n "'VERSION','LANGUAGE','BACKUP_GZIP','BACKUP','WEBMAIL_ALIAS',"
171+
echo -n "'VERSION','DEMO_MODE','RELEASE_BRANCH',"
172+
echo -n "'UPGRADE_SEND_EMAIL','UPGRADE_SEND_EMAIL_LOG',"
173+
echo -n "'THEME', 'LANGUAGE','BACKUP_GZIP','BACKUP','WEBMAIL_ALIAS',"
168174
echo -n "'DB_PMA_ALIAS','DB_PGA_ALIAS'"
169175
echo
170176
echo -n "'$WEB_SYSTEM','$WEB_RGROUPS','$WEB_PORT','$WEB_SSL',"
@@ -173,7 +179,8 @@ csv_list() {
173179
echo -n "'$ANTIVIRUS_SYSTEM','$ANTISPAM_SYSTEM','$DB_SYSTEM','$DNS_SYSTEM',"
174180
echo -n "'$DNS_CLUSTER','$STATS_SYSTEM','$BACKUP_SYSTEM','$CRON_SYSTEM',"
175181
echo -n "'$DISK_QUOTA','$FIREWALL_SYSTEM','$FIREWALL_EXTENSION','$FILE_MANAGER',"
176-
echo -n "'$REPOSITORY', '$VERSION','$DEMO_MODE','$RELEASE_BRANCH','$THEME','$LANGUAGE',"
182+
echo -n "'$REPOSITORY', '$VERSION','$DEMO_MODE','$RELEASE_BRANCH',"
183+
echo -n "'$UPGRADE_SEND_EMAIL','$UPGRADE_SEND_EMAIL_LOG','$THEME','$LANGUAGE',"
177184
echo -n "'$BACKUP_GZIP','$BACKUP','$WEBMAIL_ALIAS','$DB_PMA_URL','$DB_PGA_URL'"
178185
echo
179186
}

func/main.sh

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,25 @@ E_RRD=18
4343
E_UPDATE=19
4444
E_RESTART=20
4545

46+
# Detect operating system
47+
detect_os() {
48+
if [ -e "/etc/os-release" ]; then
49+
get_os_type=$(grep "^ID=" /etc/os-release | cut -f 2 -d '=')
50+
if [ "$get_os_type" = "ubuntu" ]; then
51+
if [ -e '/usr/bin/lsb_release' ]; then
52+
OS_VERSION="$(lsb_release -s -r)"
53+
OS_TYPE='Ubuntu'
54+
fi
55+
elif [ "$get_os_type" = "debian" ]; then
56+
OS_TYPE='Debian'
57+
OS_VERSION=$(cat /etc/debian_version|grep -o "[0-9]\{1,2\}"|head -n1)
58+
fi
59+
else
60+
OS_TYPE="Unsupported OS"
61+
OS_VERSION="Unknown"
62+
fi
63+
}
64+
4665
# Generate time stamp
4766
new_timestamp() {
4867
time_n_date=$(date +'%T %F')

0 commit comments

Comments
 (0)