Skip to content

Commit c90f58a

Browse files
author
Kristan Kenney
committed
Add webmail vhosts creation routines
1 parent a993836 commit c90f58a

File tree

2 files changed

+82
-4
lines changed

2 files changed

+82
-4
lines changed

func/domain.sh

Lines changed: 81 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -234,15 +234,15 @@ add_web_config() {
234234
echo "include $conf;" > /etc/$1/conf.d/domains/$domain.ssl.conf
235235

236236
# Clear old configurations
237-
rm -fr $HOMEDIR/$user/conf/web/$domain.*
238-
rm -fr $HOMEDIR/$user/conf/web/ssl.$domain.*
239-
rm -fr $HOMEDIR/$user/conf/web/*nginx.$domain.*
237+
rm -rf $HOMEDIR/$user/conf/web/$domain.*
238+
rm -rf $HOMEDIR/$user/conf/web/ssl.$domain.*
239+
rm -rf $HOMEDIR/$user/conf/web/*nginx.$domain.*
240240
else
241241
rm -f /etc/$1/conf.d/domains/$domain.conf
242242
echo "include $conf;" > /etc/$1/conf.d/domains/$domain.conf
243243

244244
# Clear old configurations
245-
rm -fr $HOMEDIR/$user/conf/web/$domain.*
245+
rm -rf $HOMEDIR/$user/conf/web/$domain.*
246246
fi
247247

248248
if [ "$1" != 'nginx' ]; then
@@ -585,6 +585,83 @@ is_mail_new() {
585585
}
586586

587587

588+
589+
# Add web config
590+
add_webmail_config() {
591+
mkdir -p "$HOMEDIR/$user/conf/mail/$domain"
592+
conf="$HOMEDIR/$user/conf/mail/$domain/$1.conf"
593+
if [[ "$2" =~ stpl$ ]]; then
594+
conf="$HOMEDIR/$user/conf/mail/$domain/$1.ssl.conf"
595+
fi
596+
597+
domain_idn=$domain
598+
format_domain_idn
599+
600+
ssl_crt="$HOMEDIR/$user/conf/mail/$domain/ssl/$domain.crt"
601+
ssl_key="$HOMEDIR/$user/conf/mail/$domain/ssl/$domain.key"
602+
ssl_pem="$HOMEDIR/$user/conf/mail/$domain/ssl/$domain.pem"
603+
ssl_ca="$HOMEDIR/$user/conf/mail/$domain/ssl/$domain.ca"
604+
605+
cat $MAILTPL/$1/$WEB_BACKEND/$2 | \
606+
sed -e "s|%ip%|$local_ip|g" \
607+
-e "s|%domain%|$domain|g" \
608+
-e "s|%domain_idn%|$domain_idn|g" \
609+
-e "s|%alias%|${aliases//,/ }|g" \
610+
-e "s|%alias_idn%|${aliases_idn//,/ }|g" \
611+
-e "s|%alias_string%|$alias_string|g" \
612+
-e "s|%email%|info@$domain|g" \
613+
-e "s|%web_system%|$WEB_SYSTEM|g" \
614+
-e "s|%web_port%|$WEB_PORT|g" \
615+
-e "s|%web_ssl_port%|$WEB_SSL_PORT|g" \
616+
-e "s|%backend_lsnr%|$backend_lsnr|g" \
617+
-e "s|%rgroups%|$WEB_RGROUPS|g" \
618+
-e "s|%proxy_system%|$PROXY_SYSTEM|g" \
619+
-e "s|%proxy_port%|$PROXY_PORT|g" \
620+
-e "s|%proxy_ssl_port%|$PROXY_SSL_PORT|g" \
621+
-e "s/%proxy_extentions%/${PROXY_EXT//,/|}/g" \
622+
-e "s|%user%|$user|g" \
623+
-e "s|%group%|$user|g" \
624+
-e "s|%home%|$HOMEDIR|g" \
625+
-e "s|%docroot%|$docroot|g" \
626+
-e "s|%sdocroot%|$sdocroot|g" \
627+
-e "s|%ssl_crt%|$ssl_crt|g" \
628+
-e "s|%ssl_key%|$ssl_key|g" \
629+
-e "s|%ssl_pem%|$ssl_pem|g" \
630+
-e "s|%ssl_ca_str%|$ssl_ca_str|g" \
631+
-e "s|%ssl_ca%|$ssl_ca|g" \
632+
> $conf
633+
634+
chown root:$user $conf
635+
chmod 640 $conf
636+
637+
if [[ "$2" =~ stpl$ ]]; then
638+
rm -f /etc/$1/conf.d/domains/mail.$domain.ssl.conf
639+
echo "include $conf;" > /etc/$1/conf.d/domains/mail.$domain.ssl.conf
640+
641+
# Clear old configurations
642+
rm -rf $HOMEDIR/$user/conf/mail/$domain.*
643+
rm -rf $HOMEDIR/$user/conf/mail/ssl.$domain.*
644+
rm -rf $HOMEDIR/$user/conf/mail/*nginx.$domain.*
645+
else
646+
rm -f /etc/$1/conf.d/domains/mail.$domain.conf
647+
echo "include $conf;" > /etc/$1/conf.d/domains/mail.$domain.conf
648+
649+
# Clear old configurations
650+
rm -rf $HOMEDIR/$user/conf/mail/$domain.*
651+
fi
652+
653+
if [ "$1" != 'nginx' ]; then
654+
find /etc/$1/conf.d/domains -type f -name "$domain.*" | xargs sed -i "s/;//g"
655+
fi
656+
657+
trigger="${2/.*pl/.sh}"
658+
if [ -x "$WEBTPL/$1/$WEB_BACKEND/$trigger" ]; then
659+
$WEBTPL/$1/$WEB_BACKEND/$trigger \
660+
$user $domain $local_ip $HOMEDIR \
661+
$HOMEDIR/$user/web/$domain/public_html
662+
fi
663+
}
664+
588665
# Add mail server SSL configuration
589666
add_mail_ssl_config() {
590667
# Ensure that SSL certificate directories exists

func/main.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ RRD_STEP=300
99
BIN=$HESTIA/bin
1010
USER_DATA=$HESTIA/data/users/$user
1111
WEBTPL=$HESTIA/data/templates/web
12+
MAILTPL=$HESTIA/data/templates/mail
1213
DNSTPL=$HESTIA/data/templates/dns
1314
RRD=$HESTIA/web/rrd
1415
SENDMAIL="$HESTIA/web/inc/mail-wrapper.php"

0 commit comments

Comments
 (0)