Install Mailtrain on Uberspace 7

2020-07-19 Updated: 2020-07-21 Tutorials

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

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.

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.

Best Practices

  • Test the configuration by creating a new list and subscribing yourself to it.
  • Craft your campaign with love and dedication.
  • Don’t spam users that don’t want your newsletter.

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

English Self-Hosted Software

Related Posts