MUM
v0.1.5

Configuration Options

Work in progress

Not all information is included in the docs yet, but we are working on it!

All main configurations take place in the .env file. We provide an .env.example file. Here you can find all keys you have to configure for running MUM.

General Config

APP_NAME

The name of the application.

Default: MUM

APP_ENV

The environment of the application.

Default: production

APP_KEY

The encryption key generated by the application. Generally speaking, you should not change this value yourself.

APP_DEBUG

Whether the application is in debug mode. If debug mode is enabled, exception stacktraces will be shown to the user. This is dangerous and should not be enabled on production machines.

Default: false

APP_URL

The URL where MUM's web interface is available. Example: https://mum.example.com

TIMEZONE

Which timezone to use, have a look at the PHP manual on supported timezones for all options.

Default: Europe/Berlin

LOG_CHANNEL

This option defines the default log channel that gets used when writing messages to the logs. The name specified in this option should match one of the channels defined in the channels configuration array that can be found in config/logging.php.

Default: stack

Available Drivers: single, daily, slack, syslog, errorlog, monolog, custom, stack

Database

DB_CONNECTION

Here you can specify which database driver you want to use. Since Postfix and Dovecot also need access to MUM's database, the option mysql should be selected.

DB_HOST

The host address where the database service is running.

Default: 127.0.0.1

DB_PORT

The port where the database service is running.

Default: 3306

DB_DATABASE

Which database should be used by MUM. It should not be used by any other application.

DB_USERNAME

Which username MUM should use to connect to the database. This user needs to have all necessary privileges for the database.

DB_PASSWORD

The password to authenticate with the provided username against the database host.

Drivers

HASHING_DRIVER

Here you may specify the hashing driver MUM should use. We strongly recommend that you use either Bcrypt or Argon, but if your environment does not support these algorithms, you may also choose SHA512 or SHA256.

Supported: sha256, sha512, bcrypt, argon

Be aware that Dovecot has to be configured to use the same hashing algorithm. Otherwise, Dovecot will not be able to authenticate your users. Have a look at MUM's documentation on Dovecot's SQL file for details.

CACHE_DRIVER

This option controls the default cache connection that gets used while using this caching library. This connection is used when another is not explicitly specified when executing a given caching function.

Default: file

Supported: apc, array, database, file, memcached, redis

QUEUE_DRIVER

Laravel's queue API supports an assortment of back-ends via a single API, giving you convenient access to each back-end using the same syntax for every one. Here you may define a default connection.

Default: sync

Drivers: sync, database, beanstalkd, sqs, redis, null

SESSION_DRIVER

This option controls the default session "driver" that will be used on requests. By default, we will use the lightweight native driver but you may specify any of the other wonderful drivers provided here.

Default: file

Supported: file, cookie, database, apc, memcached, redis, array

SQS

Amazon Simple Queue Service is a distributed message queuing service that may be used as a queue or session driver in MUM. If you want to use it, you need to configure the following settings:

SQS_KEY

Your public key.

SQS_SECRET

Your secret key.

SQS_PREFIX

Something like https://sqs.us-east-1.amazonaws.com/your-account-id.

SQS_QUEUE

Your queue name.

SQS_REGION

E.g. us-east-1

Redis

Redis is an open source, fast, and advanced key-value store that also provides a richer set of commands than a typical key-value systems such as APC or Memcached. Laravel makes it easy to dig right in.

REDIS_HOST

The redis host that should be used.

Default: 127.0.0.1

REDIS_PASSWORD

The password that is used to authenticate.

Default: null

REDIS_PORT

The port where the redis service is running.

Default: 6379

REDIS_DATABASE

The database that should be used.

Default: 0

Session

SESSION_LIFETIME

Here you may specify the number of minutes that you wish the session to be allowed to remain idle before it expires.

Default: 120

SESSION_EXPIRE_ON_CLOSE

If you want the session to immediately expire on the browser closing, set that option.

Default: false

Email

MAIL_DRIVER

The mail driver that should be used for MUM to send emails (like notifications).

Default: smtp

Supported: smtp, sendmail

MAIL_HOST

The SMTP host that should be used to send outgoing emails.

Default: 127.0.0.1

MAIL_PORT

The SMTP host's port where outgoing email should be submitted.

Default: 587 (Submission)

MAIL_USERNAME

The username that MUM will use to authenticate when sending emails. If you want MUM to generate credentials for itself when installing, this value will be automatically set.

MAIL_PASSWORD

The password that MUM will use to authenticate when sending emails. If you want MUM to generate credentials for itself when installing, this value will be automatically set.

MAIL_ENCRYPTION

Here you may specify the encryption protocol that should be used when the application send e-mail messages. A sensible default using the transport layer security protocol should provide great security.

Default: tls

MAIL_FROM_ADDRESS

The global "From" address that MUM will use when sending emails.

MAIL_FROM_NAME

The global "From" name that MUM will use when sending emails.

Default: APP_NAME

Validation

PASSWORD_MIN_LENGTH

The minimum password length that will be required by MUM.

Default: 8

VALIDATE_LOCAL_PART

Whether the local part of email addresses should be validated. If you want to use unconventional (non-RFC-compliant) local parts, you may disable their validation here.

Default: true

ALLOW_UNICODE_LOCAL_PART

Whether to allow local parts to include unicode characters. You may disable that possibility, if your environment does not support unicode characters in email addresses.

Default: true

VALIDATE_DOMAIN

Whether to validate domains. If you want to use unconventional domain names, you may disable their validation here.

Default: true

VALIDATE_DOMAIN_AS_HOSTNAME

Whether domain validation should allow values that do not have a top level domain. This may be helpful if you want to use MUM in a local environment.

Default: false

Domain Defaults

DOMAINS_QUOTA

The standard quota value for new domains. Zero means unlimited.

Default: 0

DOMAINS_MAX_QUOTA

The standard maximum mailbox quota value for new domains.

Default: null

Mailboxes

MAILBOXES_ROOT_DIRECTORY

The base directory where Dovecot saves all emails. This value is needed so MUM can interpret the size report by the mailbox size crawler for said directory.

Default: /srv/mail/mailboxes

MAILBOXES_HOMEDIR

Here you can set the default home directory path for new mailboxes. Have a look at the Dovecot documentation on home directories for details.
You may use the following placeholders (similar to Dovecot):

  • %d (Domain, e.g. "example.com")
  • %n (Username / Local part, e.g. "jon.doe")
  • %u (User, eg. "jon.doe@example.com")

Default: /srv/mail/mailboxes/%d/%n

MAILBOXES_MAILDIR

Here you can set the default mail directory path for new mailboxes. Have a look at the Dovecot documentation on home vs. mail directories for details.
You may use the following placeholders (similar to Dovecot):

  • %d (Domain, e.g. "example.com")
  • %n (Username / Local part, e.g. "jon.doe")
  • %u (User, eg. "jon.doe@example.com")

Default: maildir:/srv/mail/mailboxes/%d/%n:LAYOUT=fs

Aliases

ALIASES_DEACTIVATE_AT_DEFAULT_DAYS

The default value of days for automatically deactivating aliases.

Default: 0

ALIASES_DEACTIVATE_AT_DEFAULT_HOURS

The default value of hours for automatically deactivating aliases.

Default: 0

ALIASES_DEACTIVATE_AT_DEFAULT_MINUTES

The default value of minutes for automatically deactivating aliases.

Default: 10

System Health

SYSTEM_HEALTH_CHECK_SERVICES

Here you can specify whether system services should be monitored using systemctl. Be aware that your system needs to use systemd for this to work.

Default: false

SYSTEM_HEALTH_CHECK_FREQUENCY

Here you can specify the check frequency for service health checks.

Default: 5min

Supported: 1min, 5min, 10min, 15min, 30min

SYSTEM_HEALTH_MAX_ENTRIES_INCIDENT_HISTORY

Here you can specify how long to keep track of the incident history, meaning all health checks that did not return a running state.

Default: 100

Integrations

With integrations you can include external applications in MUM's workflow. If another program needs to know when a new mailbox is created, you can utilize an integration to let it know.

Attention! This configuration can have severe implications regarding your system's security. Use this feature only if you know what you're doing.

ENABLE_INTEGRATIONS

Here you can specify if integrations should be enabled generally. If they are disabled, MUM's web interface won't show any pages related to integrations.

Default: false

Shell Commands

Here you can specify up to 10 shell commands that you want to allow to be executed with an integration configurable in MUM's web interface. You may configure them with INTEGRATIONS_SHELL_COMMAND_01INTEGRATIONS_SHELL_COMMAND_10. These commands will be executed by your web server user. You may want to use full paths.

INTEGRATIONS_ENABLE_SHELL_COMMANDS

Here you can specify whether this integration type should be enabled.

Default: false

INTEGRATIONS_SHELL_COMMANDS_ALLOW_PARAMETERS

Here you can specify if administrators can configure shell command parameters in MUM's web interface.

Default: false

INTEGRATIONS_SHELL_COMMANDS_FAILED_RETRY_DELAY

Here you can specify the retry delay after a failed shell command integration in seconds.

Default: 10

Webhooks

INTEGRATIONS_ENABLE_WEB_HOOKS

Here you can specify whether this integration type should be enabled.

Default: false

INTEGRATIONS_WEB_HOOKS_FAILED_RETRY_DELAY

Here you can specify the retry delay after a failed webhook integration in seconds.

Default: 60

Size Measurements

Here you can set whether old size measurements should be deleted automatically. You may also specify after what time a record should be deleted. The provided values will be subtracted from the current timestamp. For example, you could automatically delete all records older than 5 months, 2 weeks and 15 days.

SIZE_MEASUREMENTS_DELETE_OLD

Default: true

SIZE_MEASUREMENTS_DELETE_AFTER_MONTHS

Default: 12

SIZE_MEASUREMENTS_DELETE_AFTER_WEEKS

Default: 0

SIZE_MEASUREMENTS_DELETE_AFTER_DAYS

Default: 0

Dashboard Email Settings

Here you can set the default settings for SMTP, IMAP and POP3 for clients that will be displayed for users.

SHOW_EMAIL_SETTINGS

If this is enabled, the dashboard will show the default settings for email clients.

Default true

SMTP_HOSTNAME

The hostname for SMTP connections. Example: smtp.example.com

SMTP_PORT

The port for SMTP connections. Example: 587 (Submission)

SMTP_SSL

The encryption mode for SMTP connections. Example: STARTTLS

IMAP_HOSTNAME

The hostname for IMAP connections. Example: imap.example.com

IMAP_PORT

The port for IMAP connections. Example: 993

IMAP_SSL

The encryption mode for IMAP connections. Example: SSL/TLS

POP3_HOSTNAME

The hostname for POP3 connections. Example: pop3.example.com

POP3_PORT

The port for POP3 connections. Example: 995

POP3_SSL

The encryption mode for POP3 connections. Example: SSL/TLS