docs: Remove any mention of `ONE_DIR` ENV

This commit is contained in:
polarathene 2024-01-27 16:15:09 +13:00
parent a93937b20b
commit 9f1b40f854
7 changed files with 32 additions and 33 deletions

View File

@ -40,7 +40,6 @@ data:
POSTMASTER_ADDRESS: postmaster@example.com POSTMASTER_ADDRESS: postmaster@example.com
UPDATE_CHECK_INTERVAL: 10d UPDATE_CHECK_INTERVAL: 10d
POSTFIX_INET_PROTOCOLS: ipv4 POSTFIX_INET_PROTOCOLS: ipv4
ONE_DIR: '1'
ENABLE_CLAMAV: '1' ENABLE_CLAMAV: '1'
ENABLE_POSTGREY: '0' ENABLE_POSTGREY: '0'
ENABLE_FAIL2BAN: '1' ENABLE_FAIL2BAN: '1'

View File

@ -38,7 +38,7 @@ Run-time specific state lives here, but so does some data you may want to keep i
- ClamAV signature updates. - ClamAV signature updates.
- Redis storage for Rspamd. - Redis storage for Rspamd.
!!! info "When you run DMS with the ENV variable `ONE_DIR=1` (default)" !!! info "When a volume is mounted to `/var/mail-state/`"
- Service run-time data is [consolidated into the `/var/mail-state/` directory][mail-state-folders]. Otherwise the original locations vary and would need to be mounted individually. - Service run-time data is [consolidated into the `/var/mail-state/` directory][mail-state-folders]. Otherwise the original locations vary and would need to be mounted individually.
- The original locations are updated with symlinks to redirect to their new path in `/var/mail-state/` (_eg: `/var/lib/redis` => `/var/mail-state/lib-redis/`_). - The original locations are updated with symlinks to redirect to their new path in `/var/mail-state/` (_eg: `/var/lib/redis` => `/var/mail-state/lib-redis/`_).

View File

@ -45,11 +45,6 @@ Default: 5000
The Group ID assigned to the static vmail group for `/var/mail` (_Mail storage managed by Dovecot_). The Group ID assigned to the static vmail group for `/var/mail` (_Mail storage managed by Dovecot_).
##### ONE_DIR
- 0 => state in default directories.
- **1** => consolidate all states into a single directory (`/var/mail-state`) to allow persistence using docker volumes. See the [related FAQ entry][docs-faq-onedir] for more information.
##### ACCOUNT_PROVISIONER ##### ACCOUNT_PROVISIONER
Configures the provisioning source of user accounts (including aliases) for user queries and authentication by services managed by DMS (_Postfix and Dovecot_). Configures the provisioning source of user accounts (including aliases) for user queries and authentication by services managed by DMS (_Postfix and Dovecot_).
@ -648,10 +643,10 @@ Controls the spam score threshold for triggering an action on mail that has a hi
- [It will be quarantined][amavis-docs::quarantine] regardless of the `SA_KILL` action to perform. - [It will be quarantined][amavis-docs::quarantine] regardless of the `SA_KILL` action to perform.
- With `D_PASS` the delivered mail also appends an `X-Quarantine-ID` mail header. The ID value of this header is part of the quarantined file name. - With `D_PASS` the delivered mail also appends an `X-Quarantine-ID` mail header. The ID value of this header is part of the quarantined file name.
If emails are quarantined, they are compressed and stored at a location dependent on the [`ONE_DIR`](#one_dir) setting: If emails are quarantined, they are compressed and stored at a location:
- `ONE_DIR=1` (default): `/var/mail-state/lib-amavis/virusmails/` - Default: `/var/lib/amavis/virusmails/`
- `ONE_DIR=0`: `/var/lib/amavis/virusmails/` - When the [`/var/mail-state/` volume][docs-dms-state-volume] is present: `/var/mail-state/lib-amavis/virusmails/`
!!! tip !!! tip
@ -1056,9 +1051,9 @@ you to replace both instead of just the envelope sender.
- password for default relay user - password for default relay user
[docs-rspamd]: ./security/rspamd.md [docs-rspamd]: ./security/rspamd.md
[docs-faq-onedir]: ../faq.md#what-about-docker-datadmsmail-state-folder-varmail-state-internally
[docs-tls]: ./security/ssl.md [docs-tls]: ./security/ssl.md
[docs-tls-letsencrypt]: ./security/ssl.md#lets-encrypt-recommended [docs-tls-letsencrypt]: ./security/ssl.md#lets-encrypt-recommended
[docs-tls-manual]: ./security/ssl.md#bring-your-own-certificates [docs-tls-manual]: ./security/ssl.md#bring-your-own-certificates
[docs-tls-selfsigned]: ./security/ssl.md#self-signed-certificates [docs-tls-selfsigned]: ./security/ssl.md#self-signed-certificates
[docs-accounts-quota]: ./user-management.md#quotas [docs-accounts-quota]: ./user-management.md#quotas
[docs-dms-state-volume]: ./config/advanced/optional-config.md#volumes-state

View File

@ -83,9 +83,15 @@ DMS does not set a default password for the controller worker. You may want to d
### Persistence with Redis ### Persistence with Redis
When Rspamd is enabled, we implicitly also start an instance of Redis in the container. Redis is configured to persist its data via RDB snapshots to disk in the directory `/var/lib/redis` (_which is a symbolic link to `/var/mail-state/lib-redis/` when [`ONE_DIR=1`](../environment.md#one_dir) and a volume is mounted to `/var/mail-state/`_). With the volume mount the snapshot will restore the Redis data across container restarts, and provide a way to keep backup. When Rspamd is enabled, we implicitly also start an instance of Redis in the container:
Redis uses `/etc/redis/redis.conf` for configuration. We adjust this file when enabling the internal Redis service. If you have an external instance of Redis to use, the internal Redis service can be opt-out via setting the ENV [`ENABLE_RSPAMD_REDIS=0`](../environment.md#enable_rspamd_redis) (_link also details required changes to the DMS Rspamd config_). - Redis is configured to persist its data via RDB snapshots to disk in the directory `/var/lib/redis` (_or the [`/var/mail-state/`][docs-dms-state-volume] volume when present_).
- With the volume mount the snapshot will restore the Redis data across container restarts, and provide a way to keep backup.
Redis uses `/etc/redis/redis.conf` for configuration:
- We adjust this file when enabling the internal Redis service.
- If you have an external instance of Redis to use, the internal Redis service can be opt-out via setting the ENV [`ENABLE_RSPAMD_REDIS=0`](../environment.md#enable_rspamd_redis) (_link also details required changes to the DMS Rspamd config_).
### Web Interface ### Web Interface
@ -155,7 +161,6 @@ If you want to overwrite the default settings and / or provide your own settings
Note that when also [using the `custom-commands.conf` file](#with-the-help-of-a-custom-file), files in `override.d` may be overwritten in case you adjust them manually and with the help of the file. Note that when also [using the `custom-commands.conf` file](#with-the-help-of-a-custom-file), files in `override.d` may be overwritten in case you adjust them manually and with the help of the file.
[docs-dms-config-volume]: ../advanced/optional-config.md#volumes-config
[rspamd-docs-override-dir]: https://www.rspamd.com/doc/faq.html#what-are-the-locald-and-overrided-directories [rspamd-docs-override-dir]: https://www.rspamd.com/doc/faq.html#what-are-the-locald-and-overrided-directories
[rspamd-docs-config-directories]: https://rspamd.com/doc/faq.html#what-are-the-locald-and-overrided-directories [rspamd-docs-config-directories]: https://rspamd.com/doc/faq.html#what-are-the-locald-and-overrided-directories
@ -197,7 +202,7 @@ You can also have comments (the line starts with `#`) and blank lines in `custom
You want to start using Rspamd? Rspamd is disabled by default, so you need to set the following environment variables: You want to start using Rspamd? Rspamd is disabled by default, so you need to set the following environment variables:
```cf ```env
ENABLE_RSPAMD=1 ENABLE_RSPAMD=1
ENABLE_OPENDKIM=0 ENABLE_OPENDKIM=0
ENABLE_OPENDMARC=0 ENABLE_OPENDMARC=0
@ -252,3 +257,6 @@ While _Abusix_ can be integrated into Postfix, Postscreen and a multitude of oth
[Abusix]: https://abusix.com/ [Abusix]: https://abusix.com/
[abusix-rspamd-integration]: https://docs.abusix.com/abusix-mail-intelligence/gbG8EcJ3x3fSUv8cMZLiwA/getting-started/dmw9dcwSGSNQiLTssFAnBW#rspamd [abusix-rspamd-integration]: https://docs.abusix.com/abusix-mail-intelligence/gbG8EcJ3x3fSUv8cMZLiwA/getting-started/dmw9dcwSGSNQiLTssFAnBW#rspamd
[docs-dms-config-volume]: ../advanced/optional-config.md#volumes-config
[docs-dms-state-volume]: ../advanced/optional-config.md#volumes-state

View File

@ -376,14 +376,15 @@ The default setup `@local_domains_acl = ( ".$mydomain" );` does not match subdom
Put received spams in `.Junk/` imap folder using `SPAMASSASSIN_SPAM_TO_INBOX=1` and `MOVE_SPAM_TO_JUNK=1` and add a _user_ cron like the following: Put received spams in `.Junk/` imap folder using `SPAMASSASSIN_SPAM_TO_INBOX=1` and `MOVE_SPAM_TO_JUNK=1` and add a _user_ cron like the following:
```conf !!! example
# This assumes you're having `environment: ONE_DIR=1` in the `mailserver.env`,
# with a consolidated config in `/var/mail-state` **NOTE:** This example assumes you have a [`/var/mail-state` volume][docs-dms-state-volume] mounted.
#
# m h dom mon dow command ```conf
# Everyday 2:00AM, learn spam from a specific user # m h dom mon dow command
0 2 * * * docker exec mailserver sa-learn --spam /var/mail/example.com/username/.Junk --dbpath /var/mail-state/lib-amavis/.spamassassin # Everyday 2:00AM, learn spam from a specific user
``` 0 2 * * * docker exec mailserver sa-learn --spam /var/mail/example.com/username/.Junk --dbpath /var/mail-state/lib-amavis/.spamassassin
```
With `docker-compose` you can more easily use the internal instance of `cron` within DMS. This is less problematic than the simple solution shown above, because it decouples the learning from the host on which DMS is running, and avoids errors if the mail server is not running. With `docker-compose` you can more easily use the internal instance of `cron` within DMS. This is less problematic than the simple solution shown above, because it decouples the learning from the host on which DMS is running, and avoids errors if the mail server is not running.
@ -391,6 +392,8 @@ The following configuration works nicely:
??? example ??? example
**NOTE:** This example assumes you have a [`/var/mail-state` volume][docs-dms-state-volume] mounted.
Create a _system_ cron file: Create a _system_ cron file:
```sh ```sh
@ -404,9 +407,6 @@ The following configuration works nicely:
Edit the system cron file `nano ./docker-data/dms/cron/sa-learn`, and set an appropriate configuration: Edit the system cron file `nano ./docker-data/dms/cron/sa-learn`, and set an appropriate configuration:
```conf ```conf
# This assumes you're having `environment: ONE_DIR=1` in the env-mailserver,
# with a consolidated config in `/var/mail-state`
#
# '> /dev/null' to send error notifications from 'stderr' to 'postmaster@example.com' # '> /dev/null' to send error notifications from 'stderr' to 'postmaster@example.com'
# #
# m h dom mon dow user command # m h dom mon dow user command
@ -481,6 +481,7 @@ $spam_quarantine_to = "quarantine\@example.com";
``` ```
[fail2ban-customize]: ./config/security/fail2ban.md [fail2ban-customize]: ./config/security/fail2ban.md
[docs-dms-state-volume]: ./config/advanced/optional-config.md#volumes-state
[docs-maintenance]: ./config/advanced/maintenance/update-and-cleanup.md [docs-maintenance]: ./config/advanced/maintenance/update-and-cleanup.md
[docs-override-postfix]: ./config/advanced/override-defaults/postfix.md [docs-override-postfix]: ./config/advanced/override-defaults/postfix.md
[docs-userpatches]: ./config/advanced/override-defaults/user-patches.md [docs-userpatches]: ./config/advanced/override-defaults/user-patches.md

View File

@ -30,10 +30,6 @@ LOG_LEVEL=info
# debug => Also show debug messages # debug => Also show debug messages
SUPERVISOR_LOGLEVEL= SUPERVISOR_LOGLEVEL=
# 0 => mail state in default directories
# 1 => consolidate all states into a single directory (`/var/mail-state`) to allow persistence using docker volumes
ONE_DIR=1
# Support for deployment where these defaults are not compatible (eg: some NAS appliances): # Support for deployment where these defaults are not compatible (eg: some NAS appliances):
# /var/mail vmail User ID (default: 5000) # /var/mail vmail User ID (default: 5000)
DMS_VMAIL_UID= DMS_VMAIL_UID=

View File

@ -127,9 +127,9 @@ expand_keys = true;
EOF EOF
# Here we adjust the Redis default configuration that we supply to Redis # Here we adjust the Redis default configuration that we supply to Redis when starting it.
# when starting it. Note that `/var/lib/redis/` is linked to # NOTE: `/var/lib/redis/` is symlinked to `/var/mail-state/redis/` when DMS is started
# `/var/mail-state/redis/` (for persisting it) if `ONE_DIR=1`. # with a volume mounted to `/var/mail-state/` for data persistence.
sedfile -i -E \ sedfile -i -E \
-e 's|^(bind).*|\1 127.0.0.1|g' \ -e 's|^(bind).*|\1 127.0.0.1|g' \
-e 's|^(daemonize).*|\1 no|g' \ -e 's|^(daemonize).*|\1 no|g' \