Ernesto Nicolás Carrea 5 năm trước cách đây
mục cha
commit
7e1b80fe7e

+ 93 - 0
bin/module/mariadb/install.inc

@@ -0,0 +1,93 @@
+#!/bin/bash
+
+hestia_module_mariadb_install() {
+    source $HESTIA/bin/module/func.inc
+
+    module_installed=$(hestia_module_isinstalled mydb)
+    if [ "$module_installed" ] && [ ! "$param_force" ]; then
+        echo "MySQL/MariaDB database module is already installed. See 'hestia module info mydb'."
+        exit 1
+    fi
+
+    echo "Installing database (MariaDB) module..."
+    mariadb_v='10.4'
+
+    if [ "$OS_TYPE" == 'ubuntu' ]; then
+        echo "deb [arch=amd64] http://ams2.mirrors.digitalocean.com/mariadb/repo/$mariadb_v/$OS_TYPE $OS_CODENAME main" > $apt/mariadb.list
+        APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xF1656F24C74CD1D8 > /dev/null 2>&1
+    elif [ "$OS_TYPE" == 'debian' ]; then
+        echo "deb [arch=amd64] http://ams2.mirrors.digitalocean.com/mariadb/repo/$mariadb_v/$OS_TYPE $OS_CODENAME main" > $apt/mariadb.list
+        if [ "$OS_VERSION" -eq 8 ]; then
+            APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --recv-keys --keyserver keyserver.ubuntu.com CBCB082A1BB943DB > /dev/null 2>&1
+        else
+            APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --recv-keys --keyserver keyserver.ubuntu.com F1656F24C74CD1D8 > /dev/null 2>&1
+        fi
+    else
+        
+    fi
+
+
+
+
+    osal_service_stop $OSAL_SERVICE_MARIADB > /dev/null 2>&1
+    hestia_config_backup 'mariadb-install' $OSAL_PATH_MARIADB_CONF
+
+    osal_package_preinstall
+    osal_package_install $OSAL_PKG_MARIADB
+
+    gpasswd -a $OSAL_USER_MARIADB mail > /dev/null 2>&1
+
+    if [ "$OS_BASE" = 'debian' ]; then
+        cp -f $HESTIA_INSTALL_DIR/mariadb/${OSAL_PKG_MARIADB}.conf.template $OSAL_PATH_MARIADB_CONF/
+        chmod 640 $OSAL_PATH_MARIADB_CONF/${OSAL_PKG_MARIADB}.conf.template
+    else
+        cp -f $HESTIA_INSTALL_DIR/mariadb/${OSAL_PKG_MARIADB}.conf $OSAL_PATH_MARIADB_CONF/
+        chmod 640 $OSAL_PATH_MARIADB_CONF/${OSAL_PKG_MARIADB}.conf
+    fi
+
+    cp -f $HESTIA_INSTALL_DIR/mariadb/dnsbl.conf $OSAL_PATH_MARIADB_CONF/
+    cp -f $HESTIA_INSTALL_DIR/mariadb/spam-blocks.conf $OSAL_PATH_MARIADB_CONF/
+    touch $OSAL_PATH_MARIADB_CONF/white-blocks.conf
+    touch $OSAL_PATH_MARIADB_CONF/mailhelo.conf
+
+    rm -rf $OSAL_PATH_MARIADB_CONF/domains
+    mkdir -p $OSAL_PATH_MARIADB_CONF/domains
+
+    rm -f /etc/alternatives/mydb
+    ln -s /usr/sbin/$OSAL_PKG_MARIADB /etc/alternatives/mydb
+    
+    osal_service_stop sendmail > /dev/nul 2>&1
+    osal_service_disable sendmail > /dev/nul 2>&1
+    osal_service_stop postfix > /dev/nul 2>&1
+    osal_service_disable postfix > /dev/nul 2>&1
+
+    osal_service_enable $OSAL_SERVICE_MARIADB
+    osal_service_start $OSAL_SERVICE_MARIADB
+    check_result $? "Mariadb start failed"
+
+    osal_kv_write $HESTIA/conf/hestia.conf 'DB_SYSTEM' 'mysql'
+    osal_kv_write $HESTIA_CONF_MODULES/mydb.conf 'installed' '1'
+    osal_kv_write $HESTIA_CONF_MODULES/mydb.conf 'description' 'Hestia Database (MariaDB) module'
+    osal_kv_write $HESTIA_CONF_MODULES/mydb.conf 'enabled' '1'
+    osal_kv_write $HESTIA_CONF_MODULES/mydb.conf 'variant' 'mariadb'
+    osal_kv_write $HESTIA_CONF_MODULES/mydb.conf 'version' '1'
+    osal_kv_write $HESTIA_CONF_MODULES/mydb.conf 'service_name' $OSAL_PKG_MARIADB
+
+    # Rebuild mail
+    for user in $($HESTIA/bin/v-list-sys-users plain); do
+        echo "Rebuilding mail domains for user $user"
+        $BIN/v-rebuild-mail-domains $user 'no' >/dev/null 2>&1
+    done
+
+    # Setup ClamAv integration
+    clamav_installed=$(hestia_module_variant_installed 'antivirus' 'clamav')
+    if [ "$clamav_installed" ]; then
+        $BIN/hestia module clamav mariadb-integration enable
+    fi
+
+    # Setup SpamAssassin integration
+    spamassassin_installed=$(hestia_module_variant_installed 'antispam' 'spamassassin')
+    if [ "$spamassassin_installed" ]; then
+        $BIN/hestia module spamassassin mariadb-integration enable
+    fi
+}

+ 43 - 0
bin/module/mariadb/remove.inc

@@ -0,0 +1,43 @@
+#!/bin/bash
+
+hestia_module_exim_remove() {
+    source $HESTIA/bin/module/func.inc
+
+    module_installed=$(hestia_module_isinstalled mta)
+    if [ ! "$module_installed" ] && [ ! "$param_force" ]; then
+        echo "MTA module is not installed. See 'hestia module info mta'."
+        exit 1
+    fi
+
+    module_variant=$(hestia_module_getvariant mta)
+    if [ "$module_variant" != 'exim' ] && [ ! "$param_force" ]; then
+        echo "The installed MTA module is not Exim. See 'hestia module info mta'."
+        exit 1
+    fi
+
+    echo "Removing MTA (Exim) module..."
+
+    clamav_installed=$(hestia_module_variant_installed 'antivirus' 'clamav')
+    if [ "$clamav_installed" ]; then
+        $BIN/hestia module clamav exim-integration disable
+    fi
+
+    spamassassin_installed=$(hestia_module_variant_installed 'antispam' 'spamassassin')
+    if [ "$spamassassin_installed" ]; then
+        $BIN/hestia module spamassassin exim-integration disable
+    fi
+
+    osal_service_stop $OSAL_SERVICE_EXIM > /dev/null 2>&1
+    osal_service_disable $OSAL_SERVICE_EXIM > /dev/null 2>&1
+
+    hestia_config_backup 'exim-remove' $OSAL_PATH_EXIM_CONF
+
+    osal_package_remove $OSAL_PKG_EXIM
+
+    osal_kv_write $HESTIA/conf/hestia.conf 'MAIL_SYSTEM' 'no'
+    osal_kv_write $HESTIA_CONF_MODULES/mta.conf 'installed' '0'
+    osal_kv_write $HESTIA_CONF_MODULES/mta.conf 'description' ''
+    osal_kv_write $HESTIA_CONF_MODULES/mta.conf 'enabled' '0'
+    osal_kv_write $HESTIA_CONF_MODULES/mta.conf 'variant' ''
+    osal_kv_write $HESTIA_CONF_MODULES/mta.conf 'version' '0'
+}