Previously the handle_pubsub_messages() loop was executing every 10ms
when there was no message available. Now reading from the redis network
socket will block (the coroutine) for up to 30s before it returns when
no message is available.
Using channel.listen() would be even better, but it lacks the
ignore_subscribe_messages option and I could not figure out how to
filter the returned messages.
Some firewall rule object (iptc) do not have a parameter
attribute, which results in an exception being triggered,
and the mailcow SNAT rule to never be created.
Firewall rules that trigger such exception are:
- -A POSTROUTING -s 192.168.122.0/24 -d 224.0.0.0/24 -j RETURN
This commit just verify attribute presence, and skip the rule
properly instead of triggering an exception.
includes also #4839 because of --with-avif for gd configure command (is not available in 8.0)
contains the following adjustments:
- upgrade APCu to 5.1.22
- use PECL package for mailparse instead of git clone (3.1.4 is the latest one available and sice then no changes on master branch)
- split PECL commands into separate ones (according to https://hub.docker.com/_/php this is the recommended way)
- add missing configure options for gd extension to include webp, xpm and avif
- specify composer version to be installed
- cleanup more dev dependencies
Receiving mails for wildcard alias addresses is really easy – but
sending mails from those any-aliases was not possible at all unless
every sender address was added as an explicit alias to the database.
By this change in the database query for allowed sender addresses, the
first finding `not NULL` (see [`SELECT COALESCE`](https://www.w3schools.com/sql/func_sqlserver_coalesce.asp) for how it works)
– either an exact alias `mailbox@domain.tld` or the wildcard alias `@domain.tld`
will be allowed to send mails as the given address ... without the need
of explicit definition within the database.
Since ClamAV starts to offer Docker containers this PR introduces said containers so we don't need to build the container on our own anymore. This was an easy task until v0.104, but then ClamAV changed its buildprocess to use cmake and with v0.105 it also needs the Rust toolchain -> https://docs.clamav.net/manual/Installing/Installing-from-source-Unix.html#ubuntu--debian
Here are the main changes for the new container
Creates clamd-db-vol-1 volume
Still uses the same config files
Downloads ClamAV databases in said volume
Smaller container footprint 13MB vs 150MB
---
* [ClamAV] Move to official ClamAV Docker container
* [ClamAV] Remove vim + nano
* [ClamAV] Use normal version in docker-compose
* [API] Fix minor issue in api docs
* [GH-Actions][stale] Add neverstale label to exempt list
* [Web] add github version tag
* [Web] add github version tag
* [Web] add github version tag
* [Web] add github version tag
* [Web] add github version tag
* [Web] add github version tag error handling
* [Web] add github version tag error handling
* Passwordless SOGo auth: support for calendar invitations and calendar/contacts subscriptions
Inviting someone to a calendar event triggers a request to /SOGo/so/otheruser@example.com/freebusy.ifb/ajaxRead. Subscribing to someone's calendar/contacts triggers a request to /SOGo/so/otheruser@example.com/foldersSearch. The email address in the URL is different from the logged-in user, which needs to be handled appropriately by sogo-auth.php.
* [Web] add github version tag - adjust css
* [Compose] Update SOGo Autoreply Schedule to 5m
Based on the advice of inverse (SOGo developer). Thanks to https://github.com/jmber
Closes: https://github.com/mailcow/mailcow-dockerized/issues/4436
* [Web] add github version tag - move twig globals
* [Web] add github version tag - missing </div>
* Passwordless SOGo auth: improvements for when accessing other users
* [WebAuthn] fido2 passwordless auth - fix (#4440)
* [WebAuthn] fido2 revert
* [WebAuthn] set UV flags to 'discouraged'
* [WebAuthn] revert - set UV flags to 'discouraged'
* Update clamav to 0.104.2
* Update clamav to 0.104.2
* Update dovecot to 2.3.18
Update gosu to 1.14
Use debian bullseye as base
* [Web] Updated lang.es.json [CI SKIP] (#4453)
Co-authored-by: Fijxu <fijxu@zzls.xyz>
Co-authored-by: milkmaker <milkmaker@mailcow.de>
Co-authored-by: Fijxu <fijxu@zzls.xyz>
* Fix broken documentation links (#4458)
* Fix broken documentation links
* Fix a few more broken documentation links
* Fix broken documentation links in translation files
* Fall back to empty string if WATCHDOG_NOTIFY_EMAIL undefined (#4457)
By default, `.env` (`mailcow.conf`) does not define `WATCHDOG_NOTIFY_EMAIL`.
Using it in `docker-compose.yml` without having it defined leads to Compose v2 displaying this warning on startup:
> WARNING: The WATCHDOG_NOTIFY_EMAIL variable is not set. Defaulting to a blank string.
Related to https://github.com/mailcow/mailcow-dockerized/issues/4315
* [Web] Updated lang.sk.json [CI SKIP] (#4461)
Co-authored-by: Lukáš Matula <lukas@gbely.net>
Co-authored-by: milkmaker <milkmaker@mailcow.de>
Co-authored-by: Lukáš Matula <lukas@gbely.net>
* oletools: disable template injection detection (#4464)
Seems to be causing a lot of false positives lately
* Fix minor typo in comment (#4466)
Correction of the comment, so that the explanation is correct and can be understood.
* Update issue templates to issue forms (#4465)
This PR updates the issue templates to GitHubs new issue forms
* [Web] Fix padding issue in UI admin panel (#4481)
* [Web] fix admin panel padding issue
* [Web] fix admin panel padding issue
* [Web] Updated lang.sk.json [CI SKIP] (#4489)
Co-authored-by: Lukáš Matula <lukas@gbely.net>
Co-authored-by: milkmaker <milkmaker@mailcow.de>
Co-authored-by: Lukáš Matula <lukas@gbely.net>
* increase opcache.interned_strings_buffer to 16 (#4487)
since version 23.0.2 Nextcloud recommends having a value greater than 8 for `opcache.interned_strings_buffer`. As this memory will be only used when needed this should have no impact on installations that are not using nextcloud.
related discussion: https://help.nextcloud.com/t/nextcloud-23-02-opcache-interned-strings-buffer/134007/19
related nextcloud issue: https://github.com/nextcloud/server/issues/31223
* nextcloud - add missing redirections (#4366)
adds missing location directives to the nginx configuration of nextcloud 22, to prevent warnings in nextcloud admin center of missing redirections
* Update imapsync to 2.178 (#4491)
* Update and fix oletools (#4479)
As noticed by @MAGICCC (#4464 (comment)), our olefy image does not work anymore if you rebuild it. This is because @HeinleinSupport recently updated their repository with the changes from @decalage2's repository, which renamed olvba3 to olevba. Since @HeinleinSupport does not recommend using its own patched branch and is very slow in pulling in changes from upstream (@decalage2), let's switch to the latter. This also allowed me to revert #4464.
Finally, a minor patch to rspamd is necessary. While the documentation says
In the extended mode the oletools module will not trigger on specific categories, but will always set a threat string with all found flags when at least a macro was found.
This is not actually true -- it only sets it when suspicious or autoexec threats were detected. But it's a one-line patch to make rspamd behave as documented and we should submit that patch to @rspamd too. With this patch, I have confirmed that Mailcow will reject any incoming, non-whitelisted message containing attachments with macros.
* [Web] Fix excluded domain list in quaratine view
Previously excluded domains from quarantine were not shown.
* [Dovecot] Update syslogng Version to 3.28 (#4496)
Co-authored-by: Niklas Meyer <niklas.meyer@tinc.gmbh>
Co-authored-by: ntimo <git@nowitzki.me>
Co-authored-by: Peter <magic@kthx.at>
Co-authored-by: FreddleSpl0it <patschul@posteo.de>
Co-authored-by: FreddleSpl0it <75116288+FreddleSpl0it@users.noreply.github.com>
Co-authored-by: Michael Kuron <mkuron@users.noreply.github.com>
Co-authored-by: milkmaker <milkmaker@mailcow.de>
Co-authored-by: Fijxu <fijxu@zzls.xyz>
Co-authored-by: Slavi Pantaleev <slavi@devture.com>
Co-authored-by: Lukáš Matula <lukas@gbely.net>
Co-authored-by: Max <mail@heavygale.de>
Co-authored-by: Michael Cramer <michael@bigmichi1.de>
Co-authored-by: Robert Christian <soulsymphonies@users.noreply.github.com>
Co-authored-by: André <andre.peters@debinux.de>
Co-authored-by: Niklas Meyer <niklas.meyer@tinc.gmbh>
This PR is updating SOGo to the new 5.5.0 Release (https://github.com/inverse-inc/sogo/releases/tag/SOGo-5.5.0) <-- Available in master.
It also includes the nsyslog Update to 3.28 (since the new SOGo builds are using a newer version), which fix a warning message inside the sogo container that the nsyslog version is outdated and can be upgraded to 3.28
This new release will have the Docker Image Tag: mailcow/sogo:1.106
Thanks to @mkuron this fix will change the ssl path to be dynamic (not hardcoded) to ensure that acme is still working with Alpine 3.15 or higher.
This PR is included in the Docker tag: mailcow/acme:1.81 (including the Alpine 3.15 update)
- ClamAV 0.103 is the first Long Term Support (LTS) feature release.
- LTS feature releases will be supported for at least three years from the initial publication date of that LTS feature version. In other words, support for the LTS release "X.Y" starts when version "X.Y.0" is published and ends three years after.
- Each LTS feature release will be supported with critical patch versions and access to download signatures for the duration of the three-year support period.
- A new LTS feature release will be identified approximately every two years.
- Users must stay up-to-date with the latest patch versions for continued support. As of Aug. 28, that means version 0.103.3.
- Source: https://blog.clamav.net/2021/09/changes-to-clamav-end-of-life-policy.html
* [imapsync] - check for errors in returned_text
Signed-off-by: Kristian Feldsam <feldsam@gmail.com>
* [imapsync] parse and save exit status
Signed-off-by: Kristian Feldsam <feldsam@gmail.com>
* [dovecot] updated image version
Signed-off-by: Kristian Feldsam <feldsam@gmail.com>