2018-08-04 09:30:37 +00:00
# This file is the default config file for Mailtrain. To use a environment specific
# configuration add new file {ENV}.{ext} (eg. production.yaml) to the same folder.
# {ENV} is defined by NODE_ENV environment variable.
#
# Do not modify this file directly, otherwise you might lose your modifications when upgrading
#
# You should only define the options you want to change in your additional config file.
# For example if the only thing you want to change is the port number for the www server
# then your additional config file should look like this:
# # production.yaml
# www:
# port: 80
# Process title visible in monitoring logs and process listing
title : mailtrain
2018-11-21 21:02:14 +00:00
# GDPR related settings (https://en.wikipedia.org/wiki/General_Data_Protection_Regulation)
gdpr :
# If enabled, after a user unsubscribes or complains, his/her data are removed from the subscription.
# Only hashed email remains to prevent resubscription via import
deleteDataAfterUnsubscribe :
enabled : true
secondsAfterUnsubscribe : 86400 # 1 day
# If enabled, after the time below, an entry of a subscriber that unsubscribed or complained
# is completely removed from the subscribers list (including the hashed email)
deleteSubscriptionAfterUnsubscribe :
enabled : true
secondsAfterUnsubscribe : 2592000 # 30 days
2018-08-04 09:30:37 +00:00
# Enabled HTML editors
editors :
2018-11-13 20:35:33 +00:00
- grapesjs
2018-08-04 09:30:37 +00:00
- mosaico
- mosaicoWithFsTemplate
2018-11-13 20:35:33 +00:00
- ckeditor4
- codeeditor
2018-08-04 09:30:37 +00:00
# Default language to use
2018-12-15 14:15:48 +00:00
defaultLanguage : en-US
2018-11-18 20:31:22 +00:00
# Enabled languages
enabledLanguages :
2018-12-15 14:15:48 +00:00
- en-US
2019-03-04 14:44:52 +00:00
- es-ES
2018-12-15 14:15:48 +00:00
- fk-FK
2018-08-04 09:30:37 +00:00
# Inject custom scripts in subscription/layout.mjml.hbs
# customSubscriptionScripts: [/custom/hello-world.js]
2018-11-23 20:38:46 +00:00
2018-11-24 05:48:41 +00:00
# Enable to use Redis session cache or disable if Redis is not installed
redis :
enabled : false
host : localhost
port : 6379
db : 5
# Uncomment if your Redis installation requires a password
# password=""
2018-08-04 09:30:37 +00:00
# If you start out as a root user (eg. if you want to use ports lower than 1000)
# then you can downgrade the user once all services are up and running
#user: mailtrain
#group: mailtrain
# If Mailtrain is started as root, Reports feature drops the privileges of script generating the report to disallow
# any modifications of Mailtrain code and even prohibits reading the production configuration (which contains the MySQL
# password for read/write operations). The roUser/roGroup determines the user to be used
#roUser: nobody
#roGroup: nogroup
log :
# silly|verbose|info|http|warn|error|silent
2018-11-23 20:38:46 +00:00
level : info
2018-08-04 09:30:37 +00:00
www :
2018-09-18 08:30:13 +00:00
# HTTP port to listen on for trusted requests (logged-in users)
trustedPort : 3000
# HTTP port to listen on for sandboxed requests (logged-in users)
2018-11-23 20:38:46 +00:00
sandboxPort : 3003
2018-09-18 08:30:13 +00:00
# HTTP port to listen on for public requests (campaign recipients)
2018-11-23 20:38:46 +00:00
publicPort : 3004
2018-08-04 09:30:37 +00:00
# HTTP interface to listen on
host : 0.0 .0 .0
2018-09-18 08:30:13 +00:00
# URL base for trusted urls (logged-in users). It must be absolute (starting with http:// or https://). If Mailtrain is served on
2018-08-04 09:30:37 +00:00
# a non-standard port (e.g. 3000), the URL must also specify the port.
trustedUrlBase : http://localhost:3000
2018-09-18 08:30:13 +00:00
# URL base for sandbox urls (logged-in users). It must be absolute (starting with http:// or https://) and contain the sandbox port.
2018-11-23 20:38:46 +00:00
sandboxUrlBase : http://localhost:3003
2018-09-18 08:30:13 +00:00
# URL base for public urls (campaign recipients). It must be absolute (starting with http:// or https://) and contain the sandbox port.
2018-11-23 20:38:46 +00:00
publicUrlBase : http://localhost:3004
2018-09-18 08:30:13 +00:00
2018-08-04 09:30:37 +00:00
# Secret for signing the session ID cookie
secret : a cat
# Session length in seconds when remember me is checked
remember : 2592000 # 30 days
# logger interface for expressjs morgan
log : dev
# Is the server behind a proxy? true/false
# Set this to true if you are serving Mailtrain as a virtual domain through Nginx or Apache
proxy : false
# maximum POST body size
postSize : 2MB
mysql :
host : localhost
user : mailtrain
password : mailtrain
database : mailtrain
# Some installations, eg. MAMP can use a different port (8889)
# MAMP users should also turn on Allow network access to MySQL otherwise MySQL might not be accessible
port : 3306
charset : utf8mb4
# The timezone configured on the MySQL server. This can be 'local', 'Z', or an offset in the form +HH:MM or -HH:MM
2018-11-20 22:41:10 +00:00
# If the MySQL server runs on the same server as Mailtrain, use 'local'
2018-08-04 09:30:37 +00:00
timezone : local
verp :
# Enable to start an MX server that detects bounced messages using VERP
# In most cases you do not want to use it
# Requires root privileges
enabled : false
2018-12-25 18:10:28 +00:00
port : 25
2018-08-04 09:30:37 +00:00
host : 0.0 .0 .0
ldap :
# enable to use ldap user backend
enabled : false
# method is ldapjs or ldapauth - it chooses the library to be used. If not given, it chooses the one present.
# method: ldapjs
host : localhost
port : 3002
baseDN : ou=users,dc=company
filter : (|(username={{username}})(mail={{username}}))
# Username field in LDAP (uid/cn/username)
uidTag : username
# nameTag identifies the attribute to be used for user's full name
nameTag : username
passwordresetlink :
newUserRole : master
# Global namespace id
newUserNamespaceId : 1
# Use a different user to bind LDAP (final bind DN will be: {{uidTag}}: {{bindUser}},{{baseDN}})
bindUser : name@company.net
bindPassword : mySecretPassword
postfixbounce :
# Enable to allow writing Postfix bounce log to Mailtrain listener
# If enabled, tail mail.log to Mailtrain with the following command:
# tail -f -n +0 /var/log/mail.log | nc localhost 5699 -
enabled : false
port : 5699
# allow connections from localhost only
host : 127.0 .0 .1
# extra options for nodemailer
nodemailer :
#textEncoding: base64
queue :
# How many parallel sender processes to spawn
2018-09-09 22:55:44 +00:00
processes : 2
2018-08-04 09:30:37 +00:00
cors :
# Allow subscription widgets to be embedded
# origins: ['https://www.example.com']
mosaico :
# Installed templates
fsTemplates :
- key : versafix-1
label : Versafix One
# Inject custom scripts
# customscripts:
# - /mosaico/custom/my-mosaico-plugin.js
2018-11-04 10:19:34 +00:00
grapesjs :
2018-08-04 09:30:37 +00:00
# Installed templates
templates :
- key : demo
label : HTML Template
- key : aves
label : MJML Template
reports :
# The whole reporting functionality can be disabled below if the they are not needed and the DB cannot be
# properly protected.
# Reports rely on custom user defined Javascript snippets defined in the report template. The snippets are run on the
# server when generating a report. As these snippets are stored in the DB, they pose a security risk because they can
# help gaining access to the server if the DB cannot
# be properly protected (e.g. if it is shared with another application with security weaknesses).
# Mailtrain mitigates this problem by running the custom Javascript snippets in a chrooted environment and under a
# DB user that cannot modify the database (see userRO in [mysql] above). However the chrooted environment is available
# only if Mailtrain is started as root. The chrooted environment still does not prevent the custom JS script in
# performing network operations and in generating XSS attacks as part of the report.
# The bottom line is that if people who are creating report templates or have write access to the DB cannot be trusted,
# then it's safer to switch off the reporting functionality below.
2018-11-21 21:02:14 +00:00
enabled : true
2018-08-04 09:30:37 +00:00
2018-11-17 01:54:23 +00:00
testServer :
2018-08-04 09:30:37 +00:00
# Starts a vanity server that redirects all mail to /dev/null
# Mostly needed for local development
enabled : false
port : 5587
2018-11-17 01:54:23 +00:00
mailboxServerPort : 3001
2018-08-04 09:30:37 +00:00
host : 0.0 .0 .0
username : testuser
password : testpass
logger : false
2018-12-16 21:35:21 +00:00
builtinZoneMTA :
enabled : true
2018-12-21 18:09:18 +00:00
host : localhost
port : 2525
mongo : mongodb://127.0.0.1:27017/zone-mta
redis : redis://localhost:6379/2
log :
level : warn
2019-03-09 13:07:11 +00:00
processes : 2
connections : 5
2018-12-16 21:35:21 +00:00
2018-11-17 01:54:23 +00:00
seleniumWebDriver :
2018-08-04 09:30:37 +00:00
browser : phantomjs
roles :
global :
master :
2019-01-05 22:56:16 +00:00
name : Global Master
2018-08-04 09:30:37 +00:00
admin : true
description : All permissions
2019-03-04 14:57:51 +00:00
permissions : [ rebuildPermissions, createJavascriptWithROAccess, manageUserList, manageBlacklist, manageSettings, setupAutomation]
2018-08-04 09:30:37 +00:00
rootNamespaceRole : master
2019-01-05 22:56:16 +00:00
campaignsAdmin :
name : Campaigns Admin
description : Under the namespace in which the user is located, the user has all permissions for managing lists, templates and campaigns and the permission to send to send configurations.
permissions : [ setupAutomation]
ownNamespaceRole : campaignsAdmin
2018-12-29 14:12:42 +00:00
nobody :
name : None
description : No permissions
permissions : [ ]
2018-08-04 09:30:37 +00:00
namespace :
master :
name : Master
description : All permissions
permissions : [ view, edit, delete, share, createNamespace, createList, createCustomForm, createReport, createReportTemplate, createTemplate, createMosaicoTemplate, createSendConfiguration, createCampaign, manageUsers]
children :
sendConfiguration : [ viewPublic, viewPrivate, edit, delete, share, sendWithoutOverrides, sendWithAllowedOverrides, sendWithAnyOverrides]
2018-08-05 04:47:05 +00:00
list : [ view, edit, delete, share, viewFields, manageFields, viewSubscriptions, manageSubscriptions, viewSegments, manageSegments, viewImports, manageImports]
2018-08-04 09:30:37 +00:00
customForm : [ view, edit, delete, share]
2018-12-29 14:12:42 +00:00
campaign : [ view, edit, delete, share, viewFiles, manageFiles, viewAttachments, manageAttachments, viewTriggers, manageTriggers, send, viewStats, fetchRss]
2018-08-04 09:30:37 +00:00
template : [ view, edit, delete, share, viewFiles, manageFiles]
report : [ view, edit, delete, share, execute, viewContent, viewOutput]
reportTemplate : [ view, edit, delete, share, execute]
mosaicoTemplate : [ view, edit, delete, share, viewFiles, manageFiles]
namespace : [ view, edit, delete, share, createNamespace, createList, createCustomForm, createReport, createReportTemplate, createTemplate, createMosaicoTemplate, createSendConfiguration, createCampaign, manageUsers]
2019-01-05 22:56:16 +00:00
campaignsAdmin :
name : Campaigns Admin
description : Under the namespace in which the user is located, the user has all permissions for managing lists, templates and campaigns and the permission to send to send configurations.
permissions : [ view, edit, delete, share, createNamespace, createList, createCustomForm, createReport, createTemplate, createMosaicoTemplate, createCampaign]
children :
sendConfiguration : [ viewPublic, sendWithoutOverrides, sendWithAllowedOverrides]
list : [ view, edit, delete, share, viewFields, manageFields, viewSubscriptions, manageSubscriptions, viewSegments, manageSegments, viewImports, manageImports]
customForm : [ view, edit, delete, share]
campaign : [ view, edit, delete, share, viewFiles, manageFiles, viewAttachments, manageAttachments, viewTriggers, manageTriggers, send, viewStats, fetchRss]
template : [ view, edit, delete, share, viewFiles, manageFiles]
report : [ view, edit, delete, share, execute, viewContent, viewOutput]
reportTemplate : [ view, share, execute]
mosaicoTemplate : [ view, edit, delete, share, viewFiles, manageFiles]
namespace : [ view, edit, delete, share, createNamespace, createList, createCustomForm, createReport, createTemplate, createMosaicoTemplate, createCampaign]
2018-08-04 09:30:37 +00:00
sendConfiguration :
master :
name : Master
description : All permissions
permissions : [ viewPublic, viewPrivate, edit, delete, share, sendWithoutOverrides, sendWithAllowedOverrides, sendWithAnyOverrides]
list :
master :
name : Master
description : All permissions
2018-08-05 04:47:05 +00:00
permissions : [ view, edit, delete, share, viewFields, manageFields, viewSubscriptions, manageSubscriptions, viewSegments, manageSegments, viewImports, manageImports]
2018-08-04 09:30:37 +00:00
customForm :
master :
name : Master
description : All permissions
permissions : [ view, edit, delete, share]
campaign :
master :
name : Master
description : All permissions
2018-12-29 14:12:42 +00:00
permissions : [ view, edit, delete, share, viewFiles, manageFiles, viewAttachments, manageAttachments, viewTriggers, manageTriggers, send, viewStats, manageMessages, fetchRss]
rssTrigger :
name : RSS Campaign Trigger
description : Allows triggering a fetch of an RSS campaign
permissions : [ fetchRss]
2018-08-04 09:30:37 +00:00
template :
master :
name : Master
description : All permissions
permissions : [ view, edit, delete, share, viewFiles, manageFiles]
report :
master :
name : Master
description : All permissions
permissions : [ view, edit, delete, share, execute, viewContent, viewOutput]
reportTemplate :
master :
name : Master
description : All permissions
permissions : [ view, edit, delete, share, execute]
mosaicoTemplate :
master :
name : Master
description : All permissions
permissions : [ view, edit, delete, share, viewFiles, manageFiles]