Cómo crear su propio boletín con Listmonk
Listmonk es una solución sencilla e integral de listas de correo y boletines autohospedados para Linux. A diferencia de los programas tradicionales de listas de correo, se destaca por proporcionar una plataforma ágil, liviana y rápida. Aquí le mostramos cómo instalar Listmonk usando Docker en Ubuntu y cómo comenzar a usarlo para enviar boletines.
Ventajas de utilizar Listmonk
Uno de los mayores puntos de venta de Listmonk es que puede funcionar con casi cualquier servidor de entrega de correo externo en Internet. Esto significa que puede enviar sus boletines con un proveedor de correo alojado como Gmail o su propia configuración de correo alojada propia .
Listmonk también viene con la capacidad de crear plantillas de correo electrónico programables. Esto permite crear correos electrónicos personalizados que pueden ajustarse según el contexto a través del cual el usuario recibe el mensaje.
Por último, Listmonk viene con un módulo de análisis intuitivo para que pueda realizar un seguimiento de cada boletín que se ejecuta dentro del programa. Puede realizar un seguimiento tanto de la cantidad de clics que recibe cada mensaje como de las vistas generales que logra una lista de correo completa en un período de tiempo.
Instalación de Listmonk
Obtención de Docker y Docker Compose
Supuesto: este artículo supone que está ejecutando Listmonk en un VPS siempre activo. Además, también se supone que ya tiene un nombre de dominio con un registro A y PTR apuntando a su VPS.
Para comenzar, recupere la clave del repositorio para los paquetes Docker y Docker Compose:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
Cree el nuevo archivo de repositorio para sus paquetes Docker y Docker Compose:
sudo nano /etc/apt/sources.list.d/docker.list
Escriba la siguiente línea de código dentro de su nuevo archivo de repositorio:
deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu jammy stable
Actualice y actualice todo su sistema Ubuntu ejecutando el siguiente comando:
sudo apt update && sudo apt upgrade
Instale Docker Engine junto con Docker Compose y sus dependencias de componentes:
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-buildx-plugin nginx git curl
Asegúrese de que su usuario actual tenga los permisos adecuados para acceder a los archivos binarios de Docker:
sudo usermod -aG docker ramces
Configuración e implementación de Listmonk
Cree una nueva carpeta para sus archivos Docker dentro del directorio de inicio de su usuario actual:
mkdir ~/listmonk && cd ~/listmonk
Cree un nuevo archivo de configuración para su instancia de Listmonk:
nano. /config.toml
Pegue el siguiente código dentro de su nuevo archivo de configuración:
[app]
address = "0.0.0.0:9000"
admin_username = "listmonk"
admin_password = "listmonk"
[db]
host = "listmonk_db"
port = 5432
user = "listmonk"
password = "INSERT_RANDOM_PASSWORD_HERE"
database = "listmonk"
ssl_mode = "disable"
max_open = 25
max_idle = 25
max_lifetime = "300s"
params = ""
Guarde su nuevo archivo de configuración, luego cree el docker-compose.yml de su instancia de Listmonk:
nano. /docker-compose.yml
Pega el siguiente bloque de código dentro de tu nuevo. archivo yml. Este es el archivo docker-compose.yml predeterminado para Listmonk que modifiqué para que funcione con mi zona horaria:
---
version: "3.7"
x-app-defaults:
restart: unless-stopped
image: listmonk/listmonk:latest
ports:
- 9000:9000
networks:
- listmonk
environment:
- TZ=Asia/Manila
x-db-defaults:
image: postgres:13
ports:
- 9432:5432
networks:
- listmonk
environment:
- POSTGRES_PASSWORD=INSERT_RANDOM_PASSWORD_HERE
- POSTGRES_USER=listmonk
- POSTGRES_DB=listmonk
restart: unless-stopped
healthcheck:
test:
- CMD-SHELL
- pg_isready -U listmonk
interval: 10s
timeout: 5s
retries: 6
services:
db:
image: postgres:13
ports:
- 9432:5432
networks:
- listmonk
environment:
- POSTGRES_PASSWORD=INSERT_RANDOM_PASSWORD_HERE
- POSTGRES_USER=listmonk
- POSTGRES_DB=listmonk
restart: unless-stopped
healthcheck:
test:
- CMD-SHELL
- pg_isready -U listmonk
interval: 10s
timeout: 5s
retries: 6
container_name: listmonk_db
volumes:
- type: volume
source: listmonk-data
target: /var/lib/postgresql/data
app:
restart: unless-stopped
image: listmonk/listmonk:latest
ports:
- 9000:9000
networks:
- listmonk
environment:
- TZ=Asia/Manila
container_name: listmonk_app
depends_on:
- db
volumes:
-. /config.toml:/listmonk/config.toml
networks:
listmonk: null
volumes:
listmonk-data: null
Implementación del contenedor Docker de Listmonk
Ejecute el siguiente comando de Docker para generar el archivo de base de datos de su instancia:
docker compose up db
Abra una nueva conexión SSH, luego inicie el proceso de compilación de Listmonk ejecutando el binario «listmonk» dentro de su contenedor Docker:
docker compose run --rm app. /listmonk --install
Escriba «Y» y luego presione Entercuando el script de compilación le solicite que borre los datos existentes en la base de datos en ejecución. Esto asegurará que su contenedor Listmonk esté limpio cuando se inicie.
Vuelva a la sesión SSH para la base de datos de su instancia y luego presione Ctrl+ Cpara finalizar la sesión correctamente.
Por último, reinicie todos los contenedores Docker para Listmonk con su configuración adecuada:
docker compose up -d app db
Creación de proxy inverso de Nginx
Aunque Listmonk ha comenzado a ejecutarse en una instancia de Docker, no es accesible públicamente hasta que haya configurado un proxy inverso para vincularlo. Siga las instrucciones a continuación para configurar un proxy inverso de Nginx.
Cree un nuevo archivo de configuración del sitio para su instancia de Listmonk:
sudo nano /etc/nginx/sites-available/listmonk
Pegue el siguiente bloque de código dentro del archivo de configuración de su nuevo sitio:
server {
server_name listmonk.myvpsserver.top;
location / {
proxy_pass http://127.0.0.1:9000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
}}
Vincula tu nuevo archivo de configuración desde /etc/nginx/sites-available a /etc/nginx/sites-enabled:
sudo ln -s /etc/nginx/sites-available/listmonk /etc/nginx/sites-enabled/
Reinicie el demonio de su servidor Nginx ejecutando el siguiente comando:
sudo systemctl reload nginx
Instalación del certificado SSL
Una vez que haya configurado el proxy inverso, su sitio será accesible públicamente. Sin embargo, no es seguro ya que no existe un certificado SSL. Así, el siguiente paso es instalar el certificado SSL.
Asegúrese de que el demonio Core Snap se esté ejecutando en su sistema:
sudo snap install core
Instale el paquete certbot snap de Electronic Frontier Foundation (EFF). Esta utilidad le permitirá solicitar un certificado SSL que su servidor puede utilizar para cifrar conexiones entre hosts.
sudo snap install certbot --classic
Pruebe si su paquete certbot se está ejecutando correctamente registrándolo en la EFF:
sudo certbot register --agree-tos -m you@your-email.invalid
Obtenga un nuevo certificado SSL para su instalación de Listmonk ejecutando el siguiente comando:
sudo certbot --nginx -d listmonk.myvpsserver.top
Acceso y configuración de Listmonk
Abra un navegador web, luego navegue hasta la dirección de su instancia de Listmonk. Esto abrirá una página web simple con un botón de inicio de sesión.
Haga clic en el botón «Iniciar sesión», luego escriba «listmonk» en los campos Nombre de usuario y Contraseña.
Al hacerlo, se cargará el panel principal de su instancia de Listmonk. Haga clic en la opción «Configuración» en la barra lateral izquierda de la página.
Reemplace el valor del cuadro de texto «URL raíz» con la dirección completa de su instancia de Listmonk.
Haga clic en «Guardar» en la esquina superior derecha de la página para guardar la nueva configuración.
Vincular una cuenta de Gmail a Listmonk
Inicie sesión en su cuenta de Gmail, luego haga clic en el ícono de usuario en la esquina superior derecha de la página.
Haga clic en «Administrar su cuenta de Google».
Haga clic en la categoría «Seguridad» en la barra lateral izquierda de la página. Seleccione la opción «Verificación en 2 pasos» dentro de la subpágina Seguridad.
Desplácese hasta el final de la página, luego haga clic en el botón «Contraseñas de aplicaciones».
Aparecerá un mensaje que le pedirá el nombre de la aplicación que desea vincular. Escriba «listmonk» y luego haga clic en «Crear».
Luego, en la página aparecerá una pequeña ventana con 16 caracteres aleatorios agrupados en cuatro. Copie esto en un archivo de texto y luego haga clic en «Listo».
Regrese a la página del panel de Listmonk y luego haga clic en la opción «Configuración» en la barra lateral izquierda de la página.
Seleccione la pestaña “SMTP” en la barra superior de la página. Haga clic en el enlace «Gmail» debajo del cuadro desplegable «Protocolo de autenticación».
Escriba la dirección de correo electrónico completa de su cuenta de Gmail en el campo «Nombre de usuario».
Haga clic en el campo «Contraseña», luego escriba la cadena de 16 letras que copió del sitio web de Gmail sin espacios.
Haga clic en «Guardar» para aplicar su nueva configuración SMTP.
Por último, vaya a la pestaña General y luego reemplace el valor del cuadro de texto «Dirección ‘de’ predeterminada» con la dirección de su cuenta de Gmail.
Creando un nuevo boletín de Listmonk
Vaya a la página del Panel de control de Listmonk, haga clic en la categoría «Listas» y luego haga clic en la opción «Todas las listas».
Seleccione el botón «Nuevo» en la esquina superior derecha de la página.
Complete los detalles de su nueva lista de correo y luego haga clic en «Guardar».
Eso es todo. Ha completado la instalación de Listmonk.
Alojamiento de su propio boletín es sólo una parte de la creación de su propia plataforma digital. Descubra cómo puede ampliar esto alojando un blog en Linux usando Ghost y ejecutando su propio tablero Kanban web con Kanboard .
Crédito de la imagen: Boletín informativo, escrito en una vieja máquina de escribir por 123RF. Todas las modificaciones y capturas de pantalla realizadas por Ramces Red.
Deja una respuesta