Added fixes for rpm based system usage

This commit is contained in:
Alexey Berezhok
2024-04-14 22:48:16 +03:00
parent 68a01be7c3
commit 8bcf0d1d01
46 changed files with 351 additions and 118 deletions

View File

@@ -249,6 +249,12 @@ prepare_web_domain_values() {
# Add web config
add_web_config() {
# Check if folder already exists
if [ "$1" = "httpd" ]; then
confd="conf.h.d"
else
confd="conf.d"
fi
if [ ! -d "$HOMEDIR/$user/conf/web/$domain" ]; then
mkdir -p "$HOMEDIR/$user/conf/web/$domain/"
fi
@@ -309,8 +315,8 @@ add_web_config() {
chmod 640 $conf
if [[ "$2" =~ stpl$ ]]; then
rm -f /etc/$1/conf.d/domains/$domain.ssl.conf
ln -s $conf /etc/$1/conf.d/domains/$domain.ssl.conf
rm -f /etc/$1/$confd/domains/$domain.ssl.conf
ln -s $conf /etc/$1/$confd/domains/$domain.ssl.conf
# Rename/Move extra SSL config files
find=$(find $HOMEDIR/$user/conf/web/*.$domain.org* 2> /dev/null)
@@ -326,8 +332,8 @@ add_web_config() {
fi
done
else
rm -f /etc/$1/conf.d/domains/$domain.conf
ln -s $conf /etc/$1/conf.d/domains/$domain.conf
rm -f /etc/$1/$confd/domains/$domain.conf
ln -s $conf /etc/$1/$confd/domains/$domain.conf
# Rename/Move extra config files
find=$(find $HOMEDIR/$user/conf/web/*.$domain.org* 2> /dev/null)
for f in $find; do
@@ -394,6 +400,11 @@ replace_web_config() {
# Delete web configuration
del_web_config() {
if [ "$1" = "httpd" ]; then
confd="conf.h.d"
else
confd="conf.d"
fi
conf="$HOMEDIR/$user/conf/web/$domain/$1.conf"
local confname="$domain.conf"
if [[ "$2" =~ stpl$ ]]; then
@@ -410,17 +421,17 @@ del_web_config() {
rm -f $legacyconf
# Remove old global includes file
rm -f /etc/$1/conf.d/hestia.conf
rm -f /etc/$1/$confd/hestia.conf
fi
# Remove domain configuration files and clean up symbolic links
rm -f "$conf"
if [ -n "$WEB_SYSTEM" ] && [ "$WEB_SYSTEM" = "$1" ]; then
rm -f "/etc/$WEB_SYSTEM/conf.d/domains/$confname"
rm -f "/etc/$WEB_SYSTEM/$confd/domains/$confname"
fi
if [ -n "$PROXY_SYSTEM" ] && [ "$PROXY_SYSTEM" = "$1" ]; then
rm -f "/etc/$PROXY_SYSTEM/conf.d/domains/$confname"
rm -f "/etc/$PROXY_SYSTEM/$confd/domains/$confname"
fi
}
@@ -787,6 +798,16 @@ add_mail_ssl_config() {
# Delete SSL support for mail domain
del_mail_ssl_config() {
if [ "$WEB_SYSTEM" = "httpd" ]; then
confd="conf.h.d"
else
confd="conf.d"
fi
if [ "$PROXY_SYSTEM" = "httpd" ]; then
pconfd="conf.h.d"
else
pconfd="conf.d"
fi
# Check to prevent accidental removal of mismatched certificate
wildcard_domain="\\*.$(echo "$domain" | cut -f 1 -d . --complement)"
mail_cert_match=$($BIN/v-list-mail-domain-ssl $user $domain | awk '/SUBJECT|ALIASES/' | grep -wE " $domain| $wildcard_domain")
@@ -799,8 +820,8 @@ del_mail_ssl_config() {
# Remove SSL vhost configuration
rm -f $HOMEDIR/$user/conf/mail/$domain/*.*ssl.conf
rm -f /etc/$WEB_SYSTEM/conf.d/domains/$WEBMAIL_ALIAS.$domain.ssl.conf
rm -f /etc/$PROXY_SYSTEM/conf.d/domains/$WEBMAIL_ALIAS.$domain.ssl.conf
rm -f /etc/$WEB_SYSTEM/$confd/domains/$WEBMAIL_ALIAS.$domain.ssl.conf
rm -f /etc/$PROXY_SYSTEM/$pconfd/domains/$WEBMAIL_ALIAS.$domain.ssl.conf
# Remove SSL certificates
rm -f $HOMEDIR/$user/conf/mail/$domain/ssl/*
@@ -821,6 +842,11 @@ del_mail_ssl_certificates() {
# Add webmail config
add_webmail_config() {
if [ "$1" = "httpd" ]; then
confd="conf.h.d"
else
confd="conf.d"
fi
mkdir -p "$HOMEDIR/$user/conf/mail/$domain"
conf="$HOMEDIR/$user/conf/mail/$domain/$1.conf"
if [[ "$2" =~ stpl$ ]]; then
@@ -883,13 +909,13 @@ add_webmail_config() {
if [[ "$2" =~ stpl$ ]]; then
if [ -n "$WEB_SYSTEM" ]; then
forcessl="$HOMEDIR/$user/conf/mail/$domain/$WEB_SYSTEM.forcessl.conf"
rm -f /etc/$1/conf.d/domains/$WEBMAIL_ALIAS.$domain.ssl.conf
ln -s $conf /etc/$1/conf.d/domains/$WEBMAIL_ALIAS.$domain.ssl.conf
rm -f /etc/$1/$confd/domains/$WEBMAIL_ALIAS.$domain.ssl.conf
ln -s $conf /etc/$1/$confd/domains/$WEBMAIL_ALIAS.$domain.ssl.conf
fi
if [ -n "$PROXY_SYSTEM" ]; then
forcessl="$HOMEDIR/$user/conf/mail/$domain/$PROXY_SYSTEM.forcessl.conf"
rm -f /etc/$1/conf.d/domains/$WEBMAIL_ALIAS.$domain.ssl.conf
ln -s $conf /etc/$1/conf.d/domains/$WEBMAIL_ALIAS.$domain.ssl.conf
rm -f /etc/$1/$confd/domains/$WEBMAIL_ALIAS.$domain.ssl.conf
ln -s $conf /etc/$1/$confd/domains/$WEBMAIL_ALIAS.$domain.ssl.conf
fi
# Add rewrite rules to force HTTPS/SSL connections
@@ -904,12 +930,12 @@ add_webmail_config() {
find $HOMEDIR/$user/conf/mail/ -maxdepth 1 -type f \( -name "$domain.*" -o -name "ssl.$domain.*" -o -name "*nginx.$domain.*" \) -exec rm {} \;
else
if [ -n "$WEB_SYSTEM" ]; then
rm -f /etc/$1/conf.d/domains/$WEBMAIL_ALIAS.$domain.conf
ln -s $conf /etc/$1/conf.d/domains/$WEBMAIL_ALIAS.$domain.conf
rm -f /etc/$1/$confd/domains/$WEBMAIL_ALIAS.$domain.conf
ln -s $conf /etc/$1/$confd/domains/$WEBMAIL_ALIAS.$domain.conf
fi
if [ -n "$PROXY_SYSTEM" ]; then
rm -f /etc/$1/conf.d/domains/$WEBMAIL_ALIAS.$domain.conf
ln -s $conf /etc/$1/conf.d/domains/$WEBMAIL_ALIAS.$domain.conf
rm -f /etc/$1/$confd/domains/$WEBMAIL_ALIAS.$domain.conf
ln -s $conf /etc/$1/$confd/domains/$WEBMAIL_ALIAS.$domain.conf
fi
# Clear old configurations
find $HOMEDIR/$user/conf/mail/ -maxdepth 1 -type f \( -name "$domain.*" \) -exec rm {} \;
@@ -918,27 +944,47 @@ add_webmail_config() {
# Delete webmail support
del_webmail_config() {
if [ "$WEB_SYSTEM" = "httpd" ]; then
confd="conf.h.d"
else
confd="conf.d"
fi
if [ "$PROXY_SYSTEM" = "httpd" ]; then
pconfd="conf.h.d"
else
pconfd="conf.d"
fi
if [ -n "$WEB_SYSTEM" ]; then
rm -f $HOMEDIR/$user/conf/mail/$domain/$WEB_SYSTEM.conf
rm -f /etc/$WEB_SYSTEM/conf.d/domains/$WEBMAIL_ALIAS.$domain.conf
rm -f $HOMEDIR/$user/$confd/mail/$domain/$WEB_SYSTEM.conf
rm -f /etc/$WEB_SYSTEM/$confd/domains/$WEBMAIL_ALIAS.$domain.conf
fi
if [ -n "$PROXY_SYSTEM" ]; then
rm -f $HOMEDIR/$user/conf/mail/$domain/$PROXY_SYSTEM.*conf
rm -f /etc/$PROXY_SYSTEM/conf.d/domains/$WEBMAIL_ALIAS.$domain.conf
rm -f /etc/$PROXY_SYSTEM/$pconfd/domains/$WEBMAIL_ALIAS.$domain.conf
fi
}
# Delete SSL webmail support
del_webmail_ssl_config() {
if [ "$WEB_SYSTEM" = "httpd" ]; then
confd="conf.h.d"
else
confd="conf.d"
fi
if [ "$PROXY_SYSTEM" = "httpd" ]; then
pconfd="conf.h.d"
else
pconfd="conf.d"
fi
if [ -n "$WEB_SYSTEM" ]; then
rm -f $HOMEDIR/$user/conf/mail/$domain/$WEB_SYSTEM.*ssl.conf
rm -f /etc/$WEB_SYSTEM/conf.d/domains/$WEBMAIL_ALIAS.$domain.ssl.conf
rm -f /etc/$WEB_SYSTEM/$confd/domains/$WEBMAIL_ALIAS.$domain.ssl.conf
fi
if [ -n "$PROXY_SYSTEM" ]; then
rm -f $HOMEDIR/$user/conf/mail/$domain/$PROXY_SYSTEM.*ssl.conf
rm -f /etc/$PROXY_SYSTEM/conf.d/domains/$WEBMAIL_ALIAS.$domain.ssl.conf
rm -f /etc/$PROXY_SYSTEM/$pconfd/domains/$WEBMAIL_ALIAS.$domain.ssl.conf
fi
}

View File

@@ -28,7 +28,7 @@ MAILTPL=$HESTIA/data/templates/mail
DNSTPL=$HESTIA/data/templates/dns
RRD=$HESTIA/web/rrd
SENDMAIL="$HESTIA/web/inc/mail-wrapper.php"
HESTIA_GIT_REPO="https://raw.githubusercontent.com/hestiacp/hestiacp"
HESTIA_GIT_REPO="https://dev.putey.net/bayrepo/hestiacp"
HESTIA_THEMES="$HESTIA/web/css/themes"
HESTIA_THEMES_CUSTOM="$HESTIA/web/css/themes/custom"
SCRIPT="$(basename $0)"
@@ -1722,3 +1722,12 @@ convert_dot_version_to_non_dot() {
version="$1"
echo "${version//./}"
}
# Get conf,d name according to web system
get_conf_d_name(){
if [ "$1" = "httpd" ]; then
echo "conf.h.d"
else
echo "conf.d"
fi
}

View File

@@ -221,13 +221,22 @@ rebuild_user_conf() {
# WEB domain rebuild
rebuild_web_domain_conf() {
# Ensure that global domain folders are available
if [ ! -d /etc/$WEB_SYSTEM/conf.d/domains ]; then
mkdir -p /etc/$WEB_SYSTEM/conf.d/domains
if [ "$WEB_SYSTEM" = "httpd" ]; then
confd="conf.h.d"
else
confd="conf.d"
fi
if [ ! -d /etc/$PROXY_SYSTEM/conf.d/domains ]; then
mkdir -p /etc/$PROXY_SYSTEM/conf.d/domains
if [ "$PROXY_SYSTEM" = "httpd" ]; then
pconfd="conf.h.d"
else
pconfd="conf.d"
fi
# Ensure that global domain folders are available
if [ ! -d /etc/$WEB_SYSTEM/$confd/domains ]; then
mkdir -p /etc/$WEB_SYSTEM/$confd/domains
fi
if [ ! -d /etc/$PROXY_SYSTEM/$pconfd/domains ]; then
mkdir -p /etc/$PROXY_SYSTEM/$pconfd/domains
fi
syshealth_repair_web_config
@@ -236,11 +245,11 @@ rebuild_web_domain_conf() {
prepare_web_domain_values
# Remove old web configuration files
if [ -f /etc/$WEB_SYSTEM/conf.d/$domain.conf ]; then
rm -f /etc/$WEB_SYSTEM/conf.d/$domain*.conf
if [ -f /etc/$WEB_SYSTEM/$confd/$domain.conf ]; then
rm -f /etc/$WEB_SYSTEM/$confd/$domain*.conf
fi
if [ -f /etc/$PROXY_SYSTEM/conf.d/$domain.conf ]; then
rm -f /etc/$PROXY_SYSTEM/conf.d/$domain*.conf
if [ -f /etc/$PROXY_SYSTEM/$pconfd/$domain.conf ]; then
rm -f /etc/$PROXY_SYSTEM/$pconfd/$domain*.conf
fi
# Temporary allow write permissions to owner