1
0
mirror of https://github.com/mailcow/mailcow-dockerized.git synced 2025-12-21 13:51:29 +00:00

Set SOGo related hosts from env var

This commit is contained in:
FreddleSpl0it
2025-05-30 20:46:49 +02:00
parent 6382e3128d
commit e8d155d7e0
9 changed files with 30 additions and 21 deletions

View File

@@ -10,7 +10,7 @@ class BootstrapNginx(BootstrapBase):
# wait for Hosts # wait for Hosts
php_service = os.getenv("PHPFPMHOST") or "php-fpm-mailcow" php_service = os.getenv("PHPFPMHOST") or "php-fpm-mailcow"
rspamd_service = os.getenv("RSPAMDHOST") or "rspamd-mailcow" rspamd_service = os.getenv("RSPAMDHOST") or "rspamd-mailcow"
sogo_service = os.getenv("SOGOHOST") or os.getenv("IPV4_NETWORK", "172.22.1") + ".248" sogo_service = os.getenv("SOGOHOST")
self.wait_for_host(php_service) self.wait_for_host(php_service)
if not self.isYes(os.getenv("SKIP_RSPAMD", False)): if not self.isYes(os.getenv("SKIP_RSPAMD", False)):
self.wait_for_host(rspamd_service) self.wait_for_host(rspamd_service)

View File

@@ -17,7 +17,7 @@ class BootstrapSogo(BootstrapBase):
self.connect_mysql() self.connect_mysql()
# Wait until port is free # Wait until port is free
while self.is_port_open("sogo-mailcow", 20000): while self.is_port_open(os.getenv("SOGO_HOST"), 20000):
print("Port 20000 still in use — terminating sogod...") print("Port 20000 still in use — terminating sogod...")
self.kill_proc("sogod") self.kill_proc("sogod")
time.sleep(3) time.sleep(3)

View File

@@ -34,7 +34,7 @@ RUN apk add --update \
&& curl https://raw.githubusercontent.com/mludvig/smtp-cli/v3.10/smtp-cli -o /smtp-cli \ && curl https://raw.githubusercontent.com/mludvig/smtp-cli/v3.10/smtp-cli -o /smtp-cli \
&& chmod +x smtp-cli && chmod +x smtp-cli
COPY watchdog.sh /watchdog.sh COPY data/Dockerfiles/watchdog/watchdog.sh /watchdog.sh
COPY check_mysql_slavestatus.sh /usr/lib/nagios/plugins/check_mysql_slavestatus.sh COPY data/Dockerfiles/watchdog/check_mysql_slavestatus.sh /usr/lib/nagios/plugins/check_mysql_slavestatus.sh
CMD ["/watchdog.sh"] CMD ["/watchdog.sh"]

View File

@@ -402,7 +402,7 @@ sogo_checks() {
trap "[ ${err_count} -gt 1 ] && err_count=$(( ${err_count} - 2 ))" USR1 trap "[ ${err_count} -gt 1 ] && err_count=$(( ${err_count} - 2 ))" USR1
while [ ${err_count} -lt ${THRESHOLD} ]; do while [ ${err_count} -lt ${THRESHOLD} ]; do
touch /tmp/sogo-mailcow; echo "$(tail -50 /tmp/sogo-mailcow)" > /tmp/sogo-mailcow touch /tmp/sogo-mailcow; echo "$(tail -50 /tmp/sogo-mailcow)" > /tmp/sogo-mailcow
host_ip=$(get_container_ip sogo-mailcow) host_ip=$SOGO_HOST
err_c_cur=${err_count} err_c_cur=${err_count}
/usr/lib/nagios/plugins/check_http -4 -H ${host_ip} -u /SOGo.index/ -p 20000 2>> /tmp/sogo-mailcow 1>&2; err_count=$(( ${err_count} + $? )) /usr/lib/nagios/plugins/check_http -4 -H ${host_ip} -u /SOGo.index/ -p 20000 2>> /tmp/sogo-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

View File

@@ -67,7 +67,7 @@ require_once 'functions.ratelimit.inc.php';
require_once 'functions.acl.inc.php'; require_once 'functions.acl.inc.php';
$isSOGoRequest = $post['real_rip'] == getenv('IPV4_NETWORK') . '.248'; $isSOGoRequest = $post['real_rip'] == getenv('SOGO_HOST');
$result = false; $result = false;
if ($isSOGoRequest) { if ($isSOGoRequest) {
// This is a SOGo Auth request. First check for SSO password. // This is a SOGo Auth request. First check for SSO password.

View File

@@ -1,3 +1,3 @@
remote {{ IPV4_NETWORK }}.248 { remote {{ SOGO_HOST }} {
disable_plaintext_auth = no disable_plaintext_auth = no
} }

View File

@@ -43,7 +43,7 @@
// self-signed is not trusted anymore // self-signed is not trusted anymore
WOPort = "0.0.0.0:20000"; WOPort = "0.0.0.0:20000";
SOGoMemcachedHost = "memcached"; SOGoMemcachedHost = "{{ MEMCACHED_HOST }}";
SOGoLanguage = English; SOGoLanguage = English;
SOGoMailAuxiliaryUserAccountsEnabled = YES; SOGoMailAuxiliaryUserAccountsEnabled = YES;

View File

@@ -3,31 +3,31 @@
<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 }}@{{ DB_HOST }}/{{ DBNAME }}/sogo_acl</string>
<key>SOGoIMAPServer</key> <key>SOGoIMAPServer</key>
<string>imap://{{IPV4_NETWORK}}.250:143/?TLS=YES&amp;tlsVerifyMode=none</string> <string>imap://{{ DOVECOT_HOST }}:143/?TLS=YES&amp;tlsVerifyMode=none</string>
<key>SOGoSieveServer</key> <key>SOGoSieveServer</key>
<string>sieve://{{IPV4_NETWORK}}.250:4190/?TLS=YES&amp;tlsVerifyMode=none</string> <string>sieve://{{ DOVECOT_HOST}}:4190/?TLS=YES&amp;tlsVerifyMode=none</string>
<key>SOGoSMTPServer</key> <key>SOGoSMTPServer</key>
<string>smtp://{{IPV4_NETWORK}}.253:588/?TLS=YES&amp;tlsVerifyMode=none</string> <string>smtp://{{ POSTFIX_HOST }}:588/?TLS=YES&amp;tlsVerifyMode=none</string>
<key>SOGoTrustProxyAuthentication</key> <key>SOGoTrustProxyAuthentication</key>
<string>YES</string> <string>YES</string>
<key>SOGoEncryptionKey</key> <key>SOGoEncryptionKey</key>
<string>{{RAND_PASS}}</string> <string>{{RAND_PASS}}</string>
<key>OCSAdminURL</key> <key>OCSAdminURL</key>
<string>mysql://{{DBUSER}}:{{DBPASS}}@%2Fvar%2Frun%2Fmysqld%2Fmysqld.sock/{{DBNAME}}/sogo_admin</string> <string>mysql://{{ DBUSER }}:{{ DBPASS }}@{{ DB_HOST }}/{{ DBNAME }}/sogo_admin</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 }}@{{ DB_HOST }}/{{ 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 }}@{{ DB_HOST }}/{{ 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 }}@{{ DB_HOST }}/{{ 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 }}@{{ DB_HOST }}/{{ 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 }}@{{ DB_HOST }}/{{ 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 }}@{{ DB_HOST }}/{{ DBNAME }}/sogo_user_profile</string>
<key>SOGoTimeZone</key> <key>SOGoTimeZone</key>
<string>{{TZ}}</string> <string>{{TZ}}</string>
<key>domains</key> <key>domains</key>
@@ -69,7 +69,7 @@
<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 }}@{{ DB_HOST }}/{{ DBNAME }}/_sogo_static_view</string>
</dict> </dict>
{% if IAM_SETTINGS.authsource == "ldap" and domain.ldap_gal %} {% if IAM_SETTINGS.authsource == "ldap" and domain.ldap_gal %}
<dict> <dict>

View File

@@ -198,6 +198,7 @@ services:
- WEBAUTHN_ONLY_TRUSTED_VENDORS=${WEBAUTHN_ONLY_TRUSTED_VENDORS:-n} - WEBAUTHN_ONLY_TRUSTED_VENDORS=${WEBAUTHN_ONLY_TRUSTED_VENDORS:-n}
- CLUSTERMODE=${CLUSTERMODE:-} - CLUSTERMODE=${CLUSTERMODE:-}
- ADDITIONAL_SERVER_NAMES=${ADDITIONAL_SERVER_NAMES:-} - ADDITIONAL_SERVER_NAMES=${ADDITIONAL_SERVER_NAMES:-}
- SOGO_HOST=${SOGO_HOST:-172.22.1.248}
restart: always restart: always
labels: labels:
ofelia.enabled: "true" ofelia.enabled: "true"
@@ -232,6 +233,11 @@ services:
- REDIS_SLAVEOF_IP=${REDIS_SLAVEOF_IP:-} - REDIS_SLAVEOF_IP=${REDIS_SLAVEOF_IP:-}
- REDIS_SLAVEOF_PORT=${REDIS_SLAVEOF_PORT:-} - REDIS_SLAVEOF_PORT=${REDIS_SLAVEOF_PORT:-}
- REDISPASS=${REDISPASS} - REDISPASS=${REDISPASS}
- DB_HOST=${DB_HOST:-%2Fvar%2Frun%2Fmysqld%2Fmysqld.sock}
- SOGO_HOST=${SOGO_HOST:-172.22.1.248}
- DOVECOT_HOST=${DOVECOT_HOST:-172.22.1.250}
- POSTFIX_HOST=${POSTFIX_HOST:-172.22.1.253}
- MEMCACHED_HOST=${MEMCACHED_HOST:-172.22.1.247}
dns: dns:
- ${IPV4_NETWORK:-172.22.1}.254 - ${IPV4_NETWORK:-172.22.1}.254
volumes: volumes:
@@ -317,6 +323,7 @@ services:
- REDIS_SLAVEOF_PORT=${REDIS_SLAVEOF_PORT:-} - REDIS_SLAVEOF_PORT=${REDIS_SLAVEOF_PORT:-}
- REDISPASS=${REDISPASS} - REDISPASS=${REDISPASS}
- COMPOSE_PROJECT_NAME=${COMPOSE_PROJECT_NAME:-mailcow-dockerized} - COMPOSE_PROJECT_NAME=${COMPOSE_PROJECT_NAME:-mailcow-dockerized}
- SOGO_HOST=${SOGO_HOST:-172.22.1.248}
ports: ports:
- "${DOVEADM_PORT:-127.0.0.1:19991}:12345" - "${DOVEADM_PORT:-127.0.0.1:19991}:12345"
- "${IMAP_PORT:-143}:143" - "${IMAP_PORT:-143}:143"
@@ -407,6 +414,7 @@ services:
- TZ=${TZ} - TZ=${TZ}
networks: networks:
mailcow-network: mailcow-network:
ipv4_address: ${IPV4_NETWORK:-172.22.1}.247
aliases: aliases:
- memcached - memcached
@@ -526,7 +534,7 @@ services:
- /lib/modules:/lib/modules:ro - /lib/modules:/lib/modules:ro
watchdog-mailcow: watchdog-mailcow:
image: ghcr.io/mailcow/watchdog:2.08 image: ghcr.io/mailcow/watchdog:nightly-19052025
dns: dns:
- ${IPV4_NETWORK:-172.22.1}.254 - ${IPV4_NETWORK:-172.22.1}.254
tmpfs: tmpfs:
@@ -593,6 +601,7 @@ services:
- OLEFY_THRESHOLD=${OLEFY_THRESHOLD:-5} - OLEFY_THRESHOLD=${OLEFY_THRESHOLD:-5}
- MAILQ_THRESHOLD=${MAILQ_THRESHOLD:-20} - MAILQ_THRESHOLD=${MAILQ_THRESHOLD:-20}
- MAILQ_CRIT=${MAILQ_CRIT:-30} - MAILQ_CRIT=${MAILQ_CRIT:-30}
- SOGO_HOST=${SOGO_HOST:-172.22.1.248}
networks: networks:
mailcow-network: mailcow-network:
aliases: aliases: