public
nobgit
read
NobMail
Based on mailcow: dockerized
Languages
Repository composition by tracked source files.
PHP
49%
JavaScript
35%
HTML
9%
CSS
4%
Shell
2%
Python
1%
Lua
0%
Perl
0%
Ruby
0%
SCSS
0%
Create file
Wiki Documentation
Clone
https://nobgit.com/orgs/nobgit/nobmail.git
ssh://[email protected]:2222/orgs/nobgit/nobmail.git
Commit
[Web] add CLUSTERMODE environment variable
0f695657
data/web/inc/functions.mailbox.inc.php | 15 ++++++++++++++-
docker-compose.yml | 1 +
2 files changed, 15 insertions(+), 1 deletion(-)
Diff
diff --git a/data/web/inc/functions.mailbox.inc.php b/data/web/inc/functions.mailbox.inc.php
index a06e5c22..8bc6da22 100644
--- a/data/web/inc/functions.mailbox.inc.php
+++ b/data/web/inc/functions.mailbox.inc.php
@@ -4930,7 +4930,20 @@ function mailbox($_action, $_type, $_data = null, $_extra = null) {
if (!empty($mailbox_details['domain']) && !empty($mailbox_details['local_part'])) {
$maildir = $mailbox_details['domain'] . '/' . $mailbox_details['local_part'];
$exec_fields = array('cmd' => 'maildir', 'task' => 'cleanup', 'maildir' => $maildir);
- docker('broadcast', 'dovecot-mailcow', 'exec', $exec_fields);
+
+ if (getenv("CLUSTERMODE") == "replication") {
+ // broadcast to each dovecot container
+ docker('broadcast', 'dovecot-mailcow', 'exec', $exec_fields);
+ } else {
+ $maildir_gc = json_decode(docker('post', 'dovecot-mailcow', 'exec', $exec_fields), true);
+ if ($maildir_gc['type'] != 'success') {
+ $_SESSION['return'][] = array(
+ 'type' => 'warning',
+ 'log' => array(__FUNCTION__, $_action, $_type, $_data_log, $_attr),
+ 'msg' => 'Could not move maildir to garbage collector: ' . $maildir_gc['msg']
+ );
+ }
+ }
}
else {
$_SESSION['return'][] = array(
diff --git a/docker-compose.yml b/docker-compose.yml
index a5a8f95b..4c854aeb 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -162,6 +162,7 @@ services:
- DEV_MODE=${DEV_MODE:-n}
- DEMO_MODE=${DEMO_MODE:-n}
- WEBAUTHN_ONLY_TRUSTED_VENDORS=${WEBAUTHN_ONLY_TRUSTED_VENDORS:-n}
+ - CLUSTERMODE=${CLUSTERMODE:-}
restart: always
networks:
mailcow-network: