You've already forked Mailu
mirror of
https://github.com/Mailu/Mailu.git
synced 2025-07-01 00:44:57 +02:00
Fix #3450
This commit is contained in:
@ -64,7 +64,7 @@ test_unsupported()
|
|||||||
|
|
||||||
cmdline = [
|
cmdline = [
|
||||||
"gunicorn",
|
"gunicorn",
|
||||||
"--threads", f"{os.cpu_count()}",
|
"--threads", f"{CPU_COUNT}",
|
||||||
# If SUBNET6 is defined, gunicorn must listen on IPv6 as well as IPv4
|
# If SUBNET6 is defined, gunicorn must listen on IPv6 as well as IPv4
|
||||||
"-b", f"{'[::]' if os.environ.get('SUBNET6') else '0.0.0.0'}:8080",
|
"-b", f"{'[::]' if os.environ.get('SUBNET6') else '0.0.0.0'}:8080",
|
||||||
"--logger-class mailu.Logger",
|
"--logger-class mailu.Logger",
|
||||||
|
@ -141,6 +141,7 @@ def clean_env():
|
|||||||
for item in os.environ.get('TLS', ALL_PORTS).split(','):
|
for item in os.environ.get('TLS', ALL_PORTS).split(','):
|
||||||
if item in PORTS_REQUIRING_TLS:
|
if item in PORTS_REQUIRING_TLS:
|
||||||
os.environ[f'TLS_{item}']='True'
|
os.environ[f'TLS_{item}']='True'
|
||||||
|
os.environ['CPU_COUNT'] = str(os.cpu_count())
|
||||||
|
|
||||||
def drop_privs_to(username='mailu'):
|
def drop_privs_to(username='mailu'):
|
||||||
pwnam = getpwnam(username)
|
pwnam = getpwnam(username)
|
||||||
|
@ -89,8 +89,7 @@ plugin {
|
|||||||
|
|
||||||
service indexer-worker {
|
service indexer-worker {
|
||||||
executable = /bin/nice -n 10 /usr/libexec/dovecot/indexer-worker
|
executable = /bin/nice -n 10 /usr/libexec/dovecot/indexer-worker
|
||||||
# TODO: maybe MAXPROC? I guess it depends on how much RAM is available
|
process_limit = {{ CPU_COUNT }}
|
||||||
process_limit = 1
|
|
||||||
}
|
}
|
||||||
|
|
||||||
###############
|
###############
|
||||||
@ -137,12 +136,22 @@ service imap-login {
|
|||||||
inet_listener imap {
|
inet_listener imap {
|
||||||
port = 143
|
port = 143
|
||||||
}
|
}
|
||||||
|
service_count = 0
|
||||||
|
client_limit = 25000
|
||||||
|
process_min_avail = {{ CPU_COUNT }}
|
||||||
|
process_limit = {{ CPU_COUNT }}
|
||||||
|
vsz_limit = 256M
|
||||||
}
|
}
|
||||||
|
|
||||||
service pop3-login {
|
service pop3-login {
|
||||||
inet_listener pop3 {
|
inet_listener pop3 {
|
||||||
port = 110
|
port = 110
|
||||||
}
|
}
|
||||||
|
service_count = 0
|
||||||
|
client_limit = 25000
|
||||||
|
process_min_avail = {{ CPU_COUNT }}
|
||||||
|
process_limit = {{ CPU_COUNT }}
|
||||||
|
vsz_limit = 256M
|
||||||
}
|
}
|
||||||
|
|
||||||
###############
|
###############
|
||||||
@ -166,6 +175,11 @@ service managesieve-login {
|
|||||||
inet_listener sieve {
|
inet_listener sieve {
|
||||||
port = 4190
|
port = 4190
|
||||||
}
|
}
|
||||||
|
service_count = 0
|
||||||
|
client_limit = 25000
|
||||||
|
process_min_avail = {{ CPU_COUNT }}
|
||||||
|
process_limit = {{ CPU_COUNT }}
|
||||||
|
vsz_limit = 256M
|
||||||
}
|
}
|
||||||
|
|
||||||
protocol sieve {
|
protocol sieve {
|
||||||
|
@ -87,6 +87,11 @@ service managesieve-login {
|
|||||||
inet_listener sieve-webmail {
|
inet_listener sieve-webmail {
|
||||||
port = 14190
|
port = 14190
|
||||||
}
|
}
|
||||||
|
service_count = 0
|
||||||
|
client_limit = 25000
|
||||||
|
process_min_avail = {{ CPU_COUNT }}
|
||||||
|
process_limit = {{ CPU_COUNT }}
|
||||||
|
vsz_limit = 256M
|
||||||
}
|
}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
@ -114,6 +119,11 @@ service imap-login {
|
|||||||
inet_listener imap-webmail {
|
inet_listener imap-webmail {
|
||||||
port = 10143
|
port = 10143
|
||||||
}
|
}
|
||||||
|
service_count = 0
|
||||||
|
client_limit = 25000
|
||||||
|
process_min_avail = {{ CPU_COUNT }}
|
||||||
|
process_limit = {{ CPU_COUNT }}
|
||||||
|
vsz_limit = 256M
|
||||||
}
|
}
|
||||||
|
|
||||||
service pop3-login {
|
service pop3-login {
|
||||||
@ -132,6 +142,11 @@ service pop3-login {
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
}
|
}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
service_count = 0
|
||||||
|
client_limit = 25000
|
||||||
|
process_min_avail = {{ CPU_COUNT }}
|
||||||
|
process_limit = {{ CPU_COUNT }}
|
||||||
|
vsz_limit = 256M
|
||||||
}
|
}
|
||||||
|
|
||||||
recipient_delimiter = {{ RECIPIENT_DELIMITER }}
|
recipient_delimiter = {{ RECIPIENT_DELIMITER }}
|
||||||
@ -161,4 +176,11 @@ service submission-login {
|
|||||||
inet_listener submission-webmail {
|
inet_listener submission-webmail {
|
||||||
port = 10025
|
port = 10025
|
||||||
}
|
}
|
||||||
|
service_count = 0
|
||||||
|
client_limit = 25000
|
||||||
|
process_min_avail = {{ CPU_COUNT }}
|
||||||
|
process_limit = {{ CPU_COUNT }}
|
||||||
|
vsz_limit = 256M
|
||||||
}
|
}
|
||||||
|
|
||||||
|
!include_try /overrides/dovecot.conf
|
||||||
|
3
towncrier/newsfragments/3450.bugfix
Normal file
3
towncrier/newsfragments/3450.bugfix
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
Ensure we can do more than 100 parallel sessions.
|
||||||
|
Make use of all CPUs available for indexing
|
||||||
|
Allow dovecot's config to be overriden in front too
|
Reference in New Issue
Block a user