Scaleway Documentationtutorials
mailtrain ubuntu bionic

Jump toUpdate content

Installing Mailtrain on Ubuntu Bionic

Reviewed on 10 May 2021Published on 09 November 2018
  • compute
  • mail
  • newsletter
  • mailtrain

Mailtrain is a self hosted open-source newsletter application built in Node.js and using MariaDB as datastore.

Requirements:

Preparing the Server

  1. Connect yourself to your server via SSH.

  2. Install sudo on the server, if it is not yet installed:

    apt install sudo
  3. Create a regular user account with sudo access and switch into it. Replace my_new_user with your user name.

    adduser my_new_user --gecos "My New User"usermod -aG sudo my_new_usersu - my_new_user
  4. Update the already installed software on the system to the latest version:

    sudo apt update && sudo apt upgrade -y
  5. Install the required tools:

    sudo apt install -y build-essential unzip
  6. Install Node.js and NPM:

    curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -sudo apt install -y nodejs

Installing Postfix

To send Mail from your server, a SMTP server is required.

  1. Install Postfix via apt:

    sudo apt install -y postfix
  2. When asked choose Internet Site in the list of options:

  3. Enter the mail name for your instance and confirm. The mail name should be a fully qualified domain name (FQDN) resolving to your instances IP address:

Installing MariaDB

  1. Install MariaDB, an open source MySQL fork:

    sudo apt install -y mariadb-server
  2. Initialize the MariaDB server:

    sudo mysql_secure_installation
  3. Connect to the database server as root user with the password you have set previously:

    sudo mysql -u root -p
  4. Create an empty database and remember the credentials for later:

    CREATE DATABASE mailtraindb;GRANT ALL ON mailtraindb.* TO 'mailtrain' IDENTIFIED BY 'password';FLUSH PRIVILEGES;EXIT;

Installing Nginx

  1. Install nginx via apt:

    sudo apt install -y nginx
  2. Create a configuration file for nginx:

    sudo nano /etc/nginx/sites-available/mailtrain.example.com.conf

    and put the following content into it:

      server {
          listen [::]:80;      listen 80;
          server_name mailtrain.example.com;
          charset utf-8;      client_max_body_size 50M;      location / {          proxy_set_header Host $http_host;          proxy_set_header X-Real-IP $remote_addr;          proxy_pass http://127.0.0.1:3000;          proxy_http_version 1.1;          proxy_set_header Upgrade $http_upgrade;          proxy_set_header Connection "upgrade";          proxy_next_upstream error timeout http_502 http_503 http_504;      }
      }
  3. Activate the configuration by linking the file in the sites-enabled directory:

    sudo ln -s /etc/nginx/sites-available/mailtrain.example.com.conf /etc/nginx/sites-enabled/
  4. Reload the nginx configuration to enable the new virtual host:

    sudo systemctl reload nginx.service
Important:

Remember to replace mailtrain.example.com with the domain name you want to use for your Mailtrain installation. Optionally, you can encrypt the HTTP traffic by using a free SSL certificate from Let’s Encrypt.

Installing Mailtrain

  1. Create an empty directory for the Mailtrain application:

    sudo mkdir -p /var/www/mailtrain
  2. Change the ownership of the directory to your user:

    sudo chown -R my_new_user:my_new_user /var/www/mailtrain
  3. Enter the directory:

    cd /var/www/mailtrain
  4. Download and unzip Mailtrain:

    wget https://github.com/Mailtrain-org/mailtrain/archive/master.zipunzip master.ziprm master.zipmv mailtrain-master/* . && mv mailtrain-master/.* .rmdir mailtrain-master
  5. Install the required dependencies:

    npm install --production
  6. Copy the file config/default.toml as config/production.toml:

    cp config/default.toml config/production.toml
  7. Open the newly created file and edit the settings for the MariaDB database, then save it:

    nano config/production.toml
  8. Run the server:

    NODE_ENV=production npm start

Accessing the Mailtrain Webinterface

  1. Open your web browser and type the domain name of your Mailtrain instance.

  2. Click Login in the top bar to connect to Mailtrain.

  3. Login with the username admin and password test. Don’t forget to change the password after your first login.

  4. To send mails from Mailtrain, you have to specify the SMTP server configuration like following:

You have now specify other parameters like your company name, service URL etc. before starting your first e-marketing campaign. For more information how to plan your campaigns, refer to the official documentation.