You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Full-text search allows all messages to be indexed, so that mail clients can quickly and efficiently search messages by their full text content. Dovecot supports a variety of community supported [FTS indexing backends](https://doc.dovecot.org/configuration_manual/fts/).
8
8
9
-
`docker-mailserver` comes pre-installed with two plugins that can be enabled with a dovecot config file.
9
+
DMS comes pre-installed with two plugins that can be enabled with a dovecot config file.
10
10
11
11
Please be aware that indexing consumes memory and takes up additional disk space.
12
12
@@ -101,7 +101,7 @@ While indexing is memory intensive, you can configure the plugin to limit the am
101
101
```
102
102
docker-compose exec mailserver doveadm fts optimize -A
103
103
```
104
-
Or like the [Spamassassin example][docs-faq-sa-learn-cron] shows, you can instead use `cron` from within `docker-mailserver` to avoid potential errors if the mail-server is not running:
104
+
Or like the [Spamassassin example][docs-faq-sa-learn-cron] shows, you can instead use `cron` from within DMS to avoid potential errors if the mailserver is not running:
Copy file name to clipboardExpand all lines: docs/content/config/advanced/ipv6.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,9 +4,9 @@ title: 'Advanced | IPv6'
4
4
5
5
## Background
6
6
7
-
If your container host supports IPv6, then `docker-mailserver` will automatically accept IPv6 connections by way of the docker host's IPv6. However, incoming mail will fail SPF checks because they will appear to come from the IPv4 gateway that docker is using to proxy the IPv6 connection (`172.20.0.1` is the gateway).
7
+
If your container host supports IPv6, then DMS will automatically accept IPv6 connections by way of the docker host's IPv6. However, incoming mail will fail SPF checks because they will appear to come from the IPv4 gateway that docker is using to proxy the IPv6 connection (`172.20.0.1` is the gateway).
8
8
9
-
This can be solved by supporting IPv6 connections all the way to the `docker-mailserver` container.
9
+
This can be solved by supporting IPv6 connections all the way to the DMS container.
Copy file name to clipboardExpand all lines: docs/content/config/advanced/kubernetes.md
+14-14Lines changed: 14 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,11 +4,11 @@ title: 'Advanced | Kubernetes'
4
4
5
5
## Introduction
6
6
7
-
This article describes how to deploy `docker-mailserver` to Kubernetes. Please note that there is also a [Helm chart] available.
7
+
This article describes how to deploy DMS to Kubernetes. Please note that there is also a [Helm chart] available.
8
8
9
9
!!! attention "Requirements"
10
10
11
-
We assume basic knowledge about Kubernetes from the reader. Moreover, we assume the reader to have a basic understanding of mail servers. Ideally, the reader has deployed `docker-mailserver` before in an easier setup with Docker (Compose).
11
+
We assume basic knowledge about Kubernetes from the reader. Moreover, we assume the reader to have a basic understanding of mail servers. Ideally, the reader has deployed DMS before in an easier setup with Docker (Compose).
12
12
13
13
!!! warning "About Support for Kubernetes"
14
14
@@ -58,7 +58,7 @@ data:
58
58
SSL_KEY_PATH: /secrets/ssl/rsa/tls.key
59
59
```
60
60
61
-
We can also make use of user-provided configuration files, e.g. `user-patches.sh`, `postfix-accounts.cf` and more, to adjust `docker-mailserver` to our likings. We encourage you to have a look at [Kustomize][kustomize] for creating `ConfigMap`s from multiple files, but for now, we will provide a simple, hand-written example. This example is absolutely minimal and only goes to show what can be done.
61
+
We can also make use of user-provided configuration files, e.g. `user-patches.sh`, `postfix-accounts.cf` and more, to adjust DMS to our likings. We encourage you to have a look at [Kustomize][kustomize] for creating `ConfigMap`s from multiple files, but for now, we will provide a simple, hand-written example. This example is absolutely minimal and only goes to show what can be done.
62
62
63
63
```yaml
64
64
---
@@ -149,7 +149,7 @@ spec:
149
149
150
150
### Deployments
151
151
152
-
Last but not least, the `Deployment` becomes the most complex component. It instructs Kubernetes how to run the `docker-mailserver` container and how to apply your `ConfigMaps`, persisted storage, etc. Additionally, we can set options to enforce runtime security here.
152
+
Last but not least, the `Deployment` becomes the most complex component. It instructs Kubernetes how to run the DMS container and how to apply your `ConfigMaps`, persisted storage, etc. Additionally, we can set options to enforce runtime security here.
153
153
154
154
```yaml
155
155
---
@@ -305,7 +305,7 @@ spec:
305
305
306
306
### Certificates - An Example
307
307
308
-
In this example, we use [`cert-manager`][cert-manager] to supply RSA certificates. You can also supply RSA certificates as fallback certificates, which `docker-mailserver` supports out of the box with `SSL_ALT_CERT_PATH` and `SSL_ALT_KEY_PATH`, and provide ECDSA as the proper certificates.
308
+
In this example, we use [`cert-manager`][cert-manager] to supply RSA certificates. You can also supply RSA certificates as fallback certificates, which DMS supports out of the box with `SSL_ALT_CERT_PATH` and `SSL_ALT_KEY_PATH`, and provide ECDSA as the proper certificates.
309
309
310
310
```yaml
311
311
---
@@ -340,15 +340,15 @@ spec:
340
340
341
341
The [TLS docs page][docs-tls] provides guidance when it comes to certificates and transport layer security. Always provide sensitive information vai `Secrets`.
342
342
343
-
## Exposing your Mail-Server to the Outside World
343
+
## Exposing your MailServer to the Outside World
344
344
345
-
The more difficult part with Kubernetes is to expose a deployed `docker-mailserver` to the outside world. Kubernetes provides multiple ways for doing that; each has downsides and complexity. The major problem with exposing `docker-mailserver` to outside world in Kubernetes is to [preserve the real client IP][Kubernetes-service-source-ip]. The real client IP is required by `docker-mailserver` for performing IP-based SPF checks and spam checks. If you do not require SPF checks for incoming mails, you may disable them in your [Postfix configuration][docs-postfix] by dropping the line that states: `check_policy_service unix:private/policyd-spf`.
345
+
The more difficult part with Kubernetes is to expose a deployed DMS to the outside world. Kubernetes provides multiple ways for doing that; each has downsides and complexity. The major problem with exposing DMS to outside world in Kubernetes is to [preserve the real client IP][Kubernetes-service-source-ip]. The real client IP is required by DMS for performing IP-based SPF checks and spam checks. If you do not require SPF checks for incoming mails, you may disable them in your [Postfix configuration][docs-postfix] by dropping the line that states: `check_policy_service unix:private/policyd-spf`.
346
346
347
-
The easiest approach was covered above, using `#!yaml externalTrafficPolicy: Local`, which disables the service proxy, but makes the service local as well (which does not scale). This approach only works when you are given the correct (that is, a public and routable) IP address by a load balancer (like MetalLB). In this sense, the approach above is similar to the next example below. We want to provide you with a few alternatives too. **But** we also want to communicate the idea of another simple method: you could use a load-balancer without an external IP and DNAT the network traffic to the mail-server. After all, this does not interfere with SPF checks because it keeps the origin IP address. If no dedicated external IP address is available, you could try the latter approach, if one is available, use the former.
347
+
The easiest approach was covered above, using `#!yaml externalTrafficPolicy: Local`, which disables the service proxy, but makes the service local as well (which does not scale). This approach only works when you are given the correct (that is, a public and routable) IP address by a load balancer (like MetalLB). In this sense, the approach above is similar to the next example below. We want to provide you with a few alternatives too. **But** we also want to communicate the idea of another simple method: you could use a load-balancer without an external IP and DNAT the network traffic to the mailserver. After all, this does not interfere with SPF checks because it keeps the origin IP address. If no dedicated external IP address is available, you could try the latter approach, if one is available, use the former.
348
348
349
349
### External IPs Service
350
350
351
-
The simplest way is to expose `docker-mailserver` as a [Service][Kubernetes-network-service] with [external IPs][Kubernetes-network-external-ip]. This is very similar to the approach taken above. Here, an external IP is given to the service directly by you. With the approach above, you tell your load-balancer to do this.
351
+
The simplest way is to expose DMS as a [Service][Kubernetes-network-service] with [external IPs][Kubernetes-network-external-ip]. This is very similar to the approach taken above. Here, an external IP is given to the service directly by you. With the approach above, you tell your load-balancer to do this.
352
352
353
353
```yaml
354
354
---
@@ -380,15 +380,15 @@ This approach
380
380
381
381
### Proxy port to Service
382
382
383
-
The [proxy pod][Kubernetes-proxy-service] helps to avoid the necessity of specifying external IPs explicitly. This comes at the cost of complexity; you must deploy a proxy pod on each [Node][Kubernetes-nodes] you want to expose `docker-mailserver` on.
383
+
The [proxy pod][Kubernetes-proxy-service] helps to avoid the necessity of specifying external IPs explicitly. This comes at the cost of complexity; you must deploy a proxy pod on each [Node][Kubernetes-nodes] you want to expose DMS on.
384
384
385
385
This approach
386
386
387
387
- does not preserve the real client IP, so SPF check of incoming mail will fail.
388
388
389
389
### Bind to concrete Node and use host network
390
390
391
-
One way to preserve the real client IP is to use `hostPort` and `hostNetwork: true`. This comes at the cost of availability; you can reach `docker-mailserver` from the outside world only via IPs of [Node][Kubernetes-nodes] where `docker-mailserver` is deployed.
391
+
One way to preserve the real client IP is to use `hostPort` and `hostNetwork: true`. This comes at the cost of availability; you can reach DMS from the outside world only via IPs of [Node][Kubernetes-nodes] where DMS is deployed.
392
392
393
393
```yaml
394
394
---
@@ -420,12 +420,12 @@ metadata:
420
420
421
421
With this approach,
422
422
423
-
- it is not possible to access `docker-mailserver` via other cluster Nodes, only via the Node `docker-mailserver` was deployed at.
423
+
- it is not possible to access DMS via other cluster Nodes, only via the Node DMS was deployed at.
424
424
- every Port within the Container is exposed on the Host side.
425
425
426
426
### Proxy Port to Service via PROXY Protocol
427
427
428
-
This way is ideologically the same as [using a proxy pod](#proxy-port-to-service), but instead of a separate proxy pod, you configure your ingress to proxy TCP traffic to the `docker-mailserver` pod using the PROXY protocol, which preserves the real client IP.
428
+
This way is ideologically the same as [using a proxy pod](#proxy-port-to-service), but instead of a separate proxy pod, you configure your ingress to proxy TCP traffic to the DMS pod using the PROXY protocol, which preserves the real client IP.
429
429
430
430
#### Configure your Ingress
431
431
@@ -501,7 +501,7 @@ Then, configure both [Postfix][docs-postfix] and [Dovecot][docs-dovecot] to expe
501
501
502
502
With this approach,
503
503
504
-
- it is not possible to access `docker-mailserver` via cluster-DNS, as the PROXY protocol is required for incoming connections.
504
+
- it is not possible to access DMS via cluster-DNS, as the PROXY protocol is required for incoming connections.
Copy file name to clipboardExpand all lines: docs/content/config/advanced/mail-fetchmail.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,7 +10,7 @@ environment:
10
10
- FETCHMAIL_POLL=300
11
11
```
12
12
13
-
Generate a file called `fetchmail.cf` and place it in the `docker-data/dms/config/` folder. Your `docker-mailserver` folder should look like this example:
13
+
Generate a file called `fetchmail.cf` and place it in the `docker-data/dms/config/` folder. Your DMS folder should look like this example:
Another important option is the `default_process_limit` (defaults to `100`). If high-security mode is enabled you'll need to make sure this count is higher than the maximum number of users that can be logged in simultaneously.
28
28
29
-
This limit is quickly reached if users connect to the `docker-mailserver` with multiple end devices.
29
+
This limit is quickly reached if users connect to DMS with multiple end devices.
30
30
31
31
## Override Configuration
32
32
@@ -55,7 +55,7 @@ To debug your dovecot configuration you can use:
Copy file name to clipboardExpand all lines: docs/content/config/advanced/override-defaults/user-patches.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@
2
2
title: 'Custom User Changes & Patches | Scripting'
3
3
---
4
4
5
-
If you'd like to change, patch or alter files or behavior of `docker-mailserver`, you can use a script.
5
+
If you'd like to change, patch or alter files or behavior of DMS, you can use a script.
6
6
7
7
In case you cloned this repository, you can copy the file [`user-patches.sh.dist` (_under `config/`_)][github-file-userpatches] with `#!sh cp config/user-patches.sh.dist docker-data/dms/config/user-patches.sh` in order to create the `user-patches.sh` script.
Copy file name to clipboardExpand all lines: docs/content/config/advanced/podman.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,7 +8,7 @@ Podman is a daemonless container engine for developing, managing, and running OC
8
8
9
9
!!! warning "About Support for Podman"
10
10
11
-
Please note that Podman **is not** officially supported as `docker-mailserver` is built and verified on top of the _Docker Engine_. This content is entirely community supported. If you find errors, please open an issue and provide a PR.
11
+
Please note that Podman **is not** officially supported as DMS is built and verified on top of the _Docker Engine_. This content is entirely community supported. If you find errors, please open an issue and provide a PR.
12
12
13
13
!!! warning "About this Guide"
14
14
@@ -67,7 +67,7 @@ Also notice that Podman's rootless mode is not about running as a non-root user
67
67
68
68
!!! warning
69
69
70
-
In order to make rootless `docker-mailserver` work we must modify some settings in the Linux system, it requires some basic linux server knowledge so don't follow this guide if you not sure what this guide is talking about. Podman rootfull mode and Docker are still good and security enough for normal daily usage.
70
+
In order to make rootless DMS work we must modify some settings in the Linux system, it requires some basic linux server knowledge so don't follow this guide if you not sure what this guide is talking about. Podman rootfull mode and Docker are still good and security enough for normal daily usage.
71
71
72
72
First, enable `podman.socket` in systemd's userspace with a non-root user.
Copy file name to clipboardExpand all lines: docs/content/config/best-practices/autodiscover.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,7 +6,7 @@ hide:
6
6
7
7
# Auto-Discovery of Services
8
8
9
-
Email auto-discovery means a client email is able to automagically find out about what ports and security options to use, based on the mail-server URI. It can help simplify the tedious / confusing task of adding own's email account for non-tech savvy users.
9
+
Email auto-discovery means a client email is able to automagically find out about what ports and security options to use, based on the mailserver URI. It can help simplify the tedious / confusing task of adding own's email account for non-tech savvy users.
10
10
11
11
Email clients will search for auto-discoverable settings and prefill almost everything when a user enters its email address :heart:
Copy file name to clipboardExpand all lines: docs/content/config/best-practices/dkim_dmarc_spf.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,7 +11,7 @@ Cloudflare has written an [article about DKIM, DMARC and SPF][cloudflare-dkim-dm
11
11
- SPF: `policyd-spf` is used in Postfix's `smtpd_recipient_restrictions`
12
12
13
13
In a future release Rspamd will become the default for these validations, with a deprecation notice issued prior to the removal of the above alternatives.
14
-
14
+
15
15
We encourage everyone to prefer Rspamd via `ENABLE_RSPAMD=1`.
16
16
17
17
!!! warning "DNS Caches & Propagation"
@@ -184,7 +184,7 @@ DKIM is currently supported by either OpenDKIM or Rspamd:
184
184
185
185
!!! info "Restart required"
186
186
187
-
After restarting `docker-mailserver`, outgoing mail will now be signed with your new DKIM key(s) :tada:
187
+
After restarting DMS, outgoing mail will now be signed with your new DKIM key(s) :tada:
188
188
189
189
You'll need to repeat this process if you add any new domains.
190
190
@@ -220,7 +220,7 @@ When mail signed with your DKIM key is sent from your mail server, the receiver
220
220
??? info "`<selector>.txt` - Formatting the `TXT` record value correctly"
221
221
222
222
This file was generated for use within a [DNS zone file][dns::wikipedia-zonefile]. DNS `TXT` records values that are longer than 255 characters need to be split into multiple parts. This is why the public key has multiple parts wrapped within double-quotes between `(` and `)`.
223
-
223
+
224
224
A DNS web-interface may handle this internally instead, while [others may not, but expect the input as a single line][dns::webui-dkim]_). You'll need to manually format the value as described below.
225
225
226
226
Your DNS record file (eg: `mail.txt`) should look similar to this:
0 commit comments