JavaScript HTML CSS Shell SQLPL
Latest commit 3c36d29 Jan 9, 2018 @andris9 andris9 updated install script
Failed to load latest commit information.
config Add support for passport-ldapauth Nov 8, 2017
docs Moving the majority of the documentation from the README file to the … Sep 27, 2017
languages Added spanish es_ES translations Jun 23, 2017
lib Merge pull request #349 from zermelo-software/passport-ldapauth Jan 9, 2018
protected/reports Halfway through in refactoring the report generation to a separate pr… Apr 17, 2017
public Fixed/reverted Mosaico social icons Jun 20, 2017
routes Changed route Jan 9, 2018
services Support multiple usage of RSS merge tags, closes #329 Sep 29, 2017
setup updated install script Jan 9, 2018
tasks initial translations support Mar 4, 2017
test Disable eslint rule no-await-in-loop for e2e tests Jun 15, 2017
views Merge pull request #344 from brentdur/brentdur/247_template-duplicate Nov 15, 2017
workers/reports Additions to the install scripts Apr 27, 2017
.dockerignore Add node_modules to .dockerignore to avoid unneeded building time / o… Jun 24, 2017
.eslintrc Updated translation support Mar 7, 2017
.gitignore add package-lock.json file to gitignore Sep 20, 2017
.travis.yml Fixed Travis CI Checks Jul 13, 2017 v1.14.0 Jul 9, 2016 v1.23.2 Apr 4, 2017
Dockerfile Bumping the dockerfile baseimage from node 8.1 to 8.6 Sep 27, 2017
Gruntfile.js Satisfy eslint rule linebreak-style Jun 22, 2017
LICENSE v1.22.0 Mar 2, 2017 * Undoing my change of swapping out the mailtrain title with the logo… Sep 27, 2017
app.js Half way in improving e2e test infrastructure and refactoring tests t… May 23, 2017
docker-compose.override.yml.tmpl Make docker-compose.override.yml a template Jun 24, 2017
docker-compose.yml Add volume for reports Jun 24, 2017 Use production.toml for reports when it exists in config Jun 24, 2017
index.js Report processor worker refactored to run under another user (nobody)… Apr 27, 2017
meta.json Merge with upstream May 27, 2017
package.json Bump deps Sep 26, 2017


Mailtrain is a self hosted newsletter application built on Node.js (v7+) and MySQL (v5.5+ or MariaDB).


  • Subscriber list management
  • List segmentation
  • Custom fields
  • Email templates
  • Large CSV list import files

Subscribe to Mailtrain Newsletter here (uses Mailtrain obviously)

Hardware Requirements

  • 1 vCPU
  • 1024 MB RAM

Quick Start - Deploy with Docker



Depending on how you have configured your system and Docker you may need to prepend the commands below with sudo.

  • Download Mailtrain files using git: git clone git:// (or download zipped repo) and open Mailtrain folder cd mailtrain
  • Copy the file docker-compose.override.yml.tmpl to docker-compose.override.yml and modify it if you need to.
  • Bring up the stack with: docker-compose up -d
  • Open http://localhost:3000/ (change the host name localhost to the name of the host where you are deploying the system).
  • Authenticate as user admin with password test
  • Navigate to http://localhost:3000/settings and update service configuration.
  • Navigate to http://localhost:3000/users/account and update user information and password.

Quick Start - Manual Install (any OS that supports Node.js)


  • Mailtrain requires at least Node.js v7. If you want to use an older version of Node.js then you should use version v1.24 of Mailtrain. You can either download it here or if using git then run git checkout v1.24.0 before starting it
  1. Download Mailtrain files using git: git clone git:// (or download zipped repo) and open Mailtrain folder cd mailtrain
  2. Run npm install --production in the Mailtrain folder to install required dependencies
  3. Copy config/default.toml as config/production.toml and update MySQL and any other settings in it
  4. Run the server NODE_ENV=production npm start
  5. Open http://localhost:3000/
  6. Authenticate as admin:test
  7. Navigate to http://localhost:3000/settings and update service configuration
  8. Navigate to http://localhost:3000/users/account and update user information and password

Read The Docs

For more information, please read the docs.


  • Versions 1.22.0 and up GPL-V3.0
  • Versions 1.21.0 and up: EUPL-1.1
  • Versions 1.19.0 and up: MIT
  • Up to versions 1.18.0 GPL-V3.0