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
[Feature] Add HAProxy listeners and an example override file
0cfdd763
data/conf/dovecot/dovecot.conf | 18 ++++++++++++++++++
data/conf/postfix/master.cf | 18 ++++++++++++++++++
.../HAPROXY/docker-compose.override.yml | 19 +++++++++++++++++++
3 files changed, 55 insertions(+)
create mode 100644 helper-scripts/docker-compose.override.yml.d/HAPROXY/docker-compose.override.yml
Diff
diff --git a/data/conf/dovecot/dovecot.conf b/data/conf/dovecot/dovecot.conf
index 29ccd7aa..62baa41b 100644
--- a/data/conf/dovecot/dovecot.conf
+++ b/data/conf/dovecot/dovecot.conf
@@ -312,10 +312,28 @@ service imap-login {
process_limit = 10000
vsz_limit = 1G
user = dovenull
+ inet_listener imap_haproxy {
+ port = 10143
+ haproxy = yes
+ }
+ inet_listener imaps_haproxy {
+ port = 10993
+ ssl = yes
+ haproxy = yes
+ }
}
service pop3-login {
service_count = 1
vsz_limit = 1G
+ inet_listener pop3_haproxy {
+ port = 10110
+ haproxy = yes
+ }
+ inet_listener pop3s_haproxy {
+ port = 10995
+ ssl = yes
+ haproxy = yes
+ }
}
service imap {
executable = imap imap-postlogin
diff --git a/data/conf/postfix/master.cf b/data/conf/postfix/master.cf
index 89ba5dd9..0bb445d8 100644
--- a/data/conf/postfix/master.cf
+++ b/data/conf/postfix/master.cf
@@ -1,5 +1,8 @@
# inter-mx with postscreen on 25/tcp
smtp inet n - n - 1 postscreen
+10025 inet n - n - 1 postscreen
+ -o postscreen_upstream_proxy_protocol=haproxy
+ -o syslog_name=haproxy
smtpd pass - - n - - smtpd
-o smtpd_helo_restrictions=permit_mynetworks,reject_non_fqdn_helo_hostname
-o smtpd_sasl_auth_enable=no
@@ -13,6 +16,13 @@ smtps inet n - n - - smtpd
-o smtpd_tls_mandatory_protocols=$smtps_smtpd_tls_mandatory_protocols
-o tls_preempt_cipherlist=yes
-o syslog_name=postfix/smtps
+10465 inet n - n - - smtpd
+ -o smtpd_upstream_proxy_protocol=haproxy
+ -o smtpd_tls_wrappermode=yes
+ -o smtpd_client_restrictions=permit_mynetworks,permit_sasl_authenticated,reject
+ -o smtpd_tls_mandatory_protocols=$smtps_smtpd_tls_mandatory_protocols
+ -o tls_preempt_cipherlist=yes
+ -o syslog_name=postfix/smtps-haproxy
# smtpd with starttls on 587/tcp
# TLS protocol can be modified by setting submission_smtpd_tls_mandatory_protocols in extra.cf
@@ -23,6 +33,14 @@ submission inet n - n - - smtpd
-o smtpd_tls_mandatory_protocols=$submission_smtpd_tls_mandatory_protocols
-o tls_preempt_cipherlist=yes
-o syslog_name=postfix/submission
+10587 inet n - n - - smtpd
+ -o smtpd_upstream_proxy_protocol=haproxy
+ -o smtpd_client_restrictions=permit_mynetworks,permit_sasl_authenticated,reject
+ -o smtpd_enforce_tls=yes
+ -o smtpd_tls_security_level=encrypt
+ -o smtpd_tls_mandatory_protocols=$submission_smtpd_tls_mandatory_protocols
+ -o tls_preempt_cipherlist=yes
+ -o syslog_name=postfix/submission-haproxy
# used by SOGo
# smtpd_sender_restrictions should match main.cf, but with check_sasl_access prepended for login-as-mailbox-user function
diff --git a/helper-scripts/docker-compose.override.yml.d/HAPROXY/docker-compose.override.yml b/helper-scripts/docker-compose.override.yml.d/HAPROXY/docker-compose.override.yml
new file mode 100644
index 00000000..9ebe4e96
--- /dev/null
+++ b/helper-scripts/docker-compose.override.yml.d/HAPROXY/docker-compose.override.yml
@@ -0,0 +1,19 @@
+##
+## Set haproxy_trusted_networks in Dovecots extra.conf!
+#รค
+
+version: '2.1'
+services:
+
+ dovecot-mailcow:
+ ports:
+ - "${IMAP_PORT_HAPROXY:-127.0.0.1:10143}:10143"
+ - "${IMAPS_PORT_HAPROXY:-127.0.0.1:10993}:10993"
+ - "${POP_PORT_HAPROXY:-127.0.0.1:10110}:10110"
+ - "${POPS_PORT_HAPROXY:-127.0.0.1:10995}:10995"
+
+ postfix-mailcow:
+ ports:
+ - "${SMTP_PORT_HAPROXY:-127.0.0.1:10025}:10025"
+ - "${SMTPS_PORT_HAPROXY:-127.0.0.1:10465}:10465"
+ - "${SUBMISSION_PORT_HAPROXY:-127.0.0.1:10587}:10587"