1
0
mirror of https://github.com/Mailu/Mailu.git synced 2024-12-12 10:45:38 +02:00
Insular email distribution - mail server as Docker images
Go to file
bors[bot] 4ff90683ca
Merge #1758 #1776
1758: Implement a simpler credential cache (alternative to #1755) r=mergify[bot] a=nextgens

## What type of PR?

Feature: it implements a credential cache to speedup authentication requests.

## What does this PR do?

Credentials are stored in cold-storage using a slow, salted/iterated hash function to prevent offline bruteforce attacks. This creates a performance bottleneck for no valid reason (see the
rationale/long version on https://github.com/Mailu/Mailu/issues/1194#issuecomment-762115549).

The new credential cache makes things fast again.

This is the simpler version of #1755 (with no new dependencies)

### Related issue(s)
- close #1411
- close #1194 
- close #1755

## Prerequistes
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/guide.html#changelog) entry file.


1776: optimize generation of transport nexthop r=mergify[bot] a=ghostwheel42

## What type of PR?

bug-fix and enhancement.

## What does this PR do?

Possibly there should be more input validation when editing a relay, but for now this tries to make the best out of the existing "smtp" attribute while maintaining backwards compatibility. When relay is empty, the transport's nexthop is the MX of the relayed domain to fix #1588 

```
RELAY			NEXTHOP						TRANSPORT
empty			use MX of relay domain				smtp:domain
:port			use MX of relay domain and use port	smtp:domain:port
target			resolve A/AAAA of target			smtp:[target]
target:port		resolve A/AAAA of target and use port	smtp:[target]:port
mx:target		resolve MX of target				smtp:target
mx:target:port	resolve MX of target and use port	smtp:target:port
lmtp:target		resolve A/AAAA of target			lmtp:target
lmtp:target:port	resolve A/AAAA of target and use port	lmtp:target:port

target can also be an IPv4 or IPv6 address (an IPv6 address must be enclosed in []: [2001:DB8::]).
```

When there is proper input validation and existing database entries are migrated this function can be made much shorter again.

### Related issue(s)
- closes #1588 
- closes #1815 

## Prerequistes
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/guide.html#changelog) entry file.


Co-authored-by: Florent Daigniere <nextgens@freenetproject.org>
Co-authored-by: Alexander Graf <ghostwheel42@users.noreply.github.com>
2021-06-29 12:15:03 +00:00
.github Forgot to add condition to load docker images step 2021-06-29 08:58:44 +02:00
core Merge #1758 #1776 2021-06-29 12:15:03 +00:00
docs Merge #1758 #1776 2021-06-29 12:15:03 +00:00
optional Update setup website 2021-06-19 00:38:53 +02:00
setup Merge #1831 2021-06-29 11:58:39 +00:00
tests Run test jobs in parallel for CI/CD. 2021-06-27 08:54:17 +00:00
towncrier Merge #1758 #1776 2021-06-29 12:15:03 +00:00
webmails Remove mailu/roundcube shared host 2021-06-19 09:20:23 +02:00
.gitignore use different alpine image for arm, add config for php images+arm 2019-08-21 12:02:10 -04:00
.mergify.yml Update list of trusted authors. 2021-06-29 13:57:49 +02:00
AUTHORS.md Improve changelog and release texts for 1.8 2020-10-12 21:18:20 +02:00
bors.toml Switch to github actions for CI/CD 2021-06-26 08:25:15 +00:00
CHANGELOG.md typos 2021-01-21 22:35:55 +01:00
CODE_OF_CONDUCT.md Add a code of conduct, fixes #319 2017-11-12 11:42:53 +01:00
CONTRIBUTING.md Update "the development guidelines" hyperlink 2020-04-06 16:44:26 -03:00
ISSUE_TEMPLATE.md Remove <> tags as they break markdown rendering 2020-09-11 22:44:21 +02:00
LICENSE.md Rename the freeposte/mailu directory and database 2016-10-29 13:42:39 +02:00
PULL_REQUEST_TEMPLATE.md Changed docs version from 1.6 to master 2019-02-20 12:10:54 +02:00
pyproject.toml Fix the package setting 2019-09-17 21:13:35 +02:00
README.md Update README.md 2018-06-28 17:29:52 +03:00

Mailu

Mailu is a simple yet full-featured mail server as a set of Docker images. It is free software (both as in free beer and as in free speech), open to suggestions and external contributions. The project aims at providing people with an easily setup, easily maintained and full-featured mail server while not shipping proprietary software nor unrelated features often found in popular groupware.

Most of the documentation is available on our Website, you can also try our demo server before setting up your own, and come talk to us on Matrix.

Features

Main features include:

  • Standard email server, IMAP and IMAP+, SMTP and Submission
  • Advanced email features, aliases, domain aliases, custom routing
  • Web access, multiple Webmails and administration interface
  • User features, aliases, auto-reply, auto-forward, fetched accounts
  • Admin features, global admins, announcements, per-domain delegation, quotas
  • Security, enforced TLS, Letsencrypt!, outgoing DKIM, anti-virus scanner
  • Antispam, auto-learn, greylisting, DMARC and SPF
  • Freedom, all FOSS components, no tracker included

Domains

Contributing

Mailu is free software, open to suggestions and contributions. All components are free software and compatible with the MIT license. All specific configuration files, Dockerfiles and code are placed under the MIT license.