Optional Configuration
Volumes
DMS has several locations in the container which may be worth persisting externally via Docker Volumes.
- Often you will want to prefer bind mount volumes for easy access to files at a local location on your filesystem.
- As a convention for our docs and example configs, the local location has the common prefix
docker-data/dms/
for grouping these related volumes.
Reference - Volmes for DMS
Our docs may refer to these DMS specific volumes only by name, or the host/container path for brevity.
- Config:
docker-data/dms/config/
=>/tmp/docker-mailserver/
- Mail Storage:
docker-data/dms/mail-data/
=>/var/mail/
- State:
docker-data/dms/mail-state/
=>/var/mail-state/
- Logs:
docker-data/dms/mail-logs/
=>/var/log/mail/
Mail Storage Volume
This is the location where mail is delivered to your mailboxes.
State Volume
Run-time specific state lives here, but so does some data you may want to keep if a failure event occurs (crash, power loss).
Examples of relevant data
- The Postfix queue (eg: mail pending delivery attempt)
- Fail2Ban blocks.
- ClamAV signature updates.
- Redis storage for Rspamd.
When a volume is mounted to /var/mail-state/
- Service run-time data is consolidated into the
/var/mail-state/
directory. 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/
).
Supported services: Postfix, Dovecot, Fail2Ban, Amavis, PostGrey, ClamAV, SpamAssassin, Rspamd & Redis, Fetchmail, Getmail, LogRotate, PostSRSd, MTA-STS.
Tip
Sometimes it is helpful to disable this volume when troubleshooting to verify if the data stored here is in a bad state (eg: caused by a failure event).
Logs Volume
This can be a useful volume to persist for troubleshooting needs for the full set of log files.
Config Volume
Most configuration files for Postfix, Dovecot, etc. are persisted here.
This is a list of all configuration files and directories which are optional, automatically generated / updated by our setup
CLI, or other internal scripts.
Directories
- sieve-filter: directory for sieve filter scripts. (Docs: Sieve)
- sieve-pipe: directory for sieve pipe scripts. (Docs: Sieve)
- opendkim: DKIM directory. Auto-configurable via
setup.sh config dkim
. (Docs: DKIM) - ssl: SSL Certificate directory if
SSL_TYPE
is set toself-signed
orcustom
. (Docs: SSL) - rspamd: Override directory for custom settings when using Rspamd (Docs: Rspamd)
Files
- {user_email_address}.dovecot.sieve: User specific Sieve filter file. (Docs: Sieve)
- before.dovecot.sieve: Global Sieve filter file, applied prior to the
${login}.dovecot.sieve
filter. (Docs: Sieve) - after.dovecot.sieve: Global Sieve filter file, applied after the
${login}.dovecot.sieve
filter. (Docs: Sieve) - postfix-main.cf: Every line will be added to the postfix main configuration. (Docs: Override Postfix Defaults)
- postfix-master.cf: Every line will be added to the postfix master configuration. (Docs: Override Postfix Defaults)
- postfix-accounts.cf: User accounts file. Modify via the
setup.sh email
script. - postfix-send-access.cf: List of users denied sending. Modify via
setup.sh email restrict
. - postfix-receive-access.cf: List of users denied receiving. Modify via
setup.sh email restrict
. - postfix-virtual.cf: Alias configuration file. Modify via
setup.sh alias
. - postfix-sasl-password.cf: listing of relayed domains with their respective
<username>:<password>
. Modify viasetup.sh relay add-auth <domain> <username> [<password>]
. (Docs: Relay-Hosts Auth) - postfix-relaymap.cf: domain-specific relays and exclusions. Modify via
setup.sh relay add-domain
andsetup.sh relay exclude-domain
. (Docs: Relay-Hosts Senders) - postfix-regexp.cf: Regular expression alias file. (Docs: Aliases)
- ldap-users.cf: Configuration for the virtual user mapping
virtual_mailbox_maps
. See thesetup-stack.sh
script. - ldap-groups.cf: Configuration for the virtual alias mapping
virtual_alias_maps
. See thesetup-stack.sh
script. - ldap-aliases.cf: Configuration for the virtual alias mapping
virtual_alias_maps
. See thesetup-stack.sh
script. - ldap-domains.cf: Configuration for the virtual domain mapping
virtual_mailbox_domains
. See thesetup-stack.sh
script. - whitelist_clients.local: Whitelisted domains, not considered by postgrey. Enter one host or domain per line.
- spamassassin-rules.cf: Anti-spam rules for Spamassassin. (Docs: FAQ - SpamAssassin Rules)
- fail2ban-fail2ban.cf: Additional config options for
fail2ban.cf
. (Docs: Fail2Ban) - fail2ban-jail.cf: Additional config options for fail2ban's jail behavior. (Docs: Fail2Ban)
- amavis.cf: replaces the
/etc/amavis/conf.d/50-user
file - dovecot.cf: replaces
/etc/dovecot/local.conf
. (Docs: Override Dovecot Defaults) - dovecot-quotas.cf: list of custom quotas per mailbox. (Docs: Accounts)
- user-patches.sh: this file will be run after all configuration files are set up, but before the postfix, amavis and other daemons are started. (Docs: FAQ - How to adjust settings with the
user-patches.sh
script) - rspamd/custom-commands.conf: list of simple commands to adjust Rspamd modules in an easy way (Docs: Rspamd)