Commit Graph

1474 Commits (017ea5298e75749a97c394201ba9ebeb2f468a40)

Author SHA1 Message Date
Florent Daigniere afbaabd8cd v1
Florent Daigniere 6def1b555b doh
Florent Daigniere c1f571a4c3 Speed things up.
If we want to go further than this we should change podop's incr(), pass
the flags and make admin process the results.
Florent Daigniere 96d9289630 No need to send an extra \n
Florent Daigniere cdc9b63a46 Guard the message logging too
Florent Daigniere 2a417dbfc2 doesn't belong here
Florent Daigniere 1ce889b91b Do it the pythonic way
Florent Daigniere e10527a4bf This is not used anymore
Florent Daigniere 1ae4c37cb9 Don't do fancy, just re-raise it
Florent Daigniere 5ec4277e1e Make it async. I'm not sure it's a good idea
Florent Daigniere cf34be967c Implement ITERATE
bors[bot] 62c919da09
Merge
2497: Upgrade to alpine 3.16.2 r=mergify[bot] a=nextgens

## What type of PR?

bug-fix

## What does this PR do?

This may fix the build issues on arm (troubles building cryptography)

## Prerequisites
Before we can consider review and merge, please make sure the following list is done and checked.
If an entry in not applicable, you can check it or remove it from the list.

- [ ] In case of feature or enhancement: documentation updated accordingly
- [x] Unless it's docs or a minor change: add [changelog](https://mailu.io/master/contributors/workflow.html#changelog) entry file.


Co-authored-by: Florent Daigniere <nextgens@freenetproject.org>
Florent Daigniere 340e359096 doh
Florent Daigniere 076d67b513 follow the protocol
Florent Daigniere 2e467092a2 The newer dovecot sends data podop should ignore
bors[bot] 12480ccbff
Merge
2328: Feature: Configurable default spam threshold used for new users r=mergify[bot] a=enginefeeder101

## What type of PR?

Feature

## What does this PR do?

This PR adds functionality to set a custom default spam threshold
for new users. The environment variable ``DEFAULT_SPAM_THRESHOLD`` is
used for this purpose. When not set, it defaults back to 80%, as the
default value was before.

If ``DEFAULT_SPAM_THRESHOLD`` is set to a value that Python cannot
parse as an integer, a ValueError is thrown. There is no error handling
for that case built-in. Should that be done?

## Prerequisites
Before we can consider review and merge, please make sure the following list is done and checked.
If an entry in not applicable, you can check it or remove it from the list.

- [x] In case of feature or enhancement: documentation updated accordingly
- [x] Unless it's docs or a minor change: add [changelog](https://mailu.io/master/contributors/workflow.html#changelog) entry file.


Co-authored-by: enginefeeder101 <enginefeeder101@users.noreply.github.com>
Co-authored-by: Dimitri Huisman <diman@huisman.xyz>
Florent Daigniere 8942448561 Upgrade to alpine 3.16.2
This may fix the build issues on arm
Dimitri Huisman 06b784da57
Shorten default function by using lambda
bors[bot] 9975a793fe
Merge
2458: Fix: Don't update updated_at on quota_bytes_used change r=mergify[bot] a=DjVinnii

## What type of PR?

bug-fix

## What does this PR do?

This PR makes sure that the `updated_at` field is not updated when `quota_bytes_used` is updated. All other updates to the `User` model still updates the `updated_at` field. 

This is done by explicitly using an method in the `Base` class triggering [`flag_modified`][url-flag-modified].

### Related issue(s)
- closes 

## Prerequisites
Before we can consider review and merge, please make sure the following list is done and checked.
If an entry in not applicable, you can check it or remove it from the list.

- [ ] In case of feature or enhancement: documentation updated accordingly
- [x] Unless it's docs or a minor change: add [changelog](https://mailu.io/master/contributors/workflow.html#changelog) entry file.

<!-- LINKS-->
[url-flag-modified]: https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.flag_modified


Co-authored-by: Vincent Kling <v.kling@vinniict.nl>
Florent Daigniere ec4224123b Use the logger
bors[bot] 5703e97c73
Merge
2460: Switch to a base image containing base tools and the podop and socrate libs r=mergify[bot] a=ghostwheel42

## What type of PR?

enhancement of build process

## What does this PR do?

Changes build.hcl to build core images using a base image.
Also adds a "assets" base image for the admin container.


Co-authored-by: Alexander Graf <ghostwheel42@users.noreply.github.com>
Co-authored-by: Pierre Jaury <pierre@jaury.eu>
Co-authored-by: kaiyou <pierre@jaury.eu>
Co-authored-by: Dimitri Huisman <52963853+Diman0@users.noreply.github.com>
Alexander Graf 024b0573b3
Update build reqs and fix armv7 build
Vincent Kling 6363acf30a Add dont_change_updated_at to fetch_done
Vincent Kling 6b785abb01 Rename flag_updated_at_as_modified to dont_change_updated_at
Florent Daigniere 89f7d983b4 Don't start rspamd until admin is up and working
Florent Daigniere d8cf0c3848 Revert "Admin may not have started up when this loads"
This reverts commit 0f17299b4e.
Florent Daigniere 0f17299b4e Admin may not have started up when this loads
Florent Daigniere 95a3a3d342 doh
Florent Daigniere 84a722eabc Optimize the query
Florent Daigniere bd1b73032c Poke a hole for mailing lists
Blaž Zupan 56617bbe12 Quote SMTP SIZE to avoid splitting keyword and parameter in EHLO response
Florent Daigniere c4fcaed7d4 doh
Florent Daigniere 8929f54de5 clarify
Also cover the case where the DKIM sig is for another domain and there
is no explicit DMARC policy
Florent Daigniere 8da6117bb9 clarify
Florent Daigniere af87456faf this works for me
Vincent Kling 23d06a5761 Fix a bunch of typos
Florent Daigniere be4dd6d84a Spell it out
Florent Daigniere f7b3aad831 Ensure we REJECT when we don't have a DMARC policy
This restores the old behaviour
Florent Daigniere 0204c9e59d doh
Florent Daigniere 8775a2bf04 untested code that may just work
Florent Daigniere 5ebcecf4dd Don't need that anymore either
Florent Daigniere 3e51d15b03 Remove the strict anti-spoofing rule.
Alexander Graf d9bf6875e1
Optimize build order for better caching
Alexander Graf 7441a420c4
Fix and speed-up arm build. Allow chosing of prod/dev env.
Alexander Graf 146921f619
Move curl to base image
Alexander Graf 4c1071a497
Move all requirements*.txt to base image
Alexander Graf a29f066858
Move even more python deps to base image
Alexander Graf 52dd09d452
Fix assets build process
Alexander Graf 768c0cc1ce
Fix assets build process
Alexander Graf 8668b269cd
Add requirements.txt for base image
Alexander Graf 9f511faf64
Merge pull request from NeverBehave/master
fix: resolve IPv6 container hostname
Dimitri Huisman b711f930ef
Merge pull request from vavanade/patch-1
fix docstring
Dimitri Huisman c0066abd01
Merge pull request from micw/log-failed-dns
Add logging for failed DNS lookups
kaiyou f63837b8e1
Update to 0.2.0
kaiyou 68d44201ab
Merge pull request from micw/resolve-host-if-address-not-set
Resolve host if address not set
kaiyou b198fde756
Merge pull request from micw/fix-random-failures
Change test hostnames for stable test results
kaiyou 7f6d51904b
Remove wrong dependency to importlib
kaiyou ef344c62f6
Add automated tests
kaiyou 74a3e87de3
Fix a couple syntax typos
kaiyou 351b05b92d
Allow jinja to load from file path or handle
kaiyou 0370b26f3e
Initial commit
Alexander Graf ce9d886195
Merge pull request from ghostwheel42/add_gitignore
Add .gitignore file
kaiyou dbec5f0a6c
Switch to setuptools and bump the version
kaiyou 3d0d831c76
Version 0.2.4
kaiyou e2979f9103
Merge pull request from Nebukadneza/fix_py37
Don’t use deprecated now-keyword "async"
kaiyou 6fadd39aea
Merge pull request from Nebukadneza/add_key_url_quoting
URL-Quote the key in HTTP requests
kaiyou 080e76f972
Merge pull request from rakshith-ravi/patch-1
Fixed a small typo
kaiyou 23e5aa2e05
Escape strings properly in the Dovecot dict dialect
kaiyou 814bb1f36d
Properly miss when the web api returns 404
kaiyou d2b98ae323
Update to 0.2.2
kaiyou 81d171f978
Add some debug logging to the table class
Pierre Jaury d640da8787
Include package data in the package
Pierre Jaury c5fa0280a0
Add support for dovecot dict_set operations
Pierre Jaury eb6b1866f1
Specify dependencies in the setup script
Pierre Jaury b1b0aeb69d
Initial commit
Alexander Graf 9fe452e3d1
Use base image when building core images
Alexander Graf 5e552bae69
Add base image
Alexander Graf 295d7ea675
Move assets to own Dockerfile
bors[bot] e600f20762
Merge
2468: Ensure that Mailu keeps working even if it can't obtain a certificate from LE r=mergify[bot] a=nextgens

## What type of PR?

bug-fix

## What does this PR do?

Ensure that Mailu keeps working even if it can't obtain a certificate from letsencrypt for one of the HOSTNAMES

Without this TLS configuration would fail and Mailu would operate without TLS completely.

I haven't tested it but thought this used to work previously... maybe certbot has changed something

### Related issue(s)
- closes 

## Prerequisites
Before we can consider review and merge, please make sure the following list is done and checked.
If an entry in not applicable, you can check it or remove it from the list.

- [x] In case of feature or enhancement: documentation updated accordingly
- [x] Unless it's docs or a minor change: add [changelog](https://mailu.io/master/contributors/workflow.html#changelog) entry file.


Co-authored-by: Florent Daigniere <nextgens@freenetproject.org>
Florent Daigniere 1630a18dd8 Ensure that Mailu keeps working even if it can't obtain a certificate from letsencrypt for one of the HOSTNAMES
Vincent Kling bda404182f Replace before update listener with method in the Base class
bors[bot] 1cdc4e76b4
Merge
2455: Fix/missing tanslations r=mergify[bot] a=DjVinnii

## What type of PR?

Fix/Enhancement

## What does this PR do?
Add missing Dutch translation, as well as the German translation for `Start of vacation`

### Related issue(s)
- closes 

## Prerequisites
Before we can consider review and merge, please make sure the following list is done and checked.
If an entry in not applicable, you can check it or remove it from the list.

- [ ] In case of feature or enhancement: documentation updated accordingly
- [ ] Unless it's docs or a minor change: add [changelog](https://mailu.io/master/contributors/workflow.html#changelog) entry file.


Co-authored-by: Vincent Kling <v.kling@vinniict.nl>
Co-authored-by: Alexander Graf <ghostwheel42@users.noreply.github.com>
Co-authored-by: Dimitri Huisman <diman@huisman.xyz>
bors[bot] b5e7cad2d3
Merge
2448: Give a chance to rspamd's bayes classifier r=mergify[bot] a=nextgens

## What type of PR?

bug-fix + documentation

## What does this PR do?

As pointed out in , the bayesian filter of rspamd doesn't get any chance to run as ``min_learns`` is set to 200 and we never teach it any HAM.

This PR enables rspamd's autolearn feature, that will "reinforce" good/bad by learning from the scoring of other modules. It ensures both that we will eventually reach the 200 mark but also that the data stays fresh.

I've also taken this opportunity to update the documentation & FAQ accordingly, to ensure that users teach their HAM & SPAM to both the fuzzy and bayes classifiers.

Thank you to [woj-tek](https://github.com/woj-tek) for doing the ground work on this.

### Related issue(s)
- closes 

## Prerequisites
Before we can consider review and merge, please make sure the following list is done and checked.
If an entry in not applicable, you can check it or remove it from the list.

- [x] In case of feature or enhancement: documentation updated accordingly
- [x] Unless it's docs or a minor change: add [changelog](https://mailu.io/master/contributors/workflow.html#changelog) entry file.


Co-authored-by: Florent Daigniere <nextgens@freenetproject.org>
Dimitri Huisman 5b21fae968 Add missing Dutch translation
Alexander Graf 7682b4fa7f
Fix typo and translate Website with Webseite
Alexander Graf ffa7d6c565
Updated german translation
Vincent Kling 102d96bc7d Implement event lister to keep updated_at unchanged on quota_bytes_used updates
Vincent Kling a02a2c26a7 Fix typo
Vincent Kling 486dd06ca8 Add missing German translation for Start of vacation
Vincent Kling 84f60116ea Add missing Dutch translations
Florent Daigniere 85a2aafcdf ghostwheel42's suggestions
Florent Daigniere 6a0e881522 Introduce TLS_PERMISSIVE for port 25
This new advanced setting to harden cipher configuration on port 25. Changing the default is strongly discouraged, please read the documentation before doing so.
Florent Daigniere 5d09390147 enable rspamd's autolearn feature
Vincent Kling bab3f0f5a4 Remove POD_ADDRESS_RANGE
bors[bot] 7ed1da5bf1
Merge
2440: The ARM wheels don't work r=mergify[bot] a=nextgens

## What type of PR?

bug-fix

## What does this PR do?

Remove piwheels to ensure we always rebuild on ARM

### Related issue(s)
- closes 
- 


Co-authored-by: Florent Daigniere <nextgens@freenetproject.org>
Florent Daigniere 35a794cfd6 The ARM wheels don't work
Florent Daigniere 355589a23c Apparently SQLAlchemy needs to be told explictely
Florent Daigniere 30b3a3771e Prevent signups with accounts where an alias exists
Florent Daigniere 6fb554bc2e Do the same for the postfix container
Dimitri Huisman 81c9e01d24 finishing touches for PR# 2328
Antispam.rst contained a syntax error.
Move config description to common section which is more fitting.
Fixed wrong assignment of default value for DEFAULT_SPAM_THRESHOLD in models.py.