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
- 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.