Skip to content

Commit 9bf85c8

Browse files
author
Kristan Kenney
committed
Merge branch 'main' into feature/system-health-check
2 parents 848df02 + 7ce6813 commit 9bf85c8

File tree

15 files changed

+193
-124
lines changed

15 files changed

+193
-124
lines changed

bin/v-change-sys-config-value

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,12 @@ else
4848
sed -i "s|$key=.*|$key='$value'|g" $HESTIA/conf/hestia.conf
4949
fi
5050

51+
# Sort configuration file in alphabetical order on change
52+
sort $HESTIA/conf/hestia.conf -o /tmp/updconf
53+
mv $HESTIA/conf/hestia.conf $HESTIA/conf/hestia.conf.bak
54+
mv /tmp/updconf $HESTIA/conf/hestia.conf
55+
rm -f $HESTIA/conf/hestia.conf.bak
56+
5157
#----------------------------------------------------------#
5258
# Hestia #
5359
#----------------------------------------------------------#

bin/v-rebuild-users

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
#
66
# example: v-rebuild-users
77
#
8-
# The function all users on the system.
8+
# The function rebuilds user configuration for all users.
99

1010
#----------------------------------------------------------#
1111
# Variable&Function #

install/hst-install-debian.sh

Lines changed: 76 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,26 @@ set_default_port() {
149149
fi
150150
}
151151

152+
# Write configuration KEY/VALUE pair to $HESTIA/conf/hestia.conf
153+
write_config_value() {
154+
local key="$1"
155+
local value="$2"
156+
echo "$key='$value'" >> $HESTIA/conf/hestia.conf
157+
}
158+
159+
# Sort configuration file values
160+
# Write final copy to $HESTIA/conf/hestia.conf for active usage
161+
# Duplicate file to $HESTIA/conf/defaults/hestia.conf to restore known good installation values
162+
sort_config_file(){
163+
sort $HESTIA/conf/hestia.conf -o /tmp/updconf
164+
mv $HESTIA/conf/hestia.conf $HESTIA/conf/hestia.conf.bak
165+
mv /tmp/updconf $HESTIA/conf/hestia.conf
166+
rm -f $HESTIA/conf/hestia.conf.bak
167+
if [ ! -d "$HESTIA/conf/defaults/" ]; then
168+
mkdir -p "$HESTIA/conf/defaults/"
169+
fi
170+
cp $HESTIA/conf/hestia.conf $HESTIA/conf/defaults/hestia.conf
171+
}
152172

153173
#----------------------------------------------------------#
154174
# Verifications #
@@ -981,39 +1001,39 @@ chmod 660 $HESTIA/conf/hestia.conf
9811001

9821002
# Web stack
9831003
if [ "$apache" = 'yes' ] && [ "$nginx" = 'no' ] ; then
984-
echo "WEB_SYSTEM='apache2'" >> $HESTIA/conf/hestia.conf
985-
echo "WEB_RGROUPS='www-data'" >> $HESTIA/conf/hestia.conf
986-
echo "WEB_PORT='80'" >> $HESTIA/conf/hestia.conf
987-
echo "WEB_SSL_PORT='443'" >> $HESTIA/conf/hestia.conf
988-
echo "WEB_SSL='mod_ssl'" >> $HESTIA/conf/hestia.conf
989-
echo "STATS_SYSTEM='awstats'" >> $HESTIA/conf/hestia.conf
1004+
write_config_value "WEB_SYSTEM" "apache2"
1005+
write_config_value "WEB_RGROUPS" "www-data"
1006+
write_config_value "WEB_PORT" "80"
1007+
write_config_value "WEB_SSL_PORT" "443"
1008+
write_config_value "WEB_SSL" "mod_ssl"
1009+
write_config_value "STATS_SYSTEM" "awstats"
9901010
fi
9911011
if [ "$apache" = 'yes' ] && [ "$nginx" = 'yes' ] ; then
992-
echo "WEB_SYSTEM='apache2'" >> $HESTIA/conf/hestia.conf
993-
echo "WEB_RGROUPS='www-data'" >> $HESTIA/conf/hestia.conf
994-
echo "WEB_PORT='8080'" >> $HESTIA/conf/hestia.conf
995-
echo "WEB_SSL_PORT='8443'" >> $HESTIA/conf/hestia.conf
996-
echo "WEB_SSL='mod_ssl'" >> $HESTIA/conf/hestia.conf
997-
echo "PROXY_SYSTEM='nginx'" >> $HESTIA/conf/hestia.conf
998-
echo "PROXY_PORT='80'" >> $HESTIA/conf/hestia.conf
999-
echo "PROXY_SSL_PORT='443'" >> $HESTIA/conf/hestia.conf
1000-
echo "STATS_SYSTEM='awstats'" >> $HESTIA/conf/hestia.conf
1012+
write_config_value "WEB_SYSTEM" "apache2"
1013+
write_config_value "WEB_RGROUPS" "www-data"
1014+
write_config_value "WEB_PORT" "8080"
1015+
write_config_value "WEB_SSL_PORT" "8443"
1016+
write_config_value "WEB_SSL" "mod_ssl"
1017+
write_config_value "PROXY_SYSTEM" "nginx"
1018+
write_config_value "PROXY_PORT" "80"
1019+
write_config_value "PROXY_SSL_PORT" "443"
1020+
write_config_value "STATS_SYSTEM" "awstats"
10011021
fi
10021022
if [ "$apache" = 'no' ] && [ "$nginx" = 'yes' ]; then
1003-
echo "WEB_SYSTEM='nginx'" >> $HESTIA/conf/hestia.conf
1004-
echo "WEB_PORT='80'" >> $HESTIA/conf/hestia.conf
1005-
echo "WEB_SSL_PORT='443'" >> $HESTIA/conf/hestia.conf
1006-
echo "WEB_SSL='openssl'" >> $HESTIA/conf/hestia.conf
1007-
echo "STATS_SYSTEM='awstats'" >> $HESTIA/conf/hestia.conf
1023+
write_config_value "WEB_SYSTEM" "nginx"
1024+
write_config_value "WEB_PORT" "80"
1025+
write_config_value "WEB_SSL_PORT" "443"
1026+
write_config_value "WEB_SSL" "openssl"
1027+
write_config_value "STATS_SYSTEM" "awstats"
10081028
fi
10091029

10101030
if [ "$release" -ge 9 ] || [ "$multiphp" = 'yes' ]; then
10111031
if [ "$phpfpm" = 'yes' ]; then
1012-
echo "WEB_BACKEND='php-fpm'" >> $HESTIA/conf/hestia.conf
1032+
write_config_value "WEB_BACKEND" "php-fpm"
10131033
fi
10141034
else
10151035
if [ "$phpfpm" = 'yes' ]; then
1016-
echo "WEB_BACKEND='php5-fpm'" >> $HESTIA/conf/hestia.conf
1036+
write_config_value "WEB_BACKEND" "php5-fpm"
10171037
fi
10181038
fi
10191039

@@ -1032,81 +1052,81 @@ if [ ! -z "$installed_db_types" ]; then
10321052
sort -r -u |\
10331053
sed "/^$/d"|\
10341054
sed ':a;N;$!ba;s/\n/,/g')
1035-
echo "DB_SYSTEM='$db'" >> $HESTIA/conf/hestia.conf
1055+
write_config_value "DB_SYSTEM" "$db"
10361056
fi
10371057

10381058
# FTP stack
10391059
if [ "$vsftpd" = 'yes' ]; then
1040-
echo "FTP_SYSTEM='vsftpd'" >> $HESTIA/conf/hestia.conf
1060+
write_config_value "FTP_SYSTEM" "vsftpd"
10411061
fi
10421062
if [ "$proftpd" = 'yes' ]; then
1043-
echo "FTP_SYSTEM='proftpd'" >> $HESTIA/conf/hestia.conf
1063+
write_config_value "FTP_SYSTEM" "proftpd"
10441064
fi
10451065

10461066
# DNS stack
10471067
if [ "$named" = 'yes' ]; then
1048-
echo "DNS_SYSTEM='bind9'" >> $HESTIA/conf/hestia.conf
1068+
write_config_value "DNS_SYSTEM" "bind9"
10491069
fi
10501070

10511071
# Mail stack
10521072
if [ "$exim" = 'yes' ]; then
1053-
echo "MAIL_SYSTEM='exim4'" >> $HESTIA/conf/hestia.conf
1073+
write_config_value "MAIL_SYSTEM" "exim4"
10541074
if [ "$clamd" = 'yes' ]; then
1055-
echo "ANTIVIRUS_SYSTEM='clamav-daemon'" >> $HESTIA/conf/hestia.conf
1075+
write_config_value "ANTIVIRUS_SYSTEM" "clamav-daemon"
10561076
fi
10571077
if [ "$spamd" = 'yes' ]; then
1058-
echo "ANTISPAM_SYSTEM='spamassassin'" >> $HESTIA/conf/hestia.conf
1078+
write_config_value "ANTISPAM_SYSTEM" "spamassassin"
10591079
fi
10601080
if [ "$dovecot" = 'yes' ]; then
1061-
echo "IMAP_SYSTEM='dovecot'" >> $HESTIA/conf/hestia.conf
1081+
write_config_value "IMAP_SYSTEM" "dovecot"
10621082
fi
10631083
fi
10641084

10651085
# Cron daemon
1066-
echo "CRON_SYSTEM='cron'" >> $HESTIA/conf/hestia.conf
1086+
write_config_value "CRON_SYSTEM" "cron"
10671087

10681088
# Firewall stack
10691089
if [ "$iptables" = 'yes' ]; then
1070-
echo "FIREWALL_SYSTEM='iptables'" >> $HESTIA/conf/hestia.conf
1090+
write_config_value "FIREWALL_SYSTEM" "iptables"
10711091
fi
10721092
if [ "$iptables" = 'yes' ] && [ "$fail2ban" = 'yes' ]; then
1073-
echo "FIREWALL_EXTENSION='fail2ban'" >> $HESTIA/conf/hestia.conf
1093+
write_config_value "FIREWALL_EXTENSION" "fail2ban"
10741094
fi
10751095

10761096
# Disk quota
10771097
if [ "$quota" = 'yes' ]; then
1078-
echo "DISK_QUOTA='yes'" >> $HESTIA/conf/hestia.conf
1098+
write_config_value "DISK_QUOTA" "yes"
10791099
else
1080-
echo "DISK_QUOTA='no'" >> $HESTIA/conf/hestia.conf
1100+
write_config_value "DISK_QUOTA" "no"
10811101
fi
10821102

10831103
# Backups
1084-
echo "BACKUP_SYSTEM='local'" >> $HESTIA/conf/hestia.conf
1085-
echo "BACKUP_GZIP='4'" >> $HESTIA/conf/hestia.conf
1086-
echo "BACKUP_MODE='zstd'" >> $HESTIA/conf/hestia.conf
1104+
write_config_value "BACKUP_SYSTEM" "local"
1105+
write_config_value "BACKUP_GZIP" "4"
1106+
write_config_value "BACKUP_MODE" "zstd"
10871107

10881108
# Language
1089-
echo "LANGUAGE='$lang'" >> $HESTIA/conf/hestia.conf
1109+
write_config_value "LANGUAGE" "$lang"
10901110

10911111
# Login in screen
1092-
echo "LOGIN_STYLE='default'" >> $HESTIA/conf/hestia.conf
1112+
write_config_value "LOGIN_STYLE" "default"
10931113

10941114
# Theme
1095-
echo "THEME='dark'" >> $HESTIA/conf/hestia.conf
1115+
write_config_value "THEME" "dark"
10961116

10971117
# Inactive session timeout
1098-
echo "INACTIVE_SESSION_TIMEOUT='60'" >> $HESTIA/conf/hestia.conf
1118+
write_config_value "INACTIVE_SESSION_TIMEOUT" "60"
10991119

11001120
# Do not allow users to create subdomains when they don't own the domain
1101-
echo "ENFORCE_SUBDOMAIN_OWNERSHIP='yes'" >> $HESTIA/conf/hestia.conf
1121+
write_config_value "ENFORCE_SUBDOMAIN_OWNERSHIP" "yes"
11021122

11031123
# Version & Release Branch
1104-
echo "VERSION='${HESTIA_INSTALL_VER}'" >> $HESTIA/conf/hestia.conf
1105-
echo "RELEASE_BRANCH='release'" >> $HESTIA/conf/hestia.conf
1124+
write_config_value "VERSION" "${HESTIA_INSTALL_VER}"
1125+
write_config_value "RELEASE_BRANCH" "release"
11061126

11071127
# Email notifications after upgrade
1108-
echo "UPGRADE_SEND_EMAIL='false'" >> $HESTIA/conf/hestia.conf
1109-
echo "UPGRADE_SEND_EMAIL_LOG='true'" >> $HESTIA/conf/hestia.conf
1128+
write_config_value "UPGRADE_SEND_EMAIL" "true"
1129+
write_config_value "UPGRADE_SEND_EMAIL_LOG" "false"
11101130

11111131
# Installing hosting packages
11121132
cp -rf $HESTIA_INSTALL_DIR/packages $HESTIA/data/
@@ -1419,7 +1439,7 @@ if [ "$mysql" = 'yes' ]; then
14191439
rm -fr phpMyAdmin-$pma_v-all-languages
14201440
rm -f phpMyAdmin-$pma_v-all-languages.tar.gz
14211441

1422-
echo "DB_PMA_ALIAS='phpmyadmin'" >> $HESTIA/conf/hestia.conf
1442+
write_config_value "DB_PMA_ALIAS" "phpmyadmin"
14231443
$HESTIA/bin/v-change-sys-db-alias 'pma' "phpmyadmin"
14241444

14251445
# Special thanks to Pavel Galkin (https://skurudo.ru)
@@ -1445,7 +1465,7 @@ if [ "$postgresql" = 'yes' ]; then
14451465
fi
14461466
cp -f $HESTIA_INSTALL_DIR/pga/config.inc.php /etc/phppgadmin/
14471467

1448-
echo "DB_PGA_ALIAS='phppgadmin'" >> $HESTIA/conf/hestia.conf
1468+
write_config_value "DB_PGA_ALIAS" "phppgadmin"
14491469
$HESTIA/bin/v-change-sys-db-alias 'pga' "phppgadmin"
14501470
fi
14511471

@@ -1637,16 +1657,16 @@ echo "[ * ] Install Roundcube..."
16371657

16381658
if [ "$mysql" == 'yes' ] && [ "$dovecot" == "yes" ]; then
16391659
$HESTIA/bin/v-add-sys-roundcube
1640-
echo "WEBMAIL_ALIAS='webmail'" >> $HESTIA/conf/hestia.conf
1660+
write_config_value "WEBMAIL_ALIAS" "webmail"
16411661
fi
16421662

16431663
#----------------------------------------------------------#
16441664
# Configure API #
16451665
#----------------------------------------------------------#
16461666

16471667
if [ "$api" = "yes" ]; then
1648-
echo "API='yes'" >> $HESTIA/conf/hestia.conf
1649-
echo "API_ALLOWED_IP=''" >> $HESTIA/conf/hestia.conf
1668+
write_config_value "API" "yes"
1669+
write_config_value "API_ALLOWED_IP" ""
16501670
else
16511671
$HESTIA/bin/v-change-sys-api disable
16521672
fi
@@ -1869,4 +1889,8 @@ if [ "$interactive" = 'yes' ]; then
18691889
fi
18701890
fi
18711891

1892+
# Clean-up
1893+
# Sort final configuration file
1894+
sort_config_file
1895+
18721896
# EOF

0 commit comments

Comments
 (0)