Install Mailtrain on Uberspace.de

This tutorial explains how to install Mailtrain on a Uberspace 7. Mailtrain is a self-hosted open-source (released under the GPL v3.0.) newsletter app built on top of Nodemailer. I am following the manual installation guide from the official Mailtrain repo and add some additional Uberspace infos. I contributed this guide to the Uberlab and earned my first Ubercup.

Installation

This guide uses Node.js version 12, which is the default on Uberspace 7 at at the moment.

Clone the GitHub repository:

[isabell@stardust ~]$ git clone git://github.com/Mailtrain-org/mailtrain.git
[isabell@stardust ~]$

Install the required dependencies:

[isabell@stardust ~]$ cd mailtrain
[isabell@stardust mailtrain]$ npm install --production
[isabell@stardust mailtrain]$

Configuration

Database Setup

Create a new database:

[isabell@stardust mailtrain]$ mysql -e "CREATE DATABASE ${USER}_mailtrain;"
[isabell@stardust mailtrain]$

Mailtrain Config

Copy the example config file:

[isabell@stardust mailtrain]$ cp config/default.toml config/production.toml
[isabell@stardust mailtrain]$

Update production.toml with your MySQL settings; look for the [mysql] block:

...

[mysql]
host="localhost"
user="isabell"
password="MySuperSecretPassword"
database="isabell_mailtrain"

...

Web Backend Config

Mailtrain is running on port 3000. Configure the server to respond to port 3000 using web backends:

[isabell@stardust ~]$ uberspace web backend set / --http --port 3000
[isabell@stardust ~]$

Supervisord Daemon Setup

Create ~/etc/services.d/mailtrain.ini with the following content:

[program:mailtrain]
directory=%(ENV_HOME)s/mailtrain/
command=env NODE_ENV=production /bin/node index.js
autostart=yes
autorestart=yes

If it's not in state RUNNING, check your configuration.

Login and Change Admin Credentials

{% include bootstrap/alert.html content=“Change the default admin credentials to prevent unauthorized access of your data!” style=“danger” %}

Your Mailtrain installation should now be reachable on https://isabell.uber.space. Log in with the username admin and the password test.

Go to https://isabell.uber.space/users/account and change your email address as well as your password.

{% include bootstrap/alert.html content=“It is not possible to change the username in the GUI. If you want to change the default username admin to something else or add additional users, you have to do it directly in the database.” style=“info” %}

Finishing installation

Go to https://isabell.uber.space/settings. In the General Settings section change the Service Address (URL) to https://isabell.uber.space/.

In the Mailer Settings section change the

  • Hostname,
  • Port,
  • Encryption,
  • username,
  • password, and
  • test your settings by pressing the Button Check Mailer Config.

{% include bootstrap/alert.html content=“Uberspace does not allow mass mailings from their servers according to their House Rules. However, you can use Mailtrain as the admin interface for your mailing needs. Use the SMTP services from AWS SES, Sendgrid, Mailgun, etc. for the actual mailing.” style=“warning” %}

Best Practices


Tested on Uberspace v7.7.0 with NodeJS v12 and MariaDB 10.3.23.