You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
122 lines
5.6 KiB
122 lines
5.6 KiB
#!/bin/bash
|
|
|
|
# Hestia Control Panel upgrade script for target version 1.7.0
|
|
|
|
#######################################################################################
|
|
####### Place additional commands below. #######
|
|
#######################################################################################
|
|
####### upgrade_config_set_value only accepts true or false. #######
|
|
####### #######
|
|
####### Pass through information to the end user in case of a issue or problem #######
|
|
####### #######
|
|
####### Use add_upgrade_message "My message here" to include a message #######
|
|
####### in the upgrade notification email. Example: #######
|
|
####### #######
|
|
####### add_upgrade_message "My message here" #######
|
|
####### #######
|
|
####### You can use \n within the string to create new lines. #######
|
|
#######################################################################################
|
|
|
|
# load config because we need to know if proftpd is installed
|
|
|
|
# Includes
|
|
# shellcheck source=/etc/hestiacp/hestia.conf
|
|
source /etc/hestiacp/hestia.conf
|
|
# shellcheck source=/usr/local/hestia/func/main.sh
|
|
source $HESTIA/func/main.sh
|
|
# shellcheck source=/usr/local/hestia/func/ip.sh
|
|
source $HESTIA/func/ip.sh
|
|
# load config file
|
|
source_conf "$HESTIA/conf/hestia.conf"
|
|
|
|
upgrade_config_set_value 'UPGRADE_UPDATE_WEB_TEMPLATES' 'true'
|
|
upgrade_config_set_value 'UPGRADE_UPDATE_DNS_TEMPLATES' 'true'
|
|
upgrade_config_set_value 'UPGRADE_UPDATE_MAIL_TEMPLATES' 'true'
|
|
upgrade_config_set_value 'UPGRADE_REBUILD_USERS' 'true'
|
|
upgrade_config_set_value 'UPGRADE_UPDATE_FILEMANAGER_CONFIG' 'false'
|
|
|
|
# Make sure to sync install quoteshell arg
|
|
if [ "$FILE_MANAGER" = "true" ]; then
|
|
echo "[ * ] Force update filemanager..."
|
|
$HESTIA/bin/v-delete-sys-filemanager quiet
|
|
$HESTIA/bin/v-add-sys-filemanager quiet
|
|
fi
|
|
|
|
packages=$(ls --sort=time $HESTIA/data/packages | grep .pkg)
|
|
echo "[ * ] Update existing packages to support rate limit mail accounts..."
|
|
for package in $packages; do
|
|
if [ -z "$(grep -e 'RATE_LIMIT' $HESTIA/data/packages/$package)" ]; then
|
|
echo "RATE_LIMIT='200'" >> $HESTIA/data/packages/$package
|
|
fi
|
|
done
|
|
|
|
if [ -z "$(grep -e 'condition = ${lookup{$local_part@$domain}lsearch{/etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/aliases}{false}{true}}' /etc/exim4/exim4.conf.template)" ]; then
|
|
for line in $(sed -n '/redirect_router = dnslookup/=' /etc/exim4/exim4.conf.template); do
|
|
testline=$((line - 1))
|
|
newline=$((line + 1))
|
|
if [ "$(awk NR==$testline /etc/exim4/exim4.conf.template)" = " file_transport = local_delivery" ]; then
|
|
# Add new line
|
|
sed -i "$newline i \ \ condition = \${lookup{$local_part@\$domain}lsearch{/etc/exim4/domains/\${lookup{\$domain}dsearch{/etc/exim4/domains/}}/aliases}{false}{true}}" /etc/exim4/exim4.conf.template
|
|
fi
|
|
done
|
|
fi
|
|
|
|
# Allow Email@domain.com for login
|
|
if [ -f "/etc/dovecot/conf.d/10-auth.conf" ]; then
|
|
sed -i "s/auth_username_format = %u/auth_username_format = %Lu/g" /etc/dovecot/conf.d/10-auth.conf
|
|
fi
|
|
|
|
# rename /var/run/xx to /run/
|
|
for file in /etc/dovecot/dovecot.conf /etc/clamav/clamd.conf /etc/exim/exim.conf.template /etc/logrotate.d/apache2 /etc/logrotate.d/nginx /etc/mysql/my.cnf /etc/nginx/nginx.conf; do
|
|
if [ -f "$file" ]; then
|
|
echo "[ * ] Update $file legacy /var/run/ to /run/..."
|
|
sed -i 's|/var/run/|/run/|g' $file
|
|
fi
|
|
done
|
|
# Update any custom php templates
|
|
for file in $HESTIA/data/templates/web/php-fpm/*; do
|
|
echo "[ * ] Update $file legacy /var/run/ to /run/..."
|
|
sed -i 's|/var/run/|/run/|g' $file
|
|
done
|
|
|
|
for file in /etc/php/*/fpm/pool.d/www.conf; do
|
|
echo "[ * ] Update $file legacy /var/run/ to /run/..."
|
|
sed -i 's|/var/run/|/run/|g' $file
|
|
done
|
|
|
|
#update proftpd
|
|
if [ "$FTP_SYSTEM" = 'proftpd' ]; then
|
|
contains_conf_d=$(grep -c "Include /etc/proftpd/conf.d/\*.conf" "/etc/proftpd/proftpd.conf")
|
|
# the line below is for testing only:
|
|
# echo "contains proftpd? $contains_conf_d"
|
|
if [ $contains_conf_d = 0 ]; then
|
|
sed -i 's/Include \/etc\/proftpd\/tls.conf/&\nInclude \/etc\/proftpd\/conf.d\/*.conf/' /etc/proftpd/proftpd.conf
|
|
fi
|
|
$BIN/v-restart-ftp
|
|
fi
|
|
|
|
if echo "$BACKUP_SYSTEM" | grep "google" > /dev/null; then
|
|
echo "[ ! ] Deprecation notice: Backup via Google Cloud has been removed setup backup again via Rclone to reinstate the backup and restore capebilities!"
|
|
add_upgrade_message "Deprecation notice: Backup via Google Cloud has been removed setup backup again via Rclone to reinstate the backup and restore capebilities!"
|
|
fi
|
|
|
|
if [ -f /etc/logrotate.d/httpd-prerotate/awstats ]; then
|
|
echo "[ * ] Update Awstats prerotate to Hestia update method..."
|
|
# Replace awstatst function
|
|
cp -f $HESTIA_INSTALL_DIR/logrotate/httpd-prerotate/awstats /etc/logrotate.d/httpd-prerotate/
|
|
fi
|
|
|
|
if [ "$PHPMYADMIN_KEY" != "" ]; then
|
|
echo "[ * ] Refresh hestia-sso for PMA..."
|
|
$BIN/v-delete-sys-pma-sso quiet
|
|
$BIN/v-add-sys-pma-sso quiet
|
|
fi
|
|
|
|
if [ -f /etc/nginx/nginx.conf ] && [ ! -f /etc/nginx/conf.d/cloudflare.inc ]; then
|
|
echo "[ * ] Enable support for updating Cloudflare Ips..."
|
|
sed -i '/set_real_ip_from/d' /etc/nginx/nginx.conf
|
|
sed -i '/real_ip_header/d' /etc/nginx/nginx.conf
|
|
sed -i 's|# Cloudflare https://www.cloudflare.com/ips|# Cloudflare https://www.cloudflare.com/ips\n include /etc/nginx/conf.d/cloudflare.inc;|g' /etc/nginx/nginx.conf
|
|
# At a later stage a function will run and will load all the new rules
|
|
fi
|