feat (mysql): use IP and port instead of unix socket
This commit is contained in:
parent
d6c3c58f42
commit
7368593d19
|
@ -113,7 +113,7 @@ fi
|
||||||
chmod 600 ${ACME_BASE}/key.pem
|
chmod 600 ${ACME_BASE}/key.pem
|
||||||
|
|
||||||
log_f "Waiting for database..."
|
log_f "Waiting for database..."
|
||||||
while ! mysqladmin status --socket=/var/run/mysqld/mysqld.sock -u${DBUSER} -p${DBPASS} --silent > /dev/null; do
|
while ! mysqladmin status --host=${DBHOST} --port=${DBPORT} -u${DBUSER} -p${DBPASS} --silent > /dev/null; do
|
||||||
sleep 2
|
sleep 2
|
||||||
done
|
done
|
||||||
log_f "Database OK"
|
log_f "Database OK"
|
||||||
|
@ -134,7 +134,7 @@ log_f "Resolver OK"
|
||||||
log_f "Waiting for domain table..."
|
log_f "Waiting for domain table..."
|
||||||
while [[ -z ${DOMAIN_TABLE} ]]; do
|
while [[ -z ${DOMAIN_TABLE} ]]; do
|
||||||
curl --silent http://nginx/ >/dev/null 2>&1
|
curl --silent http://nginx/ >/dev/null 2>&1
|
||||||
DOMAIN_TABLE=$(mysql --socket=/var/run/mysqld/mysqld.sock -u ${DBUSER} -p${DBPASS} ${DBNAME} -e "SHOW TABLES LIKE 'domain'" -Bs)
|
DOMAIN_TABLE=$(mysql --host=${DBHOST} --port=${DBPORT} -u ${DBUSER} -p${DBPASS} ${DBNAME} -e "SHOW TABLES LIKE 'domain'" -Bs)
|
||||||
[[ -z ${DOMAIN_TABLE} ]] && sleep 10
|
[[ -z ${DOMAIN_TABLE} ]] && sleep 10
|
||||||
done
|
done
|
||||||
log_f "OK" no_date
|
log_f "OK" no_date
|
||||||
|
@ -223,7 +223,7 @@ while true; do
|
||||||
|
|
||||||
#########################################
|
#########################################
|
||||||
# IP and webroot challenge verification #
|
# IP and webroot challenge verification #
|
||||||
SQL_DOMAINS=$(mysql --socket=/var/run/mysqld/mysqld.sock -u ${DBUSER} -p${DBPASS} ${DBNAME} -e "SELECT domain FROM domain WHERE backupmx=0 and active=1" -Bs)
|
SQL_DOMAINS=$(mysql --host=${DBHOST} --port=${DBPORT} -u ${DBUSER} -p${DBPASS} ${DBNAME} -e "SELECT domain FROM domain WHERE backupmx=0 and active=1" -Bs)
|
||||||
if [[ ! $? -eq 0 ]]; then
|
if [[ ! $? -eq 0 ]]; then
|
||||||
log_f "Failed to read SQL domains, retrying in 1 minute..."
|
log_f "Failed to read SQL domains, retrying in 1 minute..."
|
||||||
sleep 1m
|
sleep 1m
|
||||||
|
|
|
@ -15,6 +15,6 @@ if ! [[ ${MAX_AGE} =~ ${NUM_REGEXP} ]] ; then
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
TO_DELETE=$(mysql --socket=/var/run/mysqld/mysqld.sock -u ${DBUSER} -p${DBPASS} ${DBNAME} -e "SELECT COUNT(id) FROM quarantine WHERE created < NOW() - INTERVAL ${MAX_AGE//[!0-9]/} DAY" -BN)
|
TO_DELETE=$(mysql --host=${DBHOST} --port=${DBPORT} -u ${DBUSER} -p${DBPASS} ${DBNAME} -e "SELECT COUNT(id) FROM quarantine WHERE created < NOW() - INTERVAL ${MAX_AGE//[!0-9]/} DAY" -BN)
|
||||||
mysql --socket=/var/run/mysqld/mysqld.sock -u ${DBUSER} -p${DBPASS} ${DBNAME} -e "DELETE FROM quarantine WHERE created < NOW() - INTERVAL ${MAX_AGE//[!0-9]/} DAY"
|
mysql --host=${DBHOST} --port=${DBPORT} -u ${DBUSER} -p${DBPASS} ${DBNAME} -e "DELETE FROM quarantine WHERE created < NOW() - INTERVAL ${MAX_AGE//[!0-9]/} DAY"
|
||||||
echo "Deleted ${TO_DELETE} items from quarantine table (max age is ${MAX_AGE//[!0-9]/} days)"
|
echo "Deleted ${TO_DELETE} items from quarantine table (max age is ${MAX_AGE//[!0-9]/} days)"
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
# Wait for MySQL to warm-up
|
# Wait for MySQL to warm-up
|
||||||
while ! mysqladmin status --socket=/var/run/mysqld/mysqld.sock -u${DBUSER} -p${DBPASS} --silent; do
|
while ! mysqladmin status --host=${DBHOST} --port=${DBPORT} -u${DBUSER} -p${DBPASS} --silent; do
|
||||||
echo "Waiting for database to come up..."
|
echo "Waiting for database to come up..."
|
||||||
sleep 2
|
sleep 2
|
||||||
done
|
done
|
||||||
|
@ -45,7 +45,7 @@ else
|
||||||
fi
|
fi
|
||||||
cat <<EOF > /etc/dovecot/sql/dovecot-dict-sql-quota.conf
|
cat <<EOF > /etc/dovecot/sql/dovecot-dict-sql-quota.conf
|
||||||
# Autogenerated by mailcow
|
# Autogenerated by mailcow
|
||||||
connect = "host=/var/run/mysqld/mysqld.sock dbname=${DBNAME} user=${DBUSER} password=${DBPASS}"
|
connect = "host=${DBHOST} port=${DBPORT} dbname=${DBNAME} user=${DBUSER} password=${DBPASS}"
|
||||||
map {
|
map {
|
||||||
pattern = priv/quota/storage
|
pattern = priv/quota/storage
|
||||||
table = ${QUOTA_TABLE}
|
table = ${QUOTA_TABLE}
|
||||||
|
@ -63,7 +63,7 @@ EOF
|
||||||
# Create dict used for sieve pre and postfilters
|
# Create dict used for sieve pre and postfilters
|
||||||
cat <<EOF > /etc/dovecot/sql/dovecot-dict-sql-sieve_before.conf
|
cat <<EOF > /etc/dovecot/sql/dovecot-dict-sql-sieve_before.conf
|
||||||
# Autogenerated by mailcow
|
# Autogenerated by mailcow
|
||||||
connect = "host=/var/run/mysqld/mysqld.sock dbname=${DBNAME} user=${DBUSER} password=${DBPASS}"
|
connect = "host=${DBHOST} port=${DBPORT} dbname=${DBNAME} user=${DBUSER} password=${DBPASS}"
|
||||||
map {
|
map {
|
||||||
pattern = priv/sieve/name/\$script_name
|
pattern = priv/sieve/name/\$script_name
|
||||||
table = sieve_before
|
table = sieve_before
|
||||||
|
@ -86,7 +86,7 @@ EOF
|
||||||
|
|
||||||
cat <<EOF > /etc/dovecot/sql/dovecot-dict-sql-sieve_after.conf
|
cat <<EOF > /etc/dovecot/sql/dovecot-dict-sql-sieve_after.conf
|
||||||
# Autogenerated by mailcow
|
# Autogenerated by mailcow
|
||||||
connect = "host=/var/run/mysqld/mysqld.sock dbname=${DBNAME} user=${DBUSER} password=${DBPASS}"
|
connect = "host=${DBHOST} port=${DBPORT} dbname=${DBNAME} user=${DBUSER} password=${DBPASS}"
|
||||||
map {
|
map {
|
||||||
pattern = priv/sieve/name/\$script_name
|
pattern = priv/sieve/name/\$script_name
|
||||||
table = sieve_after
|
table = sieve_after
|
||||||
|
@ -123,7 +123,7 @@ chmod 644 /etc/dovecot/mail_plugins /etc/dovecot/mail_plugins_imap /etc/dovecot/
|
||||||
cat <<EOF > /etc/dovecot/sql/dovecot-dict-sql-userdb.conf
|
cat <<EOF > /etc/dovecot/sql/dovecot-dict-sql-userdb.conf
|
||||||
# Autogenerated by mailcow
|
# Autogenerated by mailcow
|
||||||
driver = mysql
|
driver = mysql
|
||||||
connect = "host=/var/run/mysqld/mysqld.sock dbname=${DBNAME} user=${DBUSER} password=${DBPASS}"
|
connect = "host=${DBHOST} port=${DBPORT} dbname=${DBNAME} user=${DBUSER} password=${DBPASS}"
|
||||||
user_query = SELECT CONCAT(JSON_UNQUOTE(JSON_VALUE(attributes, '$.mailbox_format')), mailbox_path_prefix, '%d/%n/${MAILDIR_SUB}:VOLATILEDIR=/var/volatile/%u:INDEX=/var/vmail_index/%u') AS mail, '%s' AS protocol, 5000 AS uid, 5000 AS gid, concat('*:bytes=', quota) AS quota_rule FROM mailbox WHERE username = '%u' AND (active = '1' OR active = '2')
|
user_query = SELECT CONCAT(JSON_UNQUOTE(JSON_VALUE(attributes, '$.mailbox_format')), mailbox_path_prefix, '%d/%n/${MAILDIR_SUB}:VOLATILEDIR=/var/volatile/%u:INDEX=/var/vmail_index/%u') AS mail, '%s' AS protocol, 5000 AS uid, 5000 AS gid, concat('*:bytes=', quota) AS quota_rule FROM mailbox WHERE username = '%u' AND (active = '1' OR active = '2')
|
||||||
iterate_query = SELECT username FROM mailbox WHERE active = '1' OR active = '2';
|
iterate_query = SELECT username FROM mailbox WHERE active = '1' OR active = '2';
|
||||||
EOF
|
EOF
|
||||||
|
@ -388,15 +388,15 @@ printenv | sed 's/^\(.*\)$/export \1/g' > /source_env.sh
|
||||||
|
|
||||||
# Clean stopped imapsync jobs
|
# Clean stopped imapsync jobs
|
||||||
rm -f /tmp/imapsync_busy.lock
|
rm -f /tmp/imapsync_busy.lock
|
||||||
IMAPSYNC_TABLE=$(mysql --socket=/var/run/mysqld/mysqld.sock -u ${DBUSER} -p${DBPASS} ${DBNAME} -e "SHOW TABLES LIKE 'imapsync'" -Bs)
|
IMAPSYNC_TABLE=$(mysql --host=${DBHOST} --port=${DBPORT} -u ${DBUSER} -p${DBPASS} ${DBNAME} -e "SHOW TABLES LIKE 'imapsync'" -Bs)
|
||||||
[[ ! -z ${IMAPSYNC_TABLE} ]] && mysql --socket=/var/run/mysqld/mysqld.sock -u ${DBUSER} -p${DBPASS} ${DBNAME} -e "UPDATE imapsync SET is_running='0'"
|
[[ ! -z ${IMAPSYNC_TABLE} ]] && mysql --host=${DBHOST} --port=${DBPORT} -u ${DBUSER} -p${DBPASS} ${DBNAME} -e "UPDATE imapsync SET is_running='0'"
|
||||||
|
|
||||||
# Envsubst maildir_gc
|
# Envsubst maildir_gc
|
||||||
echo "$(envsubst < /usr/local/bin/maildir_gc.sh)" > /usr/local/bin/maildir_gc.sh
|
echo "$(envsubst < /usr/local/bin/maildir_gc.sh)" > /usr/local/bin/maildir_gc.sh
|
||||||
|
|
||||||
# GUID generation
|
# GUID generation
|
||||||
while [[ ${VERSIONS_OK} != 'OK' ]]; do
|
while [[ ${VERSIONS_OK} != 'OK' ]]; do
|
||||||
if [[ ! -z $(mysql --socket=/var/run/mysqld/mysqld.sock -u ${DBUSER} -p${DBPASS} ${DBNAME} -B -e "SELECT 'OK' FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = \"${DBNAME}\" AND TABLE_NAME = 'versions'") ]]; then
|
if [[ ! -z $(mysql --host=${DBHOST} --port=${DBPORT} -u ${DBUSER} -p${DBPASS} ${DBNAME} -B -e "SELECT 'OK' FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = \"${DBNAME}\" AND TABLE_NAME = 'versions'") ]]; then
|
||||||
VERSIONS_OK=OK
|
VERSIONS_OK=OK
|
||||||
else
|
else
|
||||||
echo "Waiting for versions table to be created..."
|
echo "Waiting for versions table to be created..."
|
||||||
|
@ -407,11 +407,11 @@ PUBKEY_MCRYPT=$(doveconf -P 2> /dev/null | grep -i mail_crypt_global_public_key
|
||||||
if [ -f ${PUBKEY_MCRYPT} ]; then
|
if [ -f ${PUBKEY_MCRYPT} ]; then
|
||||||
GUID=$(cat <(echo ${MAILCOW_HOSTNAME}) /mail_crypt/ecpubkey.pem | sha256sum | cut -d ' ' -f1 | tr -cd "[a-fA-F0-9.:/] ")
|
GUID=$(cat <(echo ${MAILCOW_HOSTNAME}) /mail_crypt/ecpubkey.pem | sha256sum | cut -d ' ' -f1 | tr -cd "[a-fA-F0-9.:/] ")
|
||||||
if [ ${#GUID} -eq 64 ]; then
|
if [ ${#GUID} -eq 64 ]; then
|
||||||
mysql --socket=/var/run/mysqld/mysqld.sock -u ${DBUSER} -p${DBPASS} ${DBNAME} << EOF
|
mysql --host=${DBHOST} --port=${DBPORT} -u ${DBUSER} -p${DBPASS} ${DBNAME} << EOF
|
||||||
REPLACE INTO versions (application, version) VALUES ("GUID", "${GUID}");
|
REPLACE INTO versions (application, version) VALUES ("GUID", "${GUID}");
|
||||||
EOF
|
EOF
|
||||||
else
|
else
|
||||||
mysql --socket=/var/run/mysqld/mysqld.sock -u ${DBUSER} -p${DBPASS} ${DBNAME} << EOF
|
mysql --host=${DBHOST} --port=${DBPORT} -u ${DBUSER} -p${DBPASS} ${DBNAME} << EOF
|
||||||
REPLACE INTO versions (application, version) VALUES ("GUID", "INVALID");
|
REPLACE INTO versions (application, version) VALUES ("GUID", "INVALID");
|
||||||
EOF
|
EOF
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -36,7 +36,7 @@ sub qqw($) {
|
||||||
}
|
}
|
||||||
|
|
||||||
$run_dir="/tmp";
|
$run_dir="/tmp";
|
||||||
$dsn = 'DBI:mysql:database=' . $ENV{'DBNAME'} . ';mysql_socket=/var/run/mysqld/mysqld.sock';
|
$dsn = 'DBI:mysql:database=' . $ENV{'DBNAME'} . ';host=' . $ENV{'DBHOST'} . ';port=' . $ENV{'DBPORT'};
|
||||||
$lock_file = $run_dir . "/imapsync_busy";
|
$lock_file = $run_dir . "/imapsync_busy";
|
||||||
$lockmgr = LockFile::Simple->make(-autoclean => 1, -max => 1);
|
$lockmgr = LockFile::Simple->make(-autoclean => 1, -max => 1);
|
||||||
$lockmgr->lock($lock_file) || die "can't lock ${lock_file}";
|
$lockmgr->lock($lock_file) || die "can't lock ${lock_file}";
|
||||||
|
|
|
@ -50,7 +50,7 @@ try:
|
||||||
def query_mysql(query, headers = True, update = False):
|
def query_mysql(query, headers = True, update = False):
|
||||||
while True:
|
while True:
|
||||||
try:
|
try:
|
||||||
cnx = mysql.connector.connect(unix_socket = '/var/run/mysqld/mysqld.sock', user=os.environ.get('DBUSER'), passwd=os.environ.get('DBPASS'), database=os.environ.get('DBNAME'), charset="utf8mb4", collation="utf8mb4_general_ci")
|
cnx = mysql.connector.connect(host=os.environ.get('DBHOST'), port=os.environ.get('DBPORT'), user=os.environ.get('DBUSER'), passwd=os.environ.get('DBPASS'), database=os.environ.get('DBNAME'), charset="utf8mb4", collation="utf8mb4_general_ci")
|
||||||
except Exception as ex:
|
except Exception as ex:
|
||||||
print('%s - trying again...' % (ex))
|
print('%s - trying again...' % (ex))
|
||||||
time.sleep(3)
|
time.sleep(3)
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
function array_by_comma { local IFS=","; echo "$*"; }
|
function array_by_comma { local IFS=","; echo "$*"; }
|
||||||
|
|
||||||
# Wait for containers
|
# Wait for containers
|
||||||
while ! mysqladmin status --socket=/var/run/mysqld/mysqld.sock -u${DBUSER} -p${DBPASS} --silent; do
|
while ! mysqladmin status --host=${DBHOST} --port=${DBPORT} -u${DBUSER} -p${DBPASS} --silent; do
|
||||||
echo "Waiting for SQL..."
|
echo "Waiting for SQL..."
|
||||||
sleep 2
|
sleep 2
|
||||||
done
|
done
|
||||||
|
@ -43,7 +43,7 @@ until [[ ${SQL_UPGRADE_STATUS} == 'success' ]]; do
|
||||||
echo "MySQL applied an upgrade, debug output:"
|
echo "MySQL applied an upgrade, debug output:"
|
||||||
echo ${SQL_FULL_UPGRADE_RETURN}
|
echo ${SQL_FULL_UPGRADE_RETURN}
|
||||||
sleep 3
|
sleep 3
|
||||||
while ! mysqladmin status --socket=/var/run/mysqld/mysqld.sock -u${DBUSER} -p${DBPASS} --silent; do
|
while ! mysqladmin status --host=${DBHOST} --port=${DBPORT} -u${DBUSER} -p${DBPASS} --silent; do
|
||||||
echo "Waiting for SQL to return, please wait"
|
echo "Waiting for SQL to return, please wait"
|
||||||
sleep 2
|
sleep 2
|
||||||
done
|
done
|
||||||
|
@ -71,7 +71,7 @@ if [ ${SQL_CHANGED} -eq 1 ]; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Check mysql tz import (master and slave)
|
# Check mysql tz import (master and slave)
|
||||||
TZ_CHECK=$(mysql --socket=/var/run/mysqld/mysqld.sock -u ${DBUSER} -p${DBPASS} ${DBNAME} -e "SELECT CONVERT_TZ('2019-11-02 23:33:00','Europe/Berlin','UTC') AS time;" -BN 2> /dev/null)
|
TZ_CHECK=$(mysql --host=${DBHOST} --port=${DBPORT} -u ${DBUSER} -p${DBPASS} ${DBNAME} -e "SELECT CONVERT_TZ('2019-11-02 23:33:00','Europe/Berlin','UTC') AS time;" -BN 2> /dev/null)
|
||||||
if [[ -z ${TZ_CHECK} ]] || [[ "${TZ_CHECK}" == "NULL" ]]; then
|
if [[ -z ${TZ_CHECK} ]] || [[ "${TZ_CHECK}" == "NULL" ]]; then
|
||||||
SQL_FULL_TZINFO_IMPORT_RETURN=$(curl --silent --insecure -XPOST https://dockerapi/containers/${CONTAINER_ID}/exec -d '{"cmd":"system", "task":"mysql_tzinfo_to_sql"}' --silent -H 'Content-type: application/json')
|
SQL_FULL_TZINFO_IMPORT_RETURN=$(curl --silent --insecure -XPOST https://dockerapi/containers/${CONTAINER_ID}/exec -d '{"cmd":"system", "task":"mysql_tzinfo_to_sql"}' --silent -H 'Content-type: application/json')
|
||||||
echo "MySQL mysql_tzinfo_to_sql - debug output:"
|
echo "MySQL mysql_tzinfo_to_sql - debug output:"
|
||||||
|
@ -110,11 +110,11 @@ if [[ "${MASTER}" =~ ^([yY][eE][sS]|[yY])+$ ]]; then
|
||||||
while read line
|
while read line
|
||||||
do
|
do
|
||||||
DOMAIN_ARR+=("$line")
|
DOMAIN_ARR+=("$line")
|
||||||
done < <(mysql --socket=/var/run/mysqld/mysqld.sock -u ${DBUSER} -p${DBPASS} ${DBNAME} -e "SELECT domain FROM domain" -Bs)
|
done < <(mysql --host=${DBHOST} --port=${DBPORT} -u ${DBUSER} -p${DBPASS} ${DBNAME} -e "SELECT domain FROM domain" -Bs)
|
||||||
while read line
|
while read line
|
||||||
do
|
do
|
||||||
DOMAIN_ARR+=("$line")
|
DOMAIN_ARR+=("$line")
|
||||||
done < <(mysql --socket=/var/run/mysqld/mysqld.sock -u ${DBUSER} -p${DBPASS} ${DBNAME} -e "SELECT alias_domain FROM alias_domain" -Bs)
|
done < <(mysql --host=${DBHOST} --port=${DBPORT} -u ${DBUSER} -p${DBPASS} ${DBNAME} -e "SELECT alias_domain FROM alias_domain" -Bs)
|
||||||
|
|
||||||
if [[ ! -z ${DOMAIN_ARR} ]]; then
|
if [[ ! -z ${DOMAIN_ARR} ]]; then
|
||||||
for domain in "${DOMAIN_ARR[@]}"; do
|
for domain in "${DOMAIN_ARR[@]}"; do
|
||||||
|
@ -136,13 +136,13 @@ if [[ "${MASTER}" =~ ^([yY][eE][sS]|[yY])+$ ]]; then
|
||||||
VALIDATED_IPS=$(array_by_comma ${VALIDATED_API_ALLOW_FROM_ARR[*]})
|
VALIDATED_IPS=$(array_by_comma ${VALIDATED_API_ALLOW_FROM_ARR[*]})
|
||||||
if [[ ! -z ${VALIDATED_IPS} ]]; then
|
if [[ ! -z ${VALIDATED_IPS} ]]; then
|
||||||
if [[ ${API_KEY} != "invalid" ]] && [[ ! -z ${API_KEY} ]]; then
|
if [[ ${API_KEY} != "invalid" ]] && [[ ! -z ${API_KEY} ]]; then
|
||||||
mysql --socket=/var/run/mysqld/mysqld.sock -u ${DBUSER} -p${DBPASS} ${DBNAME} << EOF
|
mysql --host=${DBHOST} --port=${DBPORT} -u ${DBUSER} -p${DBPASS} ${DBNAME} << EOF
|
||||||
DELETE FROM api WHERE access = 'rw';
|
DELETE FROM api WHERE access = 'rw';
|
||||||
INSERT INTO api (api_key, active, allow_from, access) VALUES ("${API_KEY}", "1", "${VALIDATED_IPS}", "rw");
|
INSERT INTO api (api_key, active, allow_from, access) VALUES ("${API_KEY}", "1", "${VALIDATED_IPS}", "rw");
|
||||||
EOF
|
EOF
|
||||||
fi
|
fi
|
||||||
if [[ ${API_KEY_READ_ONLY} != "invalid" ]] && [[ ! -z ${API_KEY_READ_ONLY} ]]; then
|
if [[ ${API_KEY_READ_ONLY} != "invalid" ]] && [[ ! -z ${API_KEY_READ_ONLY} ]]; then
|
||||||
mysql --socket=/var/run/mysqld/mysqld.sock -u ${DBUSER} -p${DBPASS} ${DBNAME} << EOF
|
mysql --host=${DBHOST} --port=${DBPORT} -u ${DBUSER} -p${DBPASS} ${DBNAME} << EOF
|
||||||
DELETE FROM api WHERE access = 'ro';
|
DELETE FROM api WHERE access = 'ro';
|
||||||
INSERT INTO api (api_key, active, allow_from, access) VALUES ("${API_KEY_READ_ONLY}", "1", "${VALIDATED_IPS}", "ro");
|
INSERT INTO api (api_key, active, allow_from, access) VALUES ("${API_KEY_READ_ONLY}", "1", "${VALIDATED_IPS}", "ro");
|
||||||
EOF
|
EOF
|
||||||
|
@ -151,7 +151,7 @@ EOF
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Create events (master only, STATUS for event on slave will be SLAVESIDE_DISABLED)
|
# Create events (master only, STATUS for event on slave will be SLAVESIDE_DISABLED)
|
||||||
mysql --socket=/var/run/mysqld/mysqld.sock -u ${DBUSER} -p${DBPASS} ${DBNAME} << EOF
|
mysql --host=${DBHOST} --port=${DBPORT} -u ${DBUSER} -p${DBPASS} ${DBNAME} << EOF
|
||||||
DROP EVENT IF EXISTS clean_spamalias;
|
DROP EVENT IF EXISTS clean_spamalias;
|
||||||
DELIMITER //
|
DELIMITER //
|
||||||
CREATE EVENT clean_spamalias
|
CREATE EVENT clean_spamalias
|
||||||
|
|
|
@ -5,7 +5,7 @@ trap "postfix stop" EXIT
|
||||||
[[ ! -d /opt/postfix/conf/sql/ ]] && mkdir -p /opt/postfix/conf/sql/
|
[[ ! -d /opt/postfix/conf/sql/ ]] && mkdir -p /opt/postfix/conf/sql/
|
||||||
|
|
||||||
# Wait for MySQL to warm-up
|
# Wait for MySQL to warm-up
|
||||||
while ! mysqladmin status --socket=/var/run/mysqld/mysqld.sock -u${DBUSER} -p${DBPASS} --silent; do
|
while ! mysqladmin status --host=${DBHOST} --port=${DBPORT} -u${DBUSER} -p${DBPASS} --silent; do
|
||||||
echo "Waiting for database to come up..."
|
echo "Waiting for database to come up..."
|
||||||
sleep 2
|
sleep 2
|
||||||
done
|
done
|
||||||
|
@ -46,7 +46,7 @@ cat <<EOF > /opt/postfix/conf/sql/mysql_relay_ne.cf
|
||||||
# Autogenerated by mailcow
|
# Autogenerated by mailcow
|
||||||
user = ${DBUSER}
|
user = ${DBUSER}
|
||||||
password = ${DBPASS}
|
password = ${DBPASS}
|
||||||
hosts = unix:/var/run/mysqld/mysqld.sock
|
hosts = inet:${DBHOST}:${DBPORT}
|
||||||
dbname = ${DBNAME}
|
dbname = ${DBNAME}
|
||||||
query = SELECT IF(EXISTS(SELECT address, domain FROM alias
|
query = SELECT IF(EXISTS(SELECT address, domain FROM alias
|
||||||
WHERE address = '%s'
|
WHERE address = '%s'
|
||||||
|
@ -63,7 +63,7 @@ cat <<EOF > /opt/postfix/conf/sql/mysql_relay_recipient_maps.cf
|
||||||
# Autogenerated by mailcow
|
# Autogenerated by mailcow
|
||||||
user = ${DBUSER}
|
user = ${DBUSER}
|
||||||
password = ${DBPASS}
|
password = ${DBPASS}
|
||||||
hosts = unix:/var/run/mysqld/mysqld.sock
|
hosts = inet:${DBHOST}:${DBPORT}
|
||||||
dbname = ${DBNAME}
|
dbname = ${DBNAME}
|
||||||
query = SELECT DISTINCT
|
query = SELECT DISTINCT
|
||||||
CASE WHEN '%d' IN (
|
CASE WHEN '%d' IN (
|
||||||
|
@ -82,7 +82,7 @@ cat <<EOF > /opt/postfix/conf/sql/mysql_tls_policy_override_maps.cf
|
||||||
# Autogenerated by mailcow
|
# Autogenerated by mailcow
|
||||||
user = ${DBUSER}
|
user = ${DBUSER}
|
||||||
password = ${DBPASS}
|
password = ${DBPASS}
|
||||||
hosts = unix:/var/run/mysqld/mysqld.sock
|
hosts = inet:${DBHOST}:${DBPORT}
|
||||||
dbname = ${DBNAME}
|
dbname = ${DBNAME}
|
||||||
query = SELECT CONCAT(policy, ' ', parameters) AS tls_policy FROM tls_policy_override WHERE active = '1' AND dest = '%s'
|
query = SELECT CONCAT(policy, ' ', parameters) AS tls_policy FROM tls_policy_override WHERE active = '1' AND dest = '%s'
|
||||||
EOF
|
EOF
|
||||||
|
@ -91,7 +91,7 @@ cat <<EOF > /opt/postfix/conf/sql/mysql_tls_enforce_in_policy.cf
|
||||||
# Autogenerated by mailcow
|
# Autogenerated by mailcow
|
||||||
user = ${DBUSER}
|
user = ${DBUSER}
|
||||||
password = ${DBPASS}
|
password = ${DBPASS}
|
||||||
hosts = unix:/var/run/mysqld/mysqld.sock
|
hosts = inet:${DBHOST}:${DBPORT}
|
||||||
dbname = ${DBNAME}
|
dbname = ${DBNAME}
|
||||||
query = SELECT IF(EXISTS(
|
query = SELECT IF(EXISTS(
|
||||||
SELECT 'TLS_ACTIVE' FROM alias
|
SELECT 'TLS_ACTIVE' FROM alias
|
||||||
|
@ -109,7 +109,7 @@ cat <<EOF > /opt/postfix/conf/sql/mysql_sender_dependent_default_transport_maps.
|
||||||
# Autogenerated by mailcow
|
# Autogenerated by mailcow
|
||||||
user = ${DBUSER}
|
user = ${DBUSER}
|
||||||
password = ${DBPASS}
|
password = ${DBPASS}
|
||||||
hosts = unix:/var/run/mysqld/mysqld.sock
|
hosts = inet:${DBHOST}:${DBPORT}
|
||||||
dbname = ${DBNAME}
|
dbname = ${DBNAME}
|
||||||
query = SELECT GROUP_CONCAT(transport SEPARATOR '') AS transport_maps
|
query = SELECT GROUP_CONCAT(transport SEPARATOR '') AS transport_maps
|
||||||
FROM (
|
FROM (
|
||||||
|
@ -156,7 +156,7 @@ cat <<EOF > /opt/postfix/conf/sql/mysql_transport_maps.cf
|
||||||
# Autogenerated by mailcow
|
# Autogenerated by mailcow
|
||||||
user = ${DBUSER}
|
user = ${DBUSER}
|
||||||
password = ${DBPASS}
|
password = ${DBPASS}
|
||||||
hosts = unix:/var/run/mysqld/mysqld.sock
|
hosts = inet:${DBHOST}:${DBPORT}
|
||||||
dbname = ${DBNAME}
|
dbname = ${DBNAME}
|
||||||
query = SELECT CONCAT('smtp_via_transport_maps:', nexthop) AS transport FROM transports
|
query = SELECT CONCAT('smtp_via_transport_maps:', nexthop) AS transport FROM transports
|
||||||
WHERE active = '1'
|
WHERE active = '1'
|
||||||
|
@ -167,7 +167,7 @@ cat <<EOF > /opt/postfix/conf/sql/mysql_virtual_resource_maps.cf
|
||||||
# Autogenerated by mailcow
|
# Autogenerated by mailcow
|
||||||
user = ${DBUSER}
|
user = ${DBUSER}
|
||||||
password = ${DBPASS}
|
password = ${DBPASS}
|
||||||
hosts = unix:/var/run/mysqld/mysqld.sock
|
hosts = inet:${DBHOST}:${DBPORT}
|
||||||
dbname = ${DBNAME}
|
dbname = ${DBNAME}
|
||||||
query = SELECT 'null@localhost' FROM mailbox
|
query = SELECT 'null@localhost' FROM mailbox
|
||||||
WHERE kind REGEXP 'location|thing|group' AND username = '%s';
|
WHERE kind REGEXP 'location|thing|group' AND username = '%s';
|
||||||
|
@ -177,7 +177,7 @@ cat <<EOF > /opt/postfix/conf/sql/mysql_sasl_passwd_maps_sender_dependent.cf
|
||||||
# Autogenerated by mailcow
|
# Autogenerated by mailcow
|
||||||
user = ${DBUSER}
|
user = ${DBUSER}
|
||||||
password = ${DBPASS}
|
password = ${DBPASS}
|
||||||
hosts = unix:/var/run/mysqld/mysqld.sock
|
hosts = inet:${DBHOST}:${DBPORT}
|
||||||
dbname = ${DBNAME}
|
dbname = ${DBNAME}
|
||||||
query = SELECT CONCAT_WS(':', username, password) AS auth_data FROM relayhosts
|
query = SELECT CONCAT_WS(':', username, password) AS auth_data FROM relayhosts
|
||||||
WHERE id IN (
|
WHERE id IN (
|
||||||
|
@ -215,7 +215,7 @@ cat <<EOF > /opt/postfix/conf/sql/mysql_sasl_passwd_maps_transport_maps.cf
|
||||||
# Autogenerated by mailcow
|
# Autogenerated by mailcow
|
||||||
user = ${DBUSER}
|
user = ${DBUSER}
|
||||||
password = ${DBPASS}
|
password = ${DBPASS}
|
||||||
hosts = unix:/var/run/mysqld/mysqld.sock
|
hosts = inet:${DBHOST}:${DBPORT}
|
||||||
dbname = ${DBNAME}
|
dbname = ${DBNAME}
|
||||||
query = SELECT CONCAT_WS(':', username, password) AS auth_data FROM transports
|
query = SELECT CONCAT_WS(':', username, password) AS auth_data FROM transports
|
||||||
WHERE nexthop = '%s'
|
WHERE nexthop = '%s'
|
||||||
|
@ -228,7 +228,7 @@ cat <<EOF > /opt/postfix/conf/sql/mysql_virtual_alias_domain_maps.cf
|
||||||
# Autogenerated by mailcow
|
# Autogenerated by mailcow
|
||||||
user = ${DBUSER}
|
user = ${DBUSER}
|
||||||
password = ${DBPASS}
|
password = ${DBPASS}
|
||||||
hosts = unix:/var/run/mysqld/mysqld.sock
|
hosts = inet:${DBHOST}:${DBPORT}
|
||||||
dbname = ${DBNAME}
|
dbname = ${DBNAME}
|
||||||
query = SELECT username FROM mailbox, alias_domain
|
query = SELECT username FROM mailbox, alias_domain
|
||||||
WHERE alias_domain.alias_domain = '%d'
|
WHERE alias_domain.alias_domain = '%d'
|
||||||
|
@ -241,7 +241,7 @@ cat <<EOF > /opt/postfix/conf/sql/mysql_virtual_alias_maps.cf
|
||||||
# Autogenerated by mailcow
|
# Autogenerated by mailcow
|
||||||
user = ${DBUSER}
|
user = ${DBUSER}
|
||||||
password = ${DBPASS}
|
password = ${DBPASS}
|
||||||
hosts = unix:/var/run/mysqld/mysqld.sock
|
hosts = inet:${DBHOST}:${DBPORT}
|
||||||
dbname = ${DBNAME}
|
dbname = ${DBNAME}
|
||||||
query = SELECT goto FROM alias
|
query = SELECT goto FROM alias
|
||||||
WHERE address='%s'
|
WHERE address='%s'
|
||||||
|
@ -252,7 +252,7 @@ cat <<EOF > /opt/postfix/conf/sql/mysql_recipient_bcc_maps.cf
|
||||||
# Autogenerated by mailcow
|
# Autogenerated by mailcow
|
||||||
user = ${DBUSER}
|
user = ${DBUSER}
|
||||||
password = ${DBPASS}
|
password = ${DBPASS}
|
||||||
hosts = unix:/var/run/mysqld/mysqld.sock
|
hosts = inet:${DBHOST}:${DBPORT}
|
||||||
dbname = ${DBNAME}
|
dbname = ${DBNAME}
|
||||||
query = SELECT bcc_dest FROM bcc_maps
|
query = SELECT bcc_dest FROM bcc_maps
|
||||||
WHERE local_dest='%s'
|
WHERE local_dest='%s'
|
||||||
|
@ -264,7 +264,7 @@ cat <<EOF > /opt/postfix/conf/sql/mysql_sender_bcc_maps.cf
|
||||||
# Autogenerated by mailcow
|
# Autogenerated by mailcow
|
||||||
user = ${DBUSER}
|
user = ${DBUSER}
|
||||||
password = ${DBPASS}
|
password = ${DBPASS}
|
||||||
hosts = unix:/var/run/mysqld/mysqld.sock
|
hosts = inet:${DBHOST}:${DBPORT}
|
||||||
dbname = ${DBNAME}
|
dbname = ${DBNAME}
|
||||||
query = SELECT bcc_dest FROM bcc_maps
|
query = SELECT bcc_dest FROM bcc_maps
|
||||||
WHERE local_dest='%s'
|
WHERE local_dest='%s'
|
||||||
|
@ -276,7 +276,7 @@ cat <<EOF > /opt/postfix/conf/sql/mysql_recipient_canonical_maps.cf
|
||||||
# Autogenerated by mailcow
|
# Autogenerated by mailcow
|
||||||
user = ${DBUSER}
|
user = ${DBUSER}
|
||||||
password = ${DBPASS}
|
password = ${DBPASS}
|
||||||
hosts = unix:/var/run/mysqld/mysqld.sock
|
hosts = inet:${DBHOST}:${DBPORT}
|
||||||
dbname = ${DBNAME}
|
dbname = ${DBNAME}
|
||||||
query = SELECT new_dest FROM recipient_maps
|
query = SELECT new_dest FROM recipient_maps
|
||||||
WHERE old_dest='%s'
|
WHERE old_dest='%s'
|
||||||
|
@ -287,7 +287,7 @@ cat <<EOF > /opt/postfix/conf/sql/mysql_virtual_domains_maps.cf
|
||||||
# Autogenerated by mailcow
|
# Autogenerated by mailcow
|
||||||
user = ${DBUSER}
|
user = ${DBUSER}
|
||||||
password = ${DBPASS}
|
password = ${DBPASS}
|
||||||
hosts = unix:/var/run/mysqld/mysqld.sock
|
hosts = inet:${DBHOST}:${DBPORT}
|
||||||
dbname = ${DBNAME}
|
dbname = ${DBNAME}
|
||||||
query = SELECT alias_domain from alias_domain WHERE alias_domain='%s' AND active='1'
|
query = SELECT alias_domain from alias_domain WHERE alias_domain='%s' AND active='1'
|
||||||
UNION
|
UNION
|
||||||
|
@ -301,7 +301,7 @@ cat <<EOF > /opt/postfix/conf/sql/mysql_virtual_mailbox_maps.cf
|
||||||
# Autogenerated by mailcow
|
# Autogenerated by mailcow
|
||||||
user = ${DBUSER}
|
user = ${DBUSER}
|
||||||
password = ${DBPASS}
|
password = ${DBPASS}
|
||||||
hosts = unix:/var/run/mysqld/mysqld.sock
|
hosts = inet:${DBHOST}:${DBPORT}
|
||||||
dbname = ${DBNAME}
|
dbname = ${DBNAME}
|
||||||
query = SELECT CONCAT(JSON_UNQUOTE(JSON_VALUE(attributes, '$.mailbox_format')), mailbox_path_prefix, '%d/%u/') FROM mailbox WHERE username='%s' AND (active = '1' OR active = '2')
|
query = SELECT CONCAT(JSON_UNQUOTE(JSON_VALUE(attributes, '$.mailbox_format')), mailbox_path_prefix, '%d/%u/') FROM mailbox WHERE username='%s' AND (active = '1' OR active = '2')
|
||||||
EOF
|
EOF
|
||||||
|
@ -310,7 +310,7 @@ cat <<EOF > /opt/postfix/conf/sql/mysql_virtual_relay_domain_maps.cf
|
||||||
# Autogenerated by mailcow
|
# Autogenerated by mailcow
|
||||||
user = ${DBUSER}
|
user = ${DBUSER}
|
||||||
password = ${DBPASS}
|
password = ${DBPASS}
|
||||||
hosts = unix:/var/run/mysqld/mysqld.sock
|
hosts = inet:${DBHOST}:${DBPORT}
|
||||||
dbname = ${DBNAME}
|
dbname = ${DBNAME}
|
||||||
query = SELECT domain FROM domain WHERE domain='%s' AND backupmx = '1' AND active = '1'
|
query = SELECT domain FROM domain WHERE domain='%s' AND backupmx = '1' AND active = '1'
|
||||||
EOF
|
EOF
|
||||||
|
@ -319,7 +319,7 @@ cat <<EOF > /opt/postfix/conf/sql/mysql_virtual_sender_acl.cf
|
||||||
# Autogenerated by mailcow
|
# Autogenerated by mailcow
|
||||||
user = ${DBUSER}
|
user = ${DBUSER}
|
||||||
password = ${DBPASS}
|
password = ${DBPASS}
|
||||||
hosts = unix:/var/run/mysqld/mysqld.sock
|
hosts = inet:${DBHOST}:${DBPORT}
|
||||||
dbname = ${DBNAME}
|
dbname = ${DBNAME}
|
||||||
# First select queries domain and alias_domain to determine if domains are active.
|
# First select queries domain and alias_domain to determine if domains are active.
|
||||||
query = SELECT goto FROM alias
|
query = SELECT goto FROM alias
|
||||||
|
@ -374,7 +374,7 @@ cat <<EOF > /opt/postfix/conf/sql/mysql_mbr_access_maps.cf
|
||||||
# Autogenerated by mailcow
|
# Autogenerated by mailcow
|
||||||
user = ${DBUSER}
|
user = ${DBUSER}
|
||||||
password = ${DBPASS}
|
password = ${DBPASS}
|
||||||
hosts = unix:/var/run/mysqld/mysqld.sock
|
hosts = inet:${DBHOST}:${DBPORT}
|
||||||
dbname = ${DBNAME}
|
dbname = ${DBNAME}
|
||||||
query = SELECT CONCAT('FILTER smtp_via_transport_maps:', nexthop) as transport FROM transports
|
query = SELECT CONCAT('FILTER smtp_via_transport_maps:', nexthop) as transport FROM transports
|
||||||
WHERE '%s' REGEXP destination
|
WHERE '%s' REGEXP destination
|
||||||
|
@ -386,7 +386,7 @@ cat <<EOF > /opt/postfix/conf/sql/mysql_virtual_spamalias_maps.cf
|
||||||
# Autogenerated by mailcow
|
# Autogenerated by mailcow
|
||||||
user = ${DBUSER}
|
user = ${DBUSER}
|
||||||
password = ${DBPASS}
|
password = ${DBPASS}
|
||||||
hosts = unix:/var/run/mysqld/mysqld.sock
|
hosts = inet:${DBHOST}:${DBPORT}
|
||||||
dbname = ${DBNAME}
|
dbname = ${DBNAME}
|
||||||
query = SELECT goto FROM spamalias
|
query = SELECT goto FROM spamalias
|
||||||
WHERE address='%s'
|
WHERE address='%s'
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# Wait for MySQL to warm-up
|
# Wait for MySQL to warm-up
|
||||||
while ! mysqladmin status --socket=/var/run/mysqld/mysqld.sock -u${DBUSER} -p${DBPASS} --silent; do
|
while ! mysqladmin status --host=${DBHOST} --port=${DBPORT} -u${DBUSER} -p${DBPASS} --silent; do
|
||||||
echo "Waiting for database to come up..."
|
echo "Waiting for database to come up..."
|
||||||
sleep 2
|
sleep 2
|
||||||
done
|
done
|
||||||
|
@ -14,11 +14,11 @@ do
|
||||||
done
|
done
|
||||||
|
|
||||||
# Wait for updated schema
|
# Wait for updated schema
|
||||||
DBV_NOW=$(mysql --socket=/var/run/mysqld/mysqld.sock -u ${DBUSER} -p${DBPASS} ${DBNAME} -e "SELECT version FROM versions WHERE application = 'db_schema';" -BN)
|
DBV_NOW=$(mysql --host=${DBHOST} --port=${DBPORT} -u ${DBUSER} -p${DBPASS} ${DBNAME} -e "SELECT version FROM versions WHERE application = 'db_schema';" -BN)
|
||||||
DBV_NEW=$(grep -oE '\$db_version = .*;' init_db.inc.php | sed 's/$db_version = //g;s/;//g' | cut -d \" -f2)
|
DBV_NEW=$(grep -oE '\$db_version = .*;' init_db.inc.php | sed 's/$db_version = //g;s/;//g' | cut -d \" -f2)
|
||||||
while [[ "${DBV_NOW}" != "${DBV_NEW}" ]]; do
|
while [[ "${DBV_NOW}" != "${DBV_NEW}" ]]; do
|
||||||
echo "Waiting for schema update..."
|
echo "Waiting for schema update..."
|
||||||
DBV_NOW=$(mysql --socket=/var/run/mysqld/mysqld.sock -u ${DBUSER} -p${DBPASS} ${DBNAME} -e "SELECT version FROM versions WHERE application = 'db_schema';" -BN)
|
DBV_NOW=$(mysql --host=${DBHOST} --port=${DBPORT} -u ${DBUSER} -p${DBPASS} ${DBNAME} -e "SELECT version FROM versions WHERE application = 'db_schema';" -BN)
|
||||||
DBV_NEW=$(grep -oE '\$db_version = .*;' init_db.inc.php | sed 's/$db_version = //g;s/;//g' | cut -d \" -f2)
|
DBV_NEW=$(grep -oE '\$db_version = .*;' init_db.inc.php | sed 's/$db_version = //g;s/;//g' | cut -d \" -f2)
|
||||||
sleep 5
|
sleep 5
|
||||||
done
|
done
|
||||||
|
@ -27,9 +27,9 @@ echo "DB schema is ${DBV_NOW}"
|
||||||
# Recreate view
|
# Recreate view
|
||||||
if [[ "${MASTER}" =~ ^([yY][eE][sS]|[yY])+$ ]]; then
|
if [[ "${MASTER}" =~ ^([yY][eE][sS]|[yY])+$ ]]; then
|
||||||
echo "We are master, preparing sogo_view..."
|
echo "We are master, preparing sogo_view..."
|
||||||
mysql --socket=/var/run/mysqld/mysqld.sock -u ${DBUSER} -p${DBPASS} ${DBNAME} -e "DROP VIEW IF EXISTS sogo_view"
|
mysql --host=${DBHOST} --port=${DBPORT} -u ${DBUSER} -p${DBPASS} ${DBNAME} -e "DROP VIEW IF EXISTS sogo_view"
|
||||||
while [[ ${VIEW_OK} != 'OK' ]]; do
|
while [[ ${VIEW_OK} != 'OK' ]]; do
|
||||||
mysql --socket=/var/run/mysqld/mysqld.sock -u ${DBUSER} -p${DBPASS} ${DBNAME} << EOF
|
mysql --host=${DBHOST} --port=${DBPORT} -u ${DBUSER} -p${DBPASS} ${DBNAME} << EOF
|
||||||
CREATE VIEW sogo_view (c_uid, domain, c_name, c_password, c_cn, mail, aliases, ad_aliases, ext_acl, kind, multiple_bookings) AS
|
CREATE VIEW sogo_view (c_uid, domain, c_name, c_password, c_cn, mail, aliases, ad_aliases, ext_acl, kind, multiple_bookings) AS
|
||||||
SELECT
|
SELECT
|
||||||
mailbox.username,
|
mailbox.username,
|
||||||
|
@ -59,7 +59,7 @@ WHERE
|
||||||
GROUP BY
|
GROUP BY
|
||||||
mailbox.username;
|
mailbox.username;
|
||||||
EOF
|
EOF
|
||||||
if [[ ! -z $(mysql --socket=/var/run/mysqld/mysqld.sock -u ${DBUSER} -p${DBPASS} ${DBNAME} -B -e "SELECT 'OK' FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'sogo_view'") ]]; then
|
if [[ ! -z $(mysql --host=${DBHOST} --port=${DBPORT} -u ${DBUSER} -p${DBPASS} ${DBNAME} -B -e "SELECT 'OK' FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'sogo_view'") ]]; then
|
||||||
VIEW_OK=OK
|
VIEW_OK=OK
|
||||||
else
|
else
|
||||||
echo "Will retry to setup SOGo view in 3s..."
|
echo "Will retry to setup SOGo view in 3s..."
|
||||||
|
@ -68,7 +68,7 @@ EOF
|
||||||
done
|
done
|
||||||
else
|
else
|
||||||
while [[ ${VIEW_OK} != 'OK' ]]; do
|
while [[ ${VIEW_OK} != 'OK' ]]; do
|
||||||
if [[ ! -z $(mysql --socket=/var/run/mysqld/mysqld.sock -u ${DBUSER} -p${DBPASS} ${DBNAME} -B -e "SELECT 'OK' FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'sogo_view'") ]]; then
|
if [[ ! -z $(mysql --host=${DBHOST} --port=${DBPORT} -u ${DBUSER} -p${DBPASS} ${DBNAME} -B -e "SELECT 'OK' FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'sogo_view'") ]]; then
|
||||||
VIEW_OK=OK
|
VIEW_OK=OK
|
||||||
else
|
else
|
||||||
echo "Waiting for SOGo view to be created by master..."
|
echo "Waiting for SOGo view to be created by master..."
|
||||||
|
@ -81,12 +81,12 @@ fi
|
||||||
if [[ "${MASTER}" =~ ^([yY][eE][sS]|[yY])+$ ]]; then
|
if [[ "${MASTER}" =~ ^([yY][eE][sS]|[yY])+$ ]]; then
|
||||||
echo "We are master, preparing _sogo_static_view..."
|
echo "We are master, preparing _sogo_static_view..."
|
||||||
while [[ ${STATIC_VIEW_OK} != 'OK' ]]; do
|
while [[ ${STATIC_VIEW_OK} != 'OK' ]]; do
|
||||||
if [[ ! -z $(mysql --socket=/var/run/mysqld/mysqld.sock -u ${DBUSER} -p${DBPASS} ${DBNAME} -B -e "SELECT 'OK' FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = '_sogo_static_view'") ]]; then
|
if [[ ! -z $(mysql --host=${DBHOST} --port=${DBPORT} -u ${DBUSER} -p${DBPASS} ${DBNAME} -B -e "SELECT 'OK' FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = '_sogo_static_view'") ]]; then
|
||||||
STATIC_VIEW_OK=OK
|
STATIC_VIEW_OK=OK
|
||||||
echo "Updating _sogo_static_view content..."
|
echo "Updating _sogo_static_view content..."
|
||||||
# If changed, also update init_db.inc.php
|
# If changed, also update init_db.inc.php
|
||||||
mysql --socket=/var/run/mysqld/mysqld.sock -u ${DBUSER} -p${DBPASS} ${DBNAME} -B -e "REPLACE INTO _sogo_static_view (c_uid, domain, c_name, c_password, c_cn, mail, aliases, ad_aliases, ext_acl, kind, multiple_bookings) SELECT c_uid, domain, c_name, c_password, c_cn, mail, aliases, ad_aliases, ext_acl, kind, multiple_bookings from sogo_view;"
|
mysql --host=${DBHOST} --port=${DBPORT} -u ${DBUSER} -p${DBPASS} ${DBNAME} -B -e "REPLACE INTO _sogo_static_view (c_uid, domain, c_name, c_password, c_cn, mail, aliases, ad_aliases, ext_acl, kind, multiple_bookings) SELECT c_uid, domain, c_name, c_password, c_cn, mail, aliases, ad_aliases, ext_acl, kind, multiple_bookings from sogo_view;"
|
||||||
mysql --socket=/var/run/mysqld/mysqld.sock -u ${DBUSER} -p${DBPASS} ${DBNAME} -B -e "DELETE FROM _sogo_static_view WHERE c_uid NOT IN (SELECT username FROM mailbox WHERE active = '1')"
|
mysql --host=${DBHOST} --port=${DBPORT} -u ${DBUSER} -p${DBPASS} ${DBNAME} -B -e "DELETE FROM _sogo_static_view WHERE c_uid NOT IN (SELECT username FROM mailbox WHERE active = '1')"
|
||||||
else
|
else
|
||||||
echo "Waiting for database initialization..."
|
echo "Waiting for database initialization..."
|
||||||
sleep 3
|
sleep 3
|
||||||
|
@ -94,7 +94,7 @@ if [[ "${MASTER}" =~ ^([yY][eE][sS]|[yY])+$ ]]; then
|
||||||
done
|
done
|
||||||
else
|
else
|
||||||
while [[ ${STATIC_VIEW_OK} != 'OK' ]]; do
|
while [[ ${STATIC_VIEW_OK} != 'OK' ]]; do
|
||||||
if [[ ! -z $(mysql --socket=/var/run/mysqld/mysqld.sock -u ${DBUSER} -p${DBPASS} ${DBNAME} -B -e "SELECT 'OK' FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = '_sogo_static_view'") ]]; then
|
if [[ ! -z $(mysql --host=${DBHOST} --port=${DBPORT} -u ${DBUSER} -p${DBPASS} ${DBNAME} -B -e "SELECT 'OK' FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = '_sogo_static_view'") ]]; then
|
||||||
STATIC_VIEW_OK=OK
|
STATIC_VIEW_OK=OK
|
||||||
else
|
else
|
||||||
echo "Waiting for database initialization by master..."
|
echo "Waiting for database initialization by master..."
|
||||||
|
@ -107,9 +107,9 @@ fi
|
||||||
# Recreate password update trigger
|
# Recreate password update trigger
|
||||||
if [[ "${MASTER}" =~ ^([yY][eE][sS]|[yY])+$ ]]; then
|
if [[ "${MASTER}" =~ ^([yY][eE][sS]|[yY])+$ ]]; then
|
||||||
echo "We are master, preparing update trigger..."
|
echo "We are master, preparing update trigger..."
|
||||||
mysql --socket=/var/run/mysqld/mysqld.sock -u ${DBUSER} -p${DBPASS} ${DBNAME} -e "DROP TRIGGER IF EXISTS sogo_update_password"
|
mysql --host=${DBHOST} --port=${DBPORT} -u ${DBUSER} -p${DBPASS} ${DBNAME} -e "DROP TRIGGER IF EXISTS sogo_update_password"
|
||||||
while [[ ${TRIGGER_OK} != 'OK' ]]; do
|
while [[ ${TRIGGER_OK} != 'OK' ]]; do
|
||||||
mysql --socket=/var/run/mysqld/mysqld.sock -u ${DBUSER} -p${DBPASS} ${DBNAME} << EOF
|
mysql --host=${DBHOST} --port=${DBPORT} -u ${DBUSER} -p${DBPASS} ${DBNAME} << EOF
|
||||||
DELIMITER -
|
DELIMITER -
|
||||||
CREATE TRIGGER sogo_update_password AFTER UPDATE ON _sogo_static_view
|
CREATE TRIGGER sogo_update_password AFTER UPDATE ON _sogo_static_view
|
||||||
FOR EACH ROW
|
FOR EACH ROW
|
||||||
|
@ -119,7 +119,7 @@ END;
|
||||||
-
|
-
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
EOF
|
EOF
|
||||||
if [[ ! -z $(mysql --socket=/var/run/mysqld/mysqld.sock -u ${DBUSER} -p${DBPASS} ${DBNAME} -B -e "SELECT 'OK' FROM INFORMATION_SCHEMA.TRIGGERS WHERE TRIGGER_NAME = 'sogo_update_password'") ]]; then
|
if [[ ! -z $(mysql --host=${DBHOST} --port=${DBPORT} -u ${DBUSER} -p${DBPASS} ${DBNAME} -B -e "SELECT 'OK' FROM INFORMATION_SCHEMA.TRIGGERS WHERE TRIGGER_NAME = 'sogo_update_password'") ]]; then
|
||||||
TRIGGER_OK=OK
|
TRIGGER_OK=OK
|
||||||
else
|
else
|
||||||
echo "Will retry to setup SOGo password update trigger in 3s"
|
echo "Will retry to setup SOGo password update trigger in 3s"
|
||||||
|
@ -139,7 +139,7 @@ cat <<EOF > /var/lib/sogo/GNUstep/Defaults/sogod.plist
|
||||||
<plist version="0.9">
|
<plist version="0.9">
|
||||||
<dict>
|
<dict>
|
||||||
<key>OCSAclURL</key>
|
<key>OCSAclURL</key>
|
||||||
<string>mysql://${DBUSER}:${DBPASS}@%2Fvar%2Frun%2Fmysqld%2Fmysqld.sock/${DBNAME}/sogo_acl</string>
|
<string>mysql://${DBUSER}:${DBPASS}@${DBHOST}:${DBPORT}/${DBNAME}/sogo_acl</string>
|
||||||
<key>SOGoIMAPServer</key>
|
<key>SOGoIMAPServer</key>
|
||||||
<string>imap://${IPV4_NETWORK}.250:143/?TLS=YES&tlsVerifyMode=none</string>
|
<string>imap://${IPV4_NETWORK}.250:143/?TLS=YES&tlsVerifyMode=none</string>
|
||||||
<key>SOGoSieveServer</key>
|
<key>SOGoSieveServer</key>
|
||||||
|
@ -151,17 +151,17 @@ cat <<EOF > /var/lib/sogo/GNUstep/Defaults/sogod.plist
|
||||||
<key>SOGoEncryptionKey</key>
|
<key>SOGoEncryptionKey</key>
|
||||||
<string>${RAND_PASS}</string>
|
<string>${RAND_PASS}</string>
|
||||||
<key>OCSCacheFolderURL</key>
|
<key>OCSCacheFolderURL</key>
|
||||||
<string>mysql://${DBUSER}:${DBPASS}@%2Fvar%2Frun%2Fmysqld%2Fmysqld.sock/${DBNAME}/sogo_cache_folder</string>
|
<string>mysql://${DBUSER}:${DBPASS}@${DBHOST}:${DBPORT}/${DBNAME}/sogo_cache_folder</string>
|
||||||
<key>OCSEMailAlarmsFolderURL</key>
|
<key>OCSEMailAlarmsFolderURL</key>
|
||||||
<string>mysql://${DBUSER}:${DBPASS}@%2Fvar%2Frun%2Fmysqld%2Fmysqld.sock/${DBNAME}/sogo_alarms_folder</string>
|
<string>mysql://${DBUSER}:${DBPASS}@${DBHOST}:${DBPORT}/${DBNAME}/sogo_alarms_folder</string>
|
||||||
<key>OCSFolderInfoURL</key>
|
<key>OCSFolderInfoURL</key>
|
||||||
<string>mysql://${DBUSER}:${DBPASS}@%2Fvar%2Frun%2Fmysqld%2Fmysqld.sock/${DBNAME}/sogo_folder_info</string>
|
<string>mysql://${DBUSER}:${DBPASS}@${DBHOST}:${DBPORT}/${DBNAME}/sogo_folder_info</string>
|
||||||
<key>OCSSessionsFolderURL</key>
|
<key>OCSSessionsFolderURL</key>
|
||||||
<string>mysql://${DBUSER}:${DBPASS}@%2Fvar%2Frun%2Fmysqld%2Fmysqld.sock/${DBNAME}/sogo_sessions_folder</string>
|
<string>mysql://${DBUSER}:${DBPASS}@${DBHOST}:${DBPORT}/${DBNAME}/sogo_sessions_folder</string>
|
||||||
<key>OCSStoreURL</key>
|
<key>OCSStoreURL</key>
|
||||||
<string>mysql://${DBUSER}:${DBPASS}@%2Fvar%2Frun%2Fmysqld%2Fmysqld.sock/${DBNAME}/sogo_store</string>
|
<string>mysql://${DBUSER}:${DBPASS}@${DBHOST}:${DBPORT}/${DBNAME}/sogo_store</string>
|
||||||
<key>SOGoProfileURL</key>
|
<key>SOGoProfileURL</key>
|
||||||
<string>mysql://${DBUSER}:${DBPASS}@%2Fvar%2Frun%2Fmysqld%2Fmysqld.sock/${DBNAME}/sogo_user_profile</string>
|
<string>mysql://${DBUSER}:${DBPASS}@${DBHOST}:${DBPORT}/${DBNAME}/sogo_user_profile</string>
|
||||||
<key>SOGoTimeZone</key>
|
<key>SOGoTimeZone</key>
|
||||||
<string>${TZ}</string>
|
<string>${TZ}</string>
|
||||||
<key>domains</key>
|
<key>domains</key>
|
||||||
|
@ -207,14 +207,14 @@ while read -r line gal
|
||||||
<key>prependPasswordScheme</key>
|
<key>prependPasswordScheme</key>
|
||||||
<string>YES</string>
|
<string>YES</string>
|
||||||
<key>viewURL</key>
|
<key>viewURL</key>
|
||||||
<string>mysql://${DBUSER}:${DBPASS}@%2Fvar%2Frun%2Fmysqld%2Fmysqld.sock/${DBNAME}/_sogo_static_view</string>
|
<string>mysql://${DBUSER}:${DBPASS}@${DBHOST}:${DBPORT}/${DBNAME}/_sogo_static_view</string>
|
||||||
</dict>" >> /var/lib/sogo/GNUstep/Defaults/sogod.plist
|
</dict>" >> /var/lib/sogo/GNUstep/Defaults/sogod.plist
|
||||||
# Generate alternative LDAP authentication dict, when SQL authentication fails
|
# Generate alternative LDAP authentication dict, when SQL authentication fails
|
||||||
# This will nevertheless read attributes from LDAP
|
# This will nevertheless read attributes from LDAP
|
||||||
line=${line} envsubst < /etc/sogo/plist_ldap >> /var/lib/sogo/GNUstep/Defaults/sogod.plist
|
line=${line} envsubst < /etc/sogo/plist_ldap >> /var/lib/sogo/GNUstep/Defaults/sogod.plist
|
||||||
echo " </array>
|
echo " </array>
|
||||||
</dict>" >> /var/lib/sogo/GNUstep/Defaults/sogod.plist
|
</dict>" >> /var/lib/sogo/GNUstep/Defaults/sogod.plist
|
||||||
done < <(mysql --socket=/var/run/mysqld/mysqld.sock -u ${DBUSER} -p${DBPASS} ${DBNAME} -e "SELECT domain, CASE gal WHEN '1' THEN 'YES' ELSE 'NO' END AS gal FROM domain;" -B -N)
|
done < <(mysql --host=${DBHOST} --port=${DBPORT} -u ${DBUSER} -p${DBPASS} ${DBNAME} -e "SELECT domain, CASE gal WHEN '1' THEN 'YES' ELSE 'NO' END AS gal FROM domain;" -B -N)
|
||||||
|
|
||||||
# Generate footer
|
# Generate footer
|
||||||
echo ' </dict>
|
echo ' </dict>
|
||||||
|
|
|
@ -31,7 +31,7 @@ if [[ ! -p /tmp/com_pipe ]]; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Wait for containers
|
# Wait for containers
|
||||||
while ! mysqladmin status --socket=/var/run/mysqld/mysqld.sock -u${DBUSER} -p${DBPASS} --silent; do
|
while ! mysqladmin status --host=${DBHOST} --port=${DBPORT} -u${DBUSER} -p${DBPASS} --silent; do
|
||||||
echo "Waiting for SQL..."
|
echo "Waiting for SQL..."
|
||||||
sleep 2
|
sleep 2
|
||||||
done
|
done
|
||||||
|
@ -326,8 +326,8 @@ mysql_checks() {
|
||||||
while [ ${err_count} -lt ${THRESHOLD} ]; do
|
while [ ${err_count} -lt ${THRESHOLD} ]; do
|
||||||
touch /tmp/mysql-mailcow; echo "$(tail -50 /tmp/mysql-mailcow)" > /tmp/mysql-mailcow
|
touch /tmp/mysql-mailcow; echo "$(tail -50 /tmp/mysql-mailcow)" > /tmp/mysql-mailcow
|
||||||
err_c_cur=${err_count}
|
err_c_cur=${err_count}
|
||||||
/usr/lib/nagios/plugins/check_mysql -s /var/run/mysqld/mysqld.sock -u ${DBUSER} -p ${DBPASS} -d ${DBNAME} 2>> /tmp/mysql-mailcow 1>&2; err_count=$(( ${err_count} + $? ))
|
/usr/lib/nagios/plugins/check_mysql -H ${DBHOST} -P ${DBPORT} -u ${DBUSER} -p ${DBPASS} -d ${DBNAME} 2>> /tmp/mysql-mailcow 1>&2; err_count=$(( ${err_count} + $? ))
|
||||||
/usr/lib/nagios/plugins/check_mysql_query -s /var/run/mysqld/mysqld.sock -u ${DBUSER} -p ${DBPASS} -d ${DBNAME} -q "SELECT COUNT(*) FROM information_schema.tables" 2>> /tmp/mysql-mailcow 1>&2; err_count=$(( ${err_count} + $? ))
|
/usr/lib/nagios/plugins/check_mysql_query -H ${DBHOST} -P ${DBPORT} -u ${DBUSER} -p ${DBPASS} -d ${DBNAME} -q "SELECT COUNT(*) FROM information_schema.tables" 2>> /tmp/mysql-mailcow 1>&2; err_count=$(( ${err_count} + $? ))
|
||||||
[ ${err_c_cur} -eq ${err_count} ] && [ ! $((${err_count} - 1)) -lt 0 ] && err_count=$((${err_count} - 1)) diff_c=1
|
[ ${err_c_cur} -eq ${err_count} ] && [ ! $((${err_count} - 1)) -lt 0 ] && err_count=$((${err_count} - 1)) diff_c=1
|
||||||
[ ${err_c_cur} -ne ${err_count} ] && diff_c=$(( ${err_c_cur} - ${err_count} ))
|
[ ${err_c_cur} -ne ${err_count} ] && diff_c=$(( ${err_c_cur} - ${err_count} ))
|
||||||
progress "MySQL/MariaDB" ${THRESHOLD} $(( ${THRESHOLD} - ${err_count} )) ${diff_c}
|
progress "MySQL/MariaDB" ${THRESHOLD} $(( ${THRESHOLD} - ${err_count} )) ${diff_c}
|
||||||
|
@ -351,7 +351,7 @@ mysql_repl_checks() {
|
||||||
while [ ${err_count} -lt ${THRESHOLD} ]; do
|
while [ ${err_count} -lt ${THRESHOLD} ]; do
|
||||||
touch /tmp/mysql_repl_checks; echo "$(tail -50 /tmp/mysql_repl_checks)" > /tmp/mysql_repl_checks
|
touch /tmp/mysql_repl_checks; echo "$(tail -50 /tmp/mysql_repl_checks)" > /tmp/mysql_repl_checks
|
||||||
err_c_cur=${err_count}
|
err_c_cur=${err_count}
|
||||||
/usr/lib/nagios/plugins/check_mysql_slavestatus.sh -S /var/run/mysqld/mysqld.sock -u root -p ${DBROOT} 2>> /tmp/mysql_repl_checks 1>&2; err_count=$(( ${err_count} + $? ))
|
/usr/lib/nagios/plugins/check_mysql_slavestatus.sh -H ${DBHOST} -P ${DBPORT} -u root -p ${DBROOT} 2>> /tmp/mysql_repl_checks 1>&2; err_count=$(( ${err_count} + $? ))
|
||||||
[ ${err_c_cur} -eq ${err_count} ] && [ ! $((${err_count} - 1)) -lt 0 ] && err_count=$((${err_count} - 1)) diff_c=1
|
[ ${err_c_cur} -eq ${err_count} ] && [ ! $((${err_count} - 1)) -lt 0 ] && err_count=$((${err_count} - 1)) diff_c=1
|
||||||
[ ${err_c_cur} -ne ${err_count} ] && diff_c=$(( ${err_c_cur} - ${err_count} ))
|
[ ${err_c_cur} -ne ${err_count} ] && diff_c=$(( ${err_c_cur} - ${err_count} ))
|
||||||
progress "MySQL/MariaDB replication" ${THRESHOLD} $(( ${THRESHOLD} - ${err_count} )) ${diff_c}
|
progress "MySQL/MariaDB replication" ${THRESHOLD} $(( ${THRESHOLD} - ${err_count} )) ${diff_c}
|
||||||
|
|
|
@ -6,8 +6,7 @@ require_once "vars.inc.php";
|
||||||
// Do not show errors, we log to using error_log
|
// Do not show errors, we log to using error_log
|
||||||
ini_set('error_reporting', 0);
|
ini_set('error_reporting', 0);
|
||||||
// Init database
|
// Init database
|
||||||
//$dsn = $database_type . ':host=' . $database_host . ';dbname=' . $database_name;
|
$dsn = $database_type . ":host=" . $database_host . ";port=" . $database_port . ";dbname=" . $database_name
|
||||||
$dsn = $database_type . ":unix_socket=" . $database_sock . ";dbname=" . $database_name;
|
|
||||||
$opt = [
|
$opt = [
|
||||||
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
||||||
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
|
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
|
||||||
|
|
|
@ -6,8 +6,7 @@ require_once "vars.inc.php";
|
||||||
// Do not show errors, we log to using error_log
|
// Do not show errors, we log to using error_log
|
||||||
ini_set('error_reporting', 0);
|
ini_set('error_reporting', 0);
|
||||||
// Init database
|
// Init database
|
||||||
//$dsn = $database_type . ':host=' . $database_host . ';dbname=' . $database_name;
|
$dsn = $database_type . ":host=" . $database_host . ";port=" . $database_port . ";dbname=" . $database_name
|
||||||
$dsn = $database_type . ":unix_socket=" . $database_sock . ";dbname=" . $database_name;
|
|
||||||
$opt = [
|
$opt = [
|
||||||
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
||||||
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
|
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
|
||||||
|
|
|
@ -9,8 +9,7 @@ require_once "vars.inc.php";
|
||||||
// Getting headers sent by the client.
|
// Getting headers sent by the client.
|
||||||
ini_set('error_reporting', 0);
|
ini_set('error_reporting', 0);
|
||||||
|
|
||||||
//$dsn = $database_type . ':host=' . $database_host . ';dbname=' . $database_name;
|
$dsn = $database_type . ":host=" . $database_host . ";port=" . $database_port . ";dbname=" . $database_name
|
||||||
$dsn = $database_type . ":unix_socket=" . $database_sock . ";dbname=" . $database_name;
|
|
||||||
$opt = [
|
$opt = [
|
||||||
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
||||||
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
|
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
|
||||||
|
|
|
@ -6,8 +6,7 @@ require_once "vars.inc.php";
|
||||||
// Do not show errors, we log to using error_log
|
// Do not show errors, we log to using error_log
|
||||||
ini_set('error_reporting', 0);
|
ini_set('error_reporting', 0);
|
||||||
// Init database
|
// Init database
|
||||||
//$dsn = $database_type . ':host=' . $database_host . ';dbname=' . $database_name;
|
$dsn = $database_type . ":host=" . $database_host . ";port=" . $database_port . ";dbname=" . $database_name;
|
||||||
$dsn = $database_type . ":unix_socket=" . $database_sock . ";dbname=" . $database_name;
|
|
||||||
$opt = [
|
$opt = [
|
||||||
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
||||||
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
|
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
|
||||||
|
|
|
@ -6,8 +6,7 @@ require_once "vars.inc.php";
|
||||||
// Do not show errors, we log to using error_log
|
// Do not show errors, we log to using error_log
|
||||||
ini_set('error_reporting', 0);
|
ini_set('error_reporting', 0);
|
||||||
// Init database
|
// Init database
|
||||||
//$dsn = $database_type . ':host=' . $database_host . ';dbname=' . $database_name;
|
$dsn = $database_type . ":host=" . $database_host . ";port=" . $database_port . ";dbname=" . $database_name
|
||||||
$dsn = $database_type . ":unix_socket=" . $database_sock . ";dbname=" . $database_name;
|
|
||||||
$opt = [
|
$opt = [
|
||||||
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
||||||
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
|
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
|
||||||
|
|
|
@ -41,8 +41,8 @@ if (getenv('SKIP_SOGO') == "y") {
|
||||||
$autodiscover_config['autodiscoverType'] = 'imap';
|
$autodiscover_config['autodiscoverType'] = 'imap';
|
||||||
}
|
}
|
||||||
|
|
||||||
//$dsn = $database_type . ":host=" . $database_host . ";dbname=" . $database_name;
|
$dsn = $database_type . ":host=" . $database_host . ";port=" . $database_port . ";dbname=" . $database_name;
|
||||||
$dsn = $database_type . ":unix_socket=" . $database_sock . ";dbname=" . $database_name;
|
|
||||||
$opt = [
|
$opt = [
|
||||||
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
||||||
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
|
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
|
||||||
|
|
|
@ -1443,7 +1443,7 @@ if (php_sapi_name() == "cli") {
|
||||||
// $hrs = floor($mins / 60);
|
// $hrs = floor($mins / 60);
|
||||||
// $mins -= $hrs * 60;
|
// $mins -= $hrs * 60;
|
||||||
// $offset = sprintf('%+d:%02d', $hrs*$sgn, $mins);
|
// $offset = sprintf('%+d:%02d', $hrs*$sgn, $mins);
|
||||||
$dsn = $database_type . ":unix_socket=" . $database_sock . ";dbname=" . $database_name;
|
$dsn = $database_type . ":host=" . $database_host . ";port=" . $database_port . ";dbname=" . $database_name;
|
||||||
$opt = [
|
$opt = [
|
||||||
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
||||||
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
|
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
|
||||||
|
|
|
@ -86,7 +86,7 @@ exit;
|
||||||
// $mins -= $hrs * 60;
|
// $mins -= $hrs * 60;
|
||||||
// $offset = sprintf('%+d:%02d', $hrs*$sgn, $mins);
|
// $offset = sprintf('%+d:%02d', $hrs*$sgn, $mins);
|
||||||
|
|
||||||
$dsn = $database_type . ":unix_socket=" . $database_sock . ";dbname=" . $database_name;
|
$dsn = $database_type . ":host=" . $database_host . ";port=" . $database_port . ";dbname=" . $database_name;
|
||||||
$opt = [
|
$opt = [
|
||||||
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
||||||
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
|
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
|
||||||
|
|
|
@ -9,8 +9,8 @@ This file will be reset on upgrades.
|
||||||
|
|
||||||
// SQL database connection variables
|
// SQL database connection variables
|
||||||
$database_type = 'mysql';
|
$database_type = 'mysql';
|
||||||
$database_sock = '/var/run/mysqld/mysqld.sock';
|
$database_host = getenv('DBHOST');
|
||||||
$database_host = 'mysql';
|
$database_port = getenv('DBHOST');
|
||||||
$database_user = getenv('DBUSER');
|
$database_user = getenv('DBUSER');
|
||||||
$database_pass = getenv('DBPASS');
|
$database_pass = getenv('DBPASS');
|
||||||
$database_name = getenv('DBNAME');
|
$database_name = getenv('DBNAME');
|
||||||
|
|
|
@ -227,6 +227,8 @@ MAILCOW_PASS_SCHEME=BLF-CRYPT
|
||||||
# SQL database configuration
|
# SQL database configuration
|
||||||
# ------------------------------
|
# ------------------------------
|
||||||
|
|
||||||
|
DBHOST=mysql-mailcow
|
||||||
|
DBPORT=3306
|
||||||
DBNAME=mailcow
|
DBNAME=mailcow
|
||||||
DBUSER=mailcow
|
DBUSER=mailcow
|
||||||
|
|
||||||
|
@ -538,4 +540,4 @@ else
|
||||||
echo -e "\e[33mCannot determine current git repository version...\e[0m"
|
echo -e "\e[33mCannot determine current git repository version...\e[0m"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
detect_bad_asn
|
detect_bad_asn
|
||||||
|
|
Loading…
Reference in New Issue