Skip to content

Commit 5d1661b

Browse files
committed
Bring back 0.9.8-29.sh upgrade routine and move specific code parts.
1 parent 63659f4 commit 5d1661b

File tree

2 files changed

+177
-177
lines changed

2 files changed

+177
-177
lines changed

install/upgrade/0.9.8-28.sh

Lines changed: 1 addition & 177 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,9 @@ HESTIA="/usr/local/hestia"
33
HESTIA_BACKUP="/root/hst_upgrade/$(date +%d%m%Y%H%M)"
44
spinner="/-\|"
55

6-
# load hestia.conf
7-
source $HESTIA/conf/hestia.conf
8-
96
# Set version(s)
107
pma_v='4.8.5'
118

12-
# Initialize backup directory
13-
mkdir -p $HESTIA_BACKUP/templates/
14-
mkdir -p $HESTIA_BACKUP/packages/
15-
16-
# load hestia main functions
17-
source /usr/local/hestia/func/main.sh
18-
19-
echo "(*) Upgrading to Hestia Control Panel v$VERSION..."
209
# Upgrade phpMyAdmin
2110
if [ "$DB_SYSTEM" = 'mysql' ]; then
2211
# Display upgrade information
@@ -72,172 +61,7 @@ if [ ! -z "$BACKEND_PORT" ]; then
7261
/usr/local/hestia/bin/v-change-sys-port $BACKEND_PORT
7362
fi
7463

75-
# Generating dhparam.
76-
if [ ! -e /etc/ssl/dhparam.pem ]; then
77-
echo "(*) Enabling HTTPS Strict Transport Security (HSTS) support"
78-
echo -n " This will take some time, please wait..."
79-
openssl dhparam 4096 -out /etc/ssl/dhparam.pem > /dev/null 2>&1 &
80-
BACK_PID=$!
81-
82-
# Check if package installation is done, print a spinner
83-
spin_i=1
84-
while kill -0 $BACK_PID > /dev/null 2>&1 ; do
85-
printf "\b${spinner:spin_i++%${#spinner}:1}"
86-
sleep 0.5
87-
done
88-
89-
# Do a blank echo to get the \n back
90-
echo
91-
92-
# Update dns servers in nginx.conf
93-
dns_resolver=$(cat /etc/resolv.conf | grep -i '^nameserver' | cut -d ' ' -f2 | tr '\r\n' ' ' | xargs)
94-
sed -i "s/1.0.0.1 1.1.1.1/$dns_resolver/g" /etc/nginx/nginx.conf
95-
fi
96-
97-
# Update default page templates
98-
echo "(*) Replacing default templates and packages..."
99-
echo " Existing templates have been backed up to the following location:"
100-
echo " $HESTIA_BACKUP/templates/"
101-
102-
# Back up default package and install latest version
103-
if [ -d $HESTIA/data/packages/ ]; then
104-
cp -f $HESTIA/data/packages/default.pkg $HESTIA_BACKUP/packages/
105-
fi
106-
107-
# Back up old template files and install the latest versions
108-
if [ -d $HESTIA/data/templates/ ]; then
109-
cp -rf $HESTIA/data/templates $HESTIA_BACKUP/
110-
$HESTIA/bin/v-update-web-templates
111-
$HESTIA/bin/v-update-dns-templates
112-
fi
113-
114-
# Remove old Office 365 template as there is a newer version with an updated name
115-
if [ -f $HESTIA/data/templates/dns/o365.tpl ]; then
116-
rm -f $HESTIA/data/templates/dns/o365.tpl
117-
fi
118-
119-
# Back up and remove default index.html if it exists
120-
if [ -f /var/www/html/index.html ]; then
121-
cp -rf /var/www/html/index.html $HESTIA_BACKUP/templates/
122-
rm -rf /var/www/html/index.html
123-
fi
124-
125-
# Configure default success page and set permissions on CSS, JavaScript, and Font dependencies for unassigned hosts
126-
if [ ! -d /var/www/html ]; then
127-
mkdir -p /var/www/html/
128-
fi
129-
130-
if [ ! -d /var/www/document_errors/ ]; then
131-
mkdir -p /var/www/document_errors/
132-
fi
133-
134-
cp -rf $HESTIA/install/deb/templates/web/unassigned/* /var/www/html/
135-
cp -rf $HESTIA/install/deb/templates/web/skel/document_errors/* /var/www/document_errors/
136-
chmod 644 /var/www/html/*
137-
chmod 751 /var/www/html/css
138-
chmod 751 /var/www/html/js
139-
chmod 751 /var/www/html/webfonts
140-
chmod 644 /var/www/document_errors/*
141-
chmod 751 /var/www/document_errors/css
142-
chmod 751 /var/www/document_errors/js
143-
chmod 751 /var/www/document_errors/webfonts
144-
145-
# Correct permissions on CSS, JavaScript, and Font dependencies for default templates
146-
chmod 751 $HESTIA/data/templates/web/skel/document_errors/css
147-
chmod 751 $HESTIA/data/templates/web/skel/document_errors/js
148-
chmod 751 $HESTIA/data/templates/web/skel/document_errors/webfonts
149-
chmod 751 $HESTIA/data/templates/web/skel/public_*html/css
150-
chmod 751 $HESTIA/data/templates/web/skel/public_*html/js
151-
chmod 751 $HESTIA/data/templates/web/skel/public_*html/webfonts
152-
chmod 751 $HESTIA/data/templates/web/suspend/css
153-
chmod 751 $HESTIA/data/templates/web/suspend/js
154-
chmod 751 $HESTIA/data/templates/web/suspend/webfonts
155-
chmod 751 $HESTIA/data/templates/web/unassigned/css
156-
chmod 751 $HESTIA/data/templates/web/unassigned/js
157-
chmod 751 $HESTIA/data/templates/web/unassigned/webfonts
158-
159-
# Add unassigned hosts configuration to nginx and apache2
160-
if [ "$WEB_BACKEND" = "php-fpm" ]; then
161-
echo "(!) Unassigned hosts configuration for Apache not necessary on PHP-FPM installations."
162-
elif [ "$WEB_BACKEND" = "apache2" ]; then
163-
echo "(*) Adding unassigned hosts configuration to apache2..."
164-
if [ -f /usr/local/hestia/data/ips/* ]; then
165-
for ip in /usr/local/hestia/data/ips/*; do
166-
ipaddr=${ip##*/}
167-
rm -f /etc/apache2/conf.d/$ip.conf
168-
cp -f $HESTIA/install/deb/apache2/unassigned.conf /etc/apache2/conf.d/$ipaddr.conf
169-
sed -i 's/directIP/'$ipaddr'/g' /etc/apache2/conf.d/$ipaddr.conf
170-
done
171-
fi
172-
elif [ "$PROXY_SYSTEM" = "nginx" ]; then
173-
echo "(*) Adding unassigned hosts configuration to nginx..."
174-
if [ -f /usr/local/hestia/data/ips/* ]; then
175-
for ip in /usr/local/hestia/data/ips/*; do
176-
ipaddr=${ip##*/}
177-
rm -f /etc/nginx/conf.d/$ip.conf
178-
cp -f $HESTIA/install/deb/nginx/unassigned.inc /etc/nginx/conf.d/$ipaddr.conf
179-
sed -i 's/directIP/'$ipaddr'/g' /etc/nginx/conf.d/$ipaddr.conf
180-
done
181-
fi
182-
fi
183-
184-
# Set Purge to false in roundcube config - https://goo.gl/3Nja3u
185-
echo "(*) Updating Roundcube configuration..."
186-
if [ -f /etc/roundcube/config.inc.php ]; then
187-
sed -i "s/\['flag_for_deletion'] = 'Purge';/\['flag_for_deletion'] = false;/gI" /etc/roundcube/config.inc.php
188-
fi
189-
if [ -f /etc/roundcube/defaults.inc.php ]; then
190-
sed -i "s/\['flag_for_deletion'] = 'Purge';/\['flag_for_deletion'] = false;/gI" /etc/roundcube/defaults.inc.php
191-
fi
192-
if [ -f /etc/roundcube/main.inc.php ]; then
193-
sed -i "s/\['flag_for_deletion'] = 'Purge';/\['flag_for_deletion'] = false;/gI" /etc/roundcube/main.inc.php
194-
fi
195-
196-
# Remove old OS-specific installation files if they exist to free up space
197-
if [ -d $HESTIA/install/ubuntu ]; then
198-
echo "(*) Removing old installation data files for Ubuntu..."
199-
rm -rf $HESTIA/install/ubuntu
200-
fi
201-
if [ -d $HESTIA/install/debian ]; then
202-
echo "(*) Removing old installation data files for Debian..."
203-
rm -rf $HESTIA/install/debian
204-
fi
205-
206-
# Fix dovecot configuration
207-
echo "(*) Updating dovecot IMAP/POP server configuration..."
208-
if [ -f /etc/dovecot/conf.d/15-mailboxes.conf ]; then
209-
# Remove mailboxes configuration if it exists
210-
rm -f /etc/dovecot/conf.d/15-mailboxes.conf
211-
fi
212-
if [ -f /etc/dovecot/dovecot.conf ]; then
213-
# Update dovecot configuration and restart dovecot service
214-
cp -f $HESTIA/install/deb/dovecot/dovecot.conf /etc/dovecot/dovecot.conf
215-
systemctl restart dovecot
216-
sleep 0.5
217-
fi
218-
219-
# Add IMAP system variable to configuration if dovecot is installed
220-
if [ -z "$IMAP_SYSTEM" ]; then
221-
if [ -f /usr/bin/dovecot ]; then
222-
echo "(*) Adding missing IMAP_SYSTEM variable to hestia.conf..."
223-
echo "IMAP_SYSTEM = 'dovecot'" >> $HESTIA/conf/hestia.conf
224-
fi
225-
fi
226-
227-
# Rebuild mailboxes
228-
for user in `ls /usr/local/hestia/data/users/`; do
229-
echo "(*) Rebuilding mail domains for user: $user..."
230-
v-rebuild-mail-domains $user
231-
done
232-
233-
234-
# Remove Webalizer and replace it with awstats as default
235-
echo "(*) Setting awstats as default web statistics backend..."
236-
apt purge webalizer -y > /dev/null 2>&1
237-
sed -i "s/STATS_SYSTEM='webalizer,awstats'/STATS_SYSTEM='awstats'/g" $HESTIA/conf/hestia.conf
238-
23964
# Move clamav to proper location - https://goo.gl/zNuM11
24065
if [ ! -d /usr/local/hestia/web/edit/server/clamav-daemon ]; then
24166
mv /usr/local/hestia/web/edit/server/clamd /usr/local/web/edit/server/clamav-daemon
242-
fi
243-
67+
fi

install/upgrade/0.9.8-29.sh

Lines changed: 176 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,176 @@
1+
#!/bin/bash
2+
3+
# load hestia.conf
4+
source $HESTIA/conf/hestia.conf
5+
6+
# Initialize backup directory
7+
mkdir -p $HESTIA_BACKUP/templates/
8+
mkdir -p $HESTIA_BACKUP/packages/
9+
10+
# load hestia main functions
11+
source /usr/local/hestia/func/main.sh
12+
13+
echo "(*) Upgrading to Hestia Control Panel v$VERSION..."
14+
15+
# Generating dhparam.
16+
if [ ! -e /etc/ssl/dhparam.pem ]; then
17+
echo "(*) Enabling HTTPS Strict Transport Security (HSTS) support"
18+
echo -n " This will take some time, please wait..."
19+
openssl dhparam 4096 -out /etc/ssl/dhparam.pem > /dev/null 2>&1 &
20+
BACK_PID=$!
21+
22+
# Check if package installation is done, print a spinner
23+
spin_i=1
24+
while kill -0 $BACK_PID > /dev/null 2>&1 ; do
25+
printf "\b${spinner:spin_i++%${#spinner}:1}"
26+
sleep 0.5
27+
done
28+
29+
# Do a blank echo to get the \n back
30+
echo
31+
32+
# Update dns servers in nginx.conf
33+
dns_resolver=$(cat /etc/resolv.conf | grep -i '^nameserver' | cut -d ' ' -f2 | tr '\r\n' ' ' | xargs)
34+
sed -i "s/1.0.0.1 1.1.1.1/$dns_resolver/g" /etc/nginx/nginx.conf
35+
fi
36+
37+
# Update default page templates
38+
echo "(*) Replacing default templates and packages..."
39+
echo " Existing templates have been backed up to the following location:"
40+
echo " $HESTIA_BACKUP/templates/"
41+
42+
# Back up default package and install latest version
43+
if [ -d $HESTIA/data/packages/ ]; then
44+
cp -f $HESTIA/data/packages/default.pkg $HESTIA_BACKUP/packages/
45+
fi
46+
47+
# Back up old template files and install the latest versions
48+
if [ -d $HESTIA/data/templates/ ]; then
49+
cp -rf $HESTIA/data/templates $HESTIA_BACKUP/
50+
$HESTIA/bin/v-update-web-templates
51+
$HESTIA/bin/v-update-dns-templates
52+
fi
53+
54+
# Remove old Office 365 template as there is a newer version with an updated name
55+
if [ -f $HESTIA/data/templates/dns/o365.tpl ]; then
56+
rm -f $HESTIA/data/templates/dns/o365.tpl
57+
fi
58+
59+
# Back up and remove default index.html if it exists
60+
if [ -f /var/www/html/index.html ]; then
61+
cp -rf /var/www/html/index.html $HESTIA_BACKUP/templates/
62+
rm -rf /var/www/html/index.html
63+
fi
64+
65+
# Configure default success page and set permissions on CSS, JavaScript, and Font dependencies for unassigned hosts
66+
if [ ! -d /var/www/html ]; then
67+
mkdir -p /var/www/html/
68+
fi
69+
70+
if [ ! -d /var/www/document_errors/ ]; then
71+
mkdir -p /var/www/document_errors/
72+
fi
73+
74+
cp -rf $HESTIA/install/deb/templates/web/unassigned/* /var/www/html/
75+
cp -rf $HESTIA/install/deb/templates/web/skel/document_errors/* /var/www/document_errors/
76+
chmod 644 /var/www/html/*
77+
chmod 751 /var/www/html/css
78+
chmod 751 /var/www/html/js
79+
chmod 751 /var/www/html/webfonts
80+
chmod 644 /var/www/document_errors/*
81+
chmod 751 /var/www/document_errors/css
82+
chmod 751 /var/www/document_errors/js
83+
chmod 751 /var/www/document_errors/webfonts
84+
85+
# Correct permissions on CSS, JavaScript, and Font dependencies for default templates
86+
chmod 751 $HESTIA/data/templates/web/skel/document_errors/css
87+
chmod 751 $HESTIA/data/templates/web/skel/document_errors/js
88+
chmod 751 $HESTIA/data/templates/web/skel/document_errors/webfonts
89+
chmod 751 $HESTIA/data/templates/web/skel/public_*html/css
90+
chmod 751 $HESTIA/data/templates/web/skel/public_*html/js
91+
chmod 751 $HESTIA/data/templates/web/skel/public_*html/webfonts
92+
chmod 751 $HESTIA/data/templates/web/suspend/css
93+
chmod 751 $HESTIA/data/templates/web/suspend/js
94+
chmod 751 $HESTIA/data/templates/web/suspend/webfonts
95+
chmod 751 $HESTIA/data/templates/web/unassigned/css
96+
chmod 751 $HESTIA/data/templates/web/unassigned/js
97+
chmod 751 $HESTIA/data/templates/web/unassigned/webfonts
98+
99+
# Add unassigned hosts configuration to nginx and apache2
100+
if [ "$WEB_BACKEND" = "php-fpm" ]; then
101+
echo "(!) Unassigned hosts configuration for Apache not necessary on PHP-FPM installations."
102+
elif [ "$WEB_BACKEND" = "apache2" ]; then
103+
echo "(*) Adding unassigned hosts configuration to apache2..."
104+
if [ -f /usr/local/hestia/data/ips/* ]; then
105+
for ip in /usr/local/hestia/data/ips/*; do
106+
ipaddr=${ip##*/}
107+
rm -f /etc/apache2/conf.d/$ip.conf
108+
cp -f $HESTIA/install/deb/apache2/unassigned.conf /etc/apache2/conf.d/$ipaddr.conf
109+
sed -i 's/directIP/'$ipaddr'/g' /etc/apache2/conf.d/$ipaddr.conf
110+
done
111+
fi
112+
elif [ "$PROXY_SYSTEM" = "nginx" ]; then
113+
echo "(*) Adding unassigned hosts configuration to nginx..."
114+
if [ -f /usr/local/hestia/data/ips/* ]; then
115+
for ip in /usr/local/hestia/data/ips/*; do
116+
ipaddr=${ip##*/}
117+
rm -f /etc/nginx/conf.d/$ip.conf
118+
cp -f $HESTIA/install/deb/nginx/unassigned.inc /etc/nginx/conf.d/$ipaddr.conf
119+
sed -i 's/directIP/'$ipaddr'/g' /etc/nginx/conf.d/$ipaddr.conf
120+
done
121+
fi
122+
fi
123+
124+
# Set Purge to false in roundcube config - https://goo.gl/3Nja3u
125+
echo "(*) Updating Roundcube configuration..."
126+
if [ -f /etc/roundcube/config.inc.php ]; then
127+
sed -i "s/\['flag_for_deletion'] = 'Purge';/\['flag_for_deletion'] = false;/gI" /etc/roundcube/config.inc.php
128+
fi
129+
if [ -f /etc/roundcube/defaults.inc.php ]; then
130+
sed -i "s/\['flag_for_deletion'] = 'Purge';/\['flag_for_deletion'] = false;/gI" /etc/roundcube/defaults.inc.php
131+
fi
132+
if [ -f /etc/roundcube/main.inc.php ]; then
133+
sed -i "s/\['flag_for_deletion'] = 'Purge';/\['flag_for_deletion'] = false;/gI" /etc/roundcube/main.inc.php
134+
fi
135+
136+
# Remove old OS-specific installation files if they exist to free up space
137+
if [ -d $HESTIA/install/ubuntu ]; then
138+
echo "(*) Removing old installation data files for Ubuntu..."
139+
rm -rf $HESTIA/install/ubuntu
140+
fi
141+
if [ -d $HESTIA/install/debian ]; then
142+
echo "(*) Removing old installation data files for Debian..."
143+
rm -rf $HESTIA/install/debian
144+
fi
145+
146+
# Fix dovecot configuration
147+
echo "(*) Updating dovecot IMAP/POP server configuration..."
148+
if [ -f /etc/dovecot/conf.d/15-mailboxes.conf ]; then
149+
# Remove mailboxes configuration if it exists
150+
rm -f /etc/dovecot/conf.d/15-mailboxes.conf
151+
fi
152+
if [ -f /etc/dovecot/dovecot.conf ]; then
153+
# Update dovecot configuration and restart dovecot service
154+
cp -f $HESTIA/install/deb/dovecot/dovecot.conf /etc/dovecot/dovecot.conf
155+
systemctl restart dovecot
156+
sleep 0.5
157+
fi
158+
159+
# Add IMAP system variable to configuration if dovecot is installed
160+
if [ -z "$IMAP_SYSTEM" ]; then
161+
if [ -f /usr/bin/dovecot ]; then
162+
echo "(*) Adding missing IMAP_SYSTEM variable to hestia.conf..."
163+
echo "IMAP_SYSTEM = 'dovecot'" >> $HESTIA/conf/hestia.conf
164+
fi
165+
fi
166+
167+
# Rebuild mailboxes
168+
for user in `ls /usr/local/hestia/data/users/`; do
169+
echo "(*) Rebuilding mail domains for user: $user..."
170+
v-rebuild-mail-domains $user
171+
done
172+
173+
# Remove Webalizer and replace it with awstats as default
174+
echo "(*) Setting awstats as default web statistics backend..."
175+
apt purge webalizer -y > /dev/null 2>&1
176+
sed -i "s/STATS_SYSTEM='webalizer,awstats'/STATS_SYSTEM='awstats'/g" $HESTIA/conf/hestia.conf

0 commit comments

Comments
 (0)