Instalación de Software · 7 min read · Sep 30, 2025
Cómo instalar el software de boletines Mailtrain en Ubuntu 18.04

Mailtrain es una aplicación de boletines gratuita, de código abierto y autohospedada construida con Node.js que admite bases de datos MySQL/MariaDB. Mailtrain te permite agregar suscriptores manualmente, a través de la API o importar desde un archivo CSV. Mailtrain viene con un rico conjunto de características que incluyen, editores de plantillas, automatización, campos personalizados, campañas RSS, editor de código HTML y mucho más. Si tienes una larga lista de suscriptores y deseas gestionarla fácilmente, entonces Mailtrain es la mejor opción para ti.
En este tutorial, te mostraremos cómo instalar la aplicación de boletines Mailtrain con Docker en un servidor Ubuntu 18.04.
Requisitos
- Un servidor que ejecute Ubuntu 18.04.
- Un nombre de dominio válido apuntado a la IP de tu servidor.
- Una contraseña de root configurada en tu servidor.
Comenzando
Antes de comenzar, necesitarás actualizar tu sistema con la última versión. Puedes hacer esto ejecutando el siguiente comando:
apt-get update -y
apt-get upgrade -yA continuación, reinicia tu sistema para aplicar los cambios.
Instalar Docker y Docker Compose
Por defecto, la última versión de Docker no está disponible en el repositorio predeterminado de Ubuntu 18.04. Por lo tanto, necesitarás agregar el repositorio de Docker a tu sistema.
Primero, instala los paquetes requeridos con el siguiente comando:
apt-get install curl git apt-transport-https ca-certificates -yA continuación, descarga y agrega la clave PGP de Docker con el siguiente comando:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -A continuación, agrega el repositorio de Docker CE editando el archivo /etc/apt/sources.list:
nano /etc/apt/sources.listAgrega la siguiente línea al final del archivo:
deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stableGuarda y cierra el archivo cuando hayas terminado. Luego, actualiza el repositorio e instala Docker CE con los siguientes comandos:
apt-get update -y
apt-get install docker-ce -yUna vez que la instalación se haya completado con éxito, puedes verificar el estado del servicio Docker con el siguiente comando:
systemctl status dockerDeberías ver la siguiente salida:
Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2019-10-24 16:15:25 UTC; 21min ago
Docs: https://docs.docker.com
Main PID: 1402 (dockerd)
Tasks: 45
CGroup: /system.slice/docker.service
?? 1402 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
??10312 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 3000 -container-ip 172.18.0.4 -container-port 3000
Oct 24 16:23:04 ubuntu1804 dockerd[1402]: time="2019-10-24T16:23:04.817021656Z" level=info msg="Layer sha256:b875b006eb8ffb0434ce3a26cb04c9017c
Oct 24 16:24:09 ubuntu1804 dockerd[1402]: time="2019-10-24T16:24:09.879265134Z" level=info msg="ignoring event" module=libcontainerd namespace=
Oct 24 16:24:10 ubuntu1804 dockerd[1402]: time="2019-10-24T16:24:10.065610315Z" level=warning msg="20676b10252b4a484e32a7d7534b3b386cc2a1e5efd1
Oct 24 16:25:52 ubuntu1804 dockerd[1402]: time="2019-10-24T16:25:52.649551513Z" level=info msg="Layer sha256:903ab9000f0a93e49537d5d00c5c8a8cab
Oct 24 16:26:47 ubuntu1804 dockerd[1402]: time="2019-10-24T16:26:47.428865652Z" level=info msg="Layer sha256:903ab9000f0a93e49537d5d00c5c8a8cab
Oct 24 16:27:41 ubuntu1804 dockerd[1402]: time="2019-10-24T16:27:41.603287585Z" level=info msg="Layer sha256:903ab9000f0a93e49537d5d00c5c8a8cabA continuación, instala la última versión de docker compose con el comando pip como se muestra a continuación:
apt-get install python-pip
apt-get install docker-composeUna vez que la instalación se haya completado, puedes proceder al siguiente paso.
Instalar Mailtrain con Docker
Primero, descarga la última versión de Mailtrain desde el repositorio de Git con el siguiente comando:
git clone git://github.com/Mailtrain-org/mailtrain.gitA continuación, cambia el directorio a mailtrain y renombra el archivo docker-compose por defecto:
cd mailtrain
mv docker-compose.override.yml.tmpl docker-compose.override.ymlA continuación, inicia los contenedores de Docker de Mailtrain con el siguiente comando:
docker-compose up -dEste comando descargará e iniciará los contenedores de mailtrain, mysql y redis como se muestra a continuación:
Creating network "mailtrain_default" with the default driver
Creating volume "mailtrain_mailtrain-node-config" with default driver
Creating volume "mailtrain_mailtrain-node-data" with default driver
Creating volume "mailtrain_mailtrain-redis-data" with default driver
Creating volume "mailtrain_mailtrain-node-reports" with default driver
Creating volume "mailtrain_mailtrain-mysq-data" with default driver
Pulling redis (redis:3.0)...
3.0: Pulling from library/redis
f5cc0ee7a6f6: Pull complete
5fc25ed18e87: Pull complete
e025bc8872f6: Pull complete
77c68b51b836: Pull complete
7c403ece3755: Pull complete
0a653bd338f4: Pull complete
31531fd948c6: Pull complete
Digest: sha256:730b765df9fe96af414da64a2b67f3a5f70b8fd13a31e5096fee4807ed802e20
Status: Downloaded newer image for redis:3.0
Pulling mysql (mysql:5.7)...
5.7: Pulling from library/mysql
80369df48736: Pull complete
e8f52315cb10: Pull complete
cf2189b391fc: Pull complete
cc98f645c682: Pull complete
27a27ac83f74: Pull complete
fa1f04453414: Pull complete
d45bf7d22d33: Pull complete
c7d49ffebc56: Pull complete
511a8052b204: Pull complete
5d5df4c12444: Pull complete
d482603a2922: Pull complete
Digest: sha256:44b33224e3c406bf50b5a2ee4286ed0d7f2c5aec1f7fdb70291f7f7c570284dd
Status: Downloaded newer image for mysql:5.7
Building mailtrain
:
:
Removing intermediate container 20676b10252b
---> 0abdb4121f54
Step 6/9 : COPY . /app
---> c8af7560e844
Step 7/9 : EXPOSE 3000
---> Running in 3ff55179a229
Removing intermediate container 3ff55179a229
---> d83b49d4b24b
Step 8/9 : ENTRYPOINT ["bash", "/app/docker-entrypoint.sh"]
---> Running in e5baf6a1ea2e
Removing intermediate container e5baf6a1ea2e
---> c4f899a0f8f9
Step 9/9 : CMD ["node", "index.js"]
---> Running in fe94519d2bd3
Removing intermediate container fe94519d2bd3
---> 2808c2972f20
Successfully built 2808c2972f20
Successfully tagged mailtrain:latest
WARNING: Image for service mailtrain was built because it did not already exist. To rebuild this image you must use `docker-compose build` or `docker-compose up --build`.
Creating mailtrain_redis_1 ... done
Creating mailtrain_mysql_1 ... done
Creating mailtrain_mailtrain_1 ... doneAhora puedes verificar todos los contenedores en ejecución con el siguiente comando:
docker psDeberías ver la siguiente salida:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0e837c586c39 mailtrain:latest "bash /app/docker-en…" About a minute ago Up 55 seconds 0.0.0.0:3000->3000/tcp mailtrain_mailtrain_1
49a4e69a09c6 mysql:5.7 "docker-entrypoint.s…" About a minute ago Up About a minute 3306/tcp, 33060/tcp mailtrain_mysql_1
a1449b64a196 redis:3.0 "docker-entrypoint.s…" About a minute ago Up About a minute 6379/tcp mailtrain_redis_1Acceder a la interfaz web de Mailtrain
El contenedor de Mailtrain ahora está iniciado y escuchando en el puerto 3000. A continuación, abre tu navegador web y escribe la URL http://tu-ip-del-servidor:3000. Deberías ver el panel de control predeterminado de Mailtrain en la siguiente página:

Ahora, haz clic en el botón Iniciar sesión. Deberías ver la siguiente página:

Proporciona el nombre de usuario y la contraseña predeterminados como admin/admin y haz clic en el botón Iniciar sesión. Deberías ver el panel de control predeterminado de Mailtrain en la siguiente página:

Configurar Nginx como un proxy inverso para Mailtrain
A continuación, necesitarás crear un Nginx como un proxy inverso para Mailtrain en el puerto 3000. Para hacerlo, primero instala el servidor web Nginx ejecutando el siguiente comando:
apt-get install nginx -yA continuación, crea un archivo de configuración de host virtual de Nginx con el siguiente comando:
nano /etc/nginx/sites-available/mailtrain.confAgrega las siguientes líneas:
upstream mailtrain {
server 127.0.0.1:3000 weight=100 max_fails=5 fail_timeout=5;
}
server {
listen 80;
server_name example.com;
location / {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://mailtrain/;
}
}Guarda y cierra el archivo cuando hayas terminado. Luego, verifica Nginx en busca de errores de sintaxis con el siguiente comando:
nginx -tDeberías ver la siguiente salida:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successfulA continuación, habilita el archivo de host virtual de Nginx con el siguiente comando:
ln -s /etc/nginx/sites-available/mailtrain.conf /etc/nginx/sites-enabled/Finalmente, reinicia el servidor web Nginx para aplicar la configuración:
systemctl restart nginxAsegurar Mailtrain con Let’s Encrypt
A continuación, necesitarás instalar el cliente Certbot para asegurar Mailtrain con el SSL gratuito de Let’s Encrypt. Por defecto, la última versión de Certbot no está disponible en el repositorio predeterminado de Ubuntu 18.04. Así que agrega el repositorio de Certbot ejecutando el siguiente comando:
add-apt-repository ppa:certbot/certbotA continuación, actualiza el repositorio e instala Certbot con el siguiente comando:
apt-get update -y
apt-get install certbot python-certbot-nginx -yUna vez instalado, ejecuta el siguiente comando para descargar el SSL gratuito de Let’s Encrypt para tu dominio example.com y configurar Nginx para usar este certificado.
certbot --nginx -d example.comProporciona tu dirección de correo electrónico y acepta los Términos de Servicio. Una vez que el certificado se haya instalado con éxito, deberías ver la siguiente salida:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
¡Felicidades! Has habilitado con éxito https://example.com
Deberías probar tu configuración en:
https://www.ssllabs.com/ssltest/analyze.html?d=example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NOTAS IMPORTANTES:
- ¡Felicidades! Tu certificado y cadena se han guardado en:
/etc/letsencrypt/live/example.com/fullchain.pem
Tu archivo de clave se ha guardado en:
/etc/letsencrypt/live/example.com/privkey.pem
Tu certificado expirará el 2020-01-22. Para obtener una nueva versión o ajustada
de este certificado en el futuro, simplemente ejecuta certbot nuevamente
con la opción "certonly". Para renovar *todas* tus
certificaciones de forma no interactiva, ejecuta "certbot renew"
- Tus credenciales de cuenta se han guardado en tu Certbot
directorio de configuración en /etc/letsencrypt. Deberías hacer una
copia de seguridad segura de esta carpeta ahora. Este directorio de configuración también contendrá certificados y claves privadas obtenidas por Certbot, por lo que
hacer copias de seguridad regulares de esta carpeta es ideal.
- Si te gusta Certbot, considera apoyar nuestro trabajo:
Donando a ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donando a EFF: https://eff.org/donate-leAhora puedes acceder a tu aplicación Mailtrain de forma segura utilizando la URL https://example.com.
Conclusión
En el tutorial anterior, aprendimos cómo instalar Mailtrain con Docker en un servidor Ubuntu 18.04. También aprendimos cómo configurar Nginx como un proxy inverso para Mailtrain y asegurar Mailtrain con el SSL gratuito de Let’s Encrypt. No dudes en preguntarme si tienes alguna pregunta.
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.