Settings
Mailman Web supports following settings.
- ADMINS = (('Mailman Suite Admin', 'root@localhost'),)
Default list of admins who receive the emails from error logging.
Default Value:
(('Mailman Suite Admin', 'root@localhost'),)
- ALLOWED_HOSTS = ['localhost']
Hosts/domain names that are valid for this site; required if DEBUG is False. See https://docs.djangoproject.com/en/dev/ref/settings/#allowed-hosts
Default Value:
['localhost']
- AUTH_PASSWORD_VALIDATORS = [{'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator'}, {'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator'}, {'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator'}, {'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator'}]
Default password validators.
Default Value:
[{'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator'}, {'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator'}, {'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator'}, {'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator'}]
- BASE_DIR = PosixPath('/opt/mailman/web')
The base directory for logs and database.
Default Value:
PosixPath('/opt/mailman/web')
- DATABASES = {'default': {'ENGINE': 'django.db.backends.sqlite3', 'HOST': '', 'NAME': '/opt/mailman/web/mailman-web.db', 'PORT': ''}}
Default Database to be used. Example for PostgreSQL (recommanded for production):
'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': 'database_name', 'USER': 'database_user', 'PASSWORD': 'database_password', 'HOST': 'localhost', }
For MySQL/MariaDB also add the following to the the configuration:
'OPTIONS': {'charset': 'utf8mb4'} # Enable utf8 4-byte encodings.
Check out Django documentation for more details.
Default Value:
{'default': {'ENGINE': 'django.db.backends.sqlite3', 'HOST': '', 'NAME': '/opt/mailman/web/mailman-web.db', 'PORT': ''}}
- DEBUG = False
Enable Development Mode.
Default Value:
False
- EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
The default implementation to send out emails. This can be customized to something else for testing purposes. https://docs.djangoproject.com/en/dev/topics/email/#email-backends
Default Value:
'django.core.mail.backends.smtp.EmailBackend'
- INSTALLED_APPS = ['hyperkitty', 'postorius', 'django_mailman3', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.humanize', 'rest_framework', 'django_gravatar', 'compressor', 'haystack', 'django_extensions', 'django_q', 'allauth', 'allauth.account', 'allauth.socialaccount']
Default list of django applications. Each social account provider is an application and by default no social auth providers are enabled. To enable a social auth provider, you can add them to list of INSTALLED_APPS. For example:
DJANGO_SOCIAL_AUTH_PROVIDERS = [ 'allauth.socialaccount.providers.openid', 'django_mailman3.lib.auth.fedora', 'allauth.socialaccount.providers.github', 'allauth.socialaccount.providers.gitlab', 'allauth.socialaccount.providers.google', 'allauth.socialaccount.providers.facebook', 'allauth.socialaccount.providers.twitter', 'allauth.socialaccount.providers.stackexchange', ] INSTALLED_APPS += DJANGO_SOCIAL_AUTH_PROVIDERS
A full list of providers can be found at https://docs.allauth.org/en/latest/socialaccount/providers/index.html Please also note that extra configuration is required after a provider is enabled. Django-allauth’s documentation mentioned above provides more details about how to configure one.
Default Value:
['hyperkitty', 'postorius', 'django_mailman3', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.humanize', 'rest_framework', 'django_gravatar', 'compressor', 'haystack', 'django_extensions', 'django_q', 'allauth', 'allauth.account', 'allauth.socialaccount']
- LANGUAGE_CODE = 'en-us'
Default Language code.
Default Value:
'en-us'
- LOGGING = {'disable_existing_loggers': False, 'filters': {'require_debug_false': {'()': 'django.utils.log.RequireDebugFalse'}}, 'formatters': {'simple': {'format': '%(levelname)s %(message)s'}, 'verbose': {'format': '%(levelname)s %(asctime)s %(process)d %(name)s %(message)s'}}, 'handlers': {'console': {'class': 'logging.StreamHandler', 'formatter': 'simple'}, 'file': {'class': 'logging.handlers.WatchedFileHandler', 'filename': '/opt/mailman/web/logs/mailmanweb.log', 'formatter': 'verbose', 'level': 'INFO'}, 'mail_admins': {'class': 'django.utils.log.AdminEmailHandler', 'filters': ['require_debug_false'], 'level': 'ERROR'}}, 'loggers': {'django': {'handlers': ['file'], 'level': 'ERROR', 'propagate': True}, 'django.request': {'handlers': ['mail_admins', 'file'], 'level': 'ERROR', 'propagate': True}, 'hyperkitty': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': True}, 'postorius': {'handlers': ['console', 'file'], 'level': 'INFO'}, 'q': {'handlers': ['console', 'file'], 'level': 'WARNING', 'propagate': False}}, 'version': 1}
Default Logging configuration.
Default Value:
{'disable_existing_loggers': False, 'filters': {'require_debug_false': {'()': 'django.utils.log.RequireDebugFalse'}}, 'formatters': {'simple': {'format': '%(levelname)s %(message)s'}, 'verbose': {'format': '%(levelname)s %(asctime)s %(process)d ' '%(name)s %(message)s'}}, 'handlers': {'console': {'class': 'logging.StreamHandler', 'formatter': 'simple'}, 'file': {'class': 'logging.handlers.WatchedFileHandler', 'filename': '/opt/mailman/web/logs/mailmanweb.log', 'formatter': 'verbose', 'level': 'INFO'}, 'mail_admins': {'class': 'django.utils.log.AdminEmailHandler', 'filters': ['require_debug_false'], 'level': 'ERROR'}}, 'loggers': {'django': {'handlers': ['file'], 'level': 'ERROR', 'propagate': True}, 'django.request': {'handlers': ['mail_admins', 'file'], 'level': 'ERROR', 'propagate': True}, 'hyperkitty': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': True}, 'postorius': {'handlers': ['console', 'file'], 'level': 'INFO'}, 'q': {'handlers': ['console', 'file'], 'level': 'WARNING', 'propagate': False}}, 'version': 1}
- LOGIN_REDIRECT_URL = 'list_index'
Default Django URL to redirect to after a successful login.
Default Value:
'list_index'
- LOGIN_URL = 'account_login'
Default Django URL to redirect to for Login.
Default Value:
'account_login'
- LOGOUT_URL = 'account_logout'
Default Django URL to Logout the user.
Default Value:
'account_logout'
- MIDDLEWARE = ('allauth.account.middleware.AccountMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.locale.LocaleMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'django.middleware.security.SecurityMiddleware', 'django_mailman3.middleware.TimezoneMiddleware', 'postorius.middleware.PostoriusMiddleware')
Default Django Middlewares.
Default Value:
('allauth.account.middleware.AccountMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.locale.LocaleMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'django.middleware.security.SecurityMiddleware', 'django_mailman3.middleware.TimezoneMiddleware', 'postorius.middleware.PostoriusMiddleware')
- ROOT_URLCONF = 'mailman_web.urls'
URL Configuration for Django
Default Value:
'mailman_web.urls'
- SERVER_EMAIL = 'root@localhost.local'
If you enable email reporting for error messages, this is where those emails will appear to be coming from. Make sure you set a valid domain name, otherwise the emails may get rejected. https://docs.djangoproject.com/en/dev/ref/settings/#std:setting-SERVER_EMAIL
Default Value:
'root@localhost.local'
- SITE_ID = 1
Current Django Site being served. This is used to customize the web host being used to serve the current website. For more details about Django site, see: https://docs.djangoproject.com/en/dev/ref/contrib/sites/
Default Value:
1
- STATICFILES_DIRS = ()
Additional locations of static files
Default Value:
()
- STATICFILES_FINDERS = ('django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder', 'compressor.finders.CompressorFinder')
List of finder classes that know how to find static files in various locations.
Default Value:
('django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder', 'compressor.finders.CompressorFinder')
- STATIC_ROOT = '/opt/mailman/web/static'
Default path where static files will be placed.
Default Value:
'/opt/mailman/web/static'
- STATIC_URL = '/static/'
URL prefix for static files. Example: “http://example.com/static/”, “http://static.example.com/”
Default Value:
'/static/'
- TEMPLATES = [{'APP_DIRS': True, 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [], 'OPTIONS': {'context_processors': ['django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.template.context_processors.csrf', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', 'django_mailman3.context_processors.common', 'hyperkitty.context_processors.common', 'postorius.context_processors.postorius']}}]
Default Template finders.
Default Value:
[{'APP_DIRS': True, 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [], 'OPTIONS': {'context_processors': ['django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.template.context_processors.csrf', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', 'django_mailman3.context_processors.common', 'hyperkitty.context_processors.common', 'postorius.context_processors.postorius']}}]
- TIME_ZONE = 'UTC'
Default timezone.
Default Value:
'UTC'
- USE_I18N = True
Enable internationalization.
Default Value:
True
- USE_L10N = True
Enable localization.
Default Value:
True
- USE_TZ = True
Use the timezone information.
Default Value:
True
- WSGI_APPLICATION = 'mailman_web.wsgi.application'
Wsgi application import path. This will be used by the WSGI server which will be used to deploy this application.
Default Value:
'mailman_web.wsgi.application'
- ACCOUNT_AUTHENTICATION_METHOD = 'username_email'
Django Allauth
Default Value:
'username_email'
- ACCOUNT_DEFAULT_HTTP_PROTOCOL = 'https'
Protocol for URLs generated for authentication, like email confirmation.
Default Value:
'https'
- AUTHENTICATION_BACKENDS = ('django.contrib.auth.backends.ModelBackend', 'allauth.account.auth_backends.AuthenticationBackend')
Authentication backends for Django to be used.
Default Value:
('django.contrib.auth.backends.ModelBackend', 'allauth.account.auth_backends.AuthenticationBackend')
- COMPRESS_OFFLINE = True
On a production setup, setting COMPRESS_OFFLINE to True will bring a significant performance improvement, as CSS files will not need to be recompiled on each requests. It means running an additional “compress” management command after each code upgrade. http://django-compressor.readthedocs.io/en/latest/usage/#offline-compression
Default Value:
True
- COMPRESS_PRECOMPILERS = (('text/x-scss', 'sassc -t compressed {infile} {outfile}'), ('text/x-sass', 'sassc -t compressed {infile} {outfile}'))
django-compressor https://pypi.python.org/pypi/django_compressor
Default Value:
(('text/x-scss', 'sassc -t compressed {infile} {outfile}'), ('text/x-sass', 'sassc -t compressed {infile} {outfile}'))
- DEFAULT_FROM_EMAIL = 'postorius@localhost'
Sender in Emails sent out by Postorius.
Default Value:
'postorius@localhost'
- FILTER_VHOST = False
Filter visible Mailing Lists based on the current host being used to serve.
Default Value:
False
- HAYSTACK_CONNECTIONS = {'default': {'ENGINE': 'haystack.backends.whoosh_backend.WhooshEngine', 'PATH': 'fulltext_index'}}
Django-Haystack connection parameters.
Default Value:
{'default': {'ENGINE': 'haystack.backends.whoosh_backend.WhooshEngine', 'PATH': 'fulltext_index'}}
- HYPERKITTY_ENABLE_GRAVATAR = True
Use gravatar in HyperKitty and Postorius. If disabled django_gravatar can be removed from INSTALLED_APPS: INSTALLED_APPS.remove(‘django_gravatar’)
Default Value:
True
- MAILMAN_ARCHIVER_FROM = ('127.0.0.1', '::1')
Host for Mailman Core, from where Hyperkitty will accept connections for archiving.
Default Value:
('127.0.0.1', '::1')
- MAILMAN_ARCHIVER_KEY = 'SecretArchiverAPIKey'
Mailman Core Shared archiving key. This value is set in the : mailman-hyperkitty’s configuration file.
Default Value:
'SecretArchiverAPIKey'
- MAILMAN_REST_API_PASS = 'restpass'
Mailman Core API user’s password.
Default Value:
'restpass'
- MAILMAN_REST_API_URL = 'http://localhost:8001'
Mailman Core default API Path
Default Value:
'http://localhost:8001'
- MAILMAN_REST_API_USER = 'restadmin'
Mailman Core API user
Default Value:
'restadmin'
- POSTORIUS_TEMPLATE_BASE_URL = 'http://localhost:8000'
Base URL where Django/Mailman-web would be listening for requests. Used by Mailman Core for fetching templates.
Default Value:
'http://localhost:8000'
- Q_CLUSTER = {'orm': 'default', 'retry': 360, 'save_limit': 100, 'timeout': 300, 'workers': 2}
Django Q connection parameters.
Default Value:
{'orm': 'default', 'retry': 360, 'save_limit': 100, 'timeout': 300, 'workers': 2}
- SOCIALACCOUNT_PROVIDERS = {'facebook': {'FIELDS': ['email', 'name', 'first_name', 'last_name', 'locale', 'timezone'], 'METHOD': 'oauth2', 'SCOPE': ['email'], 'VERSION': 'v2.4'}, 'google': {'AUTH_PARAMS': {'access_type': 'online'}, 'SCOPE': ['profile', 'email']}, 'openid': {'SERVERS': [{'id': 'yahoo', 'name': 'Yahoo', 'openid_url': 'http://me.yahoo.com'}]}}
Extra configuration for Social auth. For these configuration to be used. each of the social account providers must be first added in INSTALLED_APPS. See
mailman_web.settings.base.INSTALLED_APPS
for more configuration.Default Value:
{'facebook': {'FIELDS': ['email', 'name', 'first_name', 'last_name', 'locale', 'timezone'], 'METHOD': 'oauth2', 'SCOPE': ['email'], 'VERSION': 'v2.4'}, 'google': {'AUTH_PARAMS': {'access_type': 'online'}, 'SCOPE': ['profile', 'email']}, 'openid': {'SERVERS': [{'id': 'yahoo', 'name': 'Yahoo', 'openid_url': 'http://me.yahoo.com'}]}}