install.inc 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. #!/bin/bash
  2. hestia_module_exim_install() {
  3. source $HESTIA/bin/module/func.inc
  4. module_installed=$(hestia_module_isinstalled mta)
  5. if [ "$module_installed" ] && [ ! "$param_force" ]; then
  6. echo "MTA module is already installed. See 'hestia module info mta'."
  7. exit 1
  8. fi
  9. echo "Installing MTA (Exim) module..."
  10. osal_service_stop $OSAL_SERVICE_EXIM > /dev/null 2>&1
  11. hestia_config_backup 'exim-install' $OSAL_PATH_EXIM_CONF
  12. osal_package_preinstall
  13. osal_package_install $OSAL_PKG_EXIM
  14. gpasswd -a $OSAL_USER_EXIM mail > /dev/null 2>&1
  15. if [ "$OS_BASE" = 'debian' ]; then
  16. cp -f $HESTIA_INSTALL_DIR/exim/${OSAL_PKG_EXIM}.conf.template $OSAL_PATH_EXIM_CONF/
  17. chmod 640 $OSAL_PATH_EXIM_CONF/${OSAL_PKG_EXIM}.conf.template
  18. else
  19. cp -f $HESTIA_INSTALL_DIR/exim/${OSAL_PKG_EXIM}.conf $OSAL_PATH_EXIM_CONF/
  20. chmod 640 $OSAL_PATH_EXIM_CONF/${OSAL_PKG_EXIM}.conf
  21. fi
  22. cp -f $HESTIA_INSTALL_DIR/exim/dnsbl.conf $OSAL_PATH_EXIM_CONF/
  23. cp -f $HESTIA_INSTALL_DIR/exim/spam-blocks.conf $OSAL_PATH_EXIM_CONF/
  24. touch $OSAL_PATH_EXIM_CONF/white-blocks.conf
  25. touch $OSAL_PATH_EXIM_CONF/mailhelo.conf
  26. rm -rf $OSAL_PATH_EXIM_CONF/domains
  27. mkdir -p $OSAL_PATH_EXIM_CONF/domains
  28. rm -f /etc/alternatives/mta
  29. ln -s /usr/sbin/$OSAL_PKG_EXIM /etc/alternatives/mta
  30. osal_service_stop sendmail > /dev/nul 2>&1
  31. osal_service_disable sendmail > /dev/nul 2>&1
  32. osal_service_stop postfix > /dev/nul 2>&1
  33. osal_service_disable postfix > /dev/nul 2>&1
  34. osal_service_enable $OSAL_SERVICE_EXIM
  35. osal_service_start $OSAL_SERVICE_EXIM
  36. check_result $? "Exim start failed"
  37. osal_kv_write $HESTIA/conf/hestia.conf 'MAIL_SYSTEM' 'exim'
  38. osal_kv_write $HESTIA_CONF_MODULES/mta.conf 'installed' '1'
  39. osal_kv_write $HESTIA_CONF_MODULES/mta.conf 'description' 'Hestia MTA (Exim) module'
  40. osal_kv_write $HESTIA_CONF_MODULES/mta.conf 'enabled' '1'
  41. osal_kv_write $HESTIA_CONF_MODULES/mta.conf 'variant' 'exim'
  42. osal_kv_write $HESTIA_CONF_MODULES/mta.conf 'version' '1'
  43. osal_kv_write $HESTIA_CONF_MODULES/mta.conf 'service_name' $OSAL_PKG_EXIM
  44. # Rebuild mail
  45. for user in $($HESTIA/bin/v-list-sys-users plain); do
  46. echo "Rebuilding mail domains for user $user"
  47. $BIN/v-rebuild-mail-domains $user 'no' >/dev/null 2>&1
  48. done
  49. # Setup ClamAv integration
  50. clamav_installed=$(hestia_module_variant_installed 'antivirus' 'clamav')
  51. if [ "$clamav_installed" ]; then
  52. $BIN/hestia module clamav exim-integration enable
  53. fi
  54. # Setup SpamAssassin integration
  55. spamassassin_installed=$(hestia_module_variant_installed 'antispam' 'spamassassin')
  56. if [ "$spamassassin_installed" ]; then
  57. $BIN/hestia module spamassassin exim-integration enable
  58. fi
  59. }