C贸mo INSTALAR y CONFIGURAR LISTMONK. Tu propio sistema NEWSLETTER GRATIS y AUTOHOSPEADO en Docker 馃摟

 Listmonk  |  Newsletter  |  Self-Hosted

C贸mo Instalar y Configurar Listmonk: Tu Sistema de Newsletter Gratis y Autohospedado

Gestiona tus listas de correo, env铆a campa帽as profesionales y mant茅n el control total de tus datos con Docker.

 Tutorial en v铆deo

Antes de comenzar con la gu铆a escrita, te recomiendo ver este tutorial completo en v铆deo donde explico todo el proceso paso a paso:


 ¿Qu茅 es Listmonk?

Listmonk es un sistema de gesti贸n de newsletters y listas de correo autohospedado, gratuito y de c贸digo abierto. A diferencia de servicios comerciales como Mailchimp o Sendinblue, Listmonk te permite mantener el control total sobre tus datos de suscriptores y no tiene l铆mites de env铆os ni costes recurrentes.

Desarrollado en Go y con una interfaz moderna en Vue.js, Listmonk es extremadamente eficiente: puede enviar millones de correos con un consumo m铆nimo de recursos. Todo empaquetado en un 煤nico binario que se ejecuta en Docker con PostgreSQL como base de datos.

Ventaja clave: Sin l铆mites de suscriptores ni env铆os mensuales. Una vez instalado, es completamente gratis. Solo pagas por tu servidor SMTP (o usa Gmail gratis para vol煤menes bajos).

⚡ Caracter铆sticas principales

 Listas ilimitadas

Gestiona millones de suscriptores en m煤ltiples listas con opt-in simple o doble.

 Anal铆ticas integradas

Visualiza rendimiento de campa帽as, rebotes, clics y m谩s directamente en el panel.

 Editor visual

Crea templates con drag-and-drop, WYSIWYG, Markdown o HTML puro.

⚡ Alto rendimiento

Multi-thread con soporte multi-SMTP. Env铆a millones de correos con RAM m铆nima.

 API completa

API REST para integrar con tus aplicaciones y enviar correos transaccionales.

 Privacidad total

Control granular de privacidad, OIDC SSO, roles y permisos personalizables.

 Requisitos previos

Antes de comenzar, aseg煤rate de tener:

  • Docker y Docker Compose instalados en tu servidor
  • Al menos 1 GB de RAM disponible (recomendado 2 GB)
  • Un servidor SMTP configurado (Gmail, SendGrid, Amazon SES, etc.)
  • Puerto 9000 disponible (o el que prefieras configurar)
Nota sobre SMTP: Listmonk necesita un servidor SMTP para enviar correos. Puedes usar tu cuenta personal de Gmail para empezar (hasta 500 correos/d铆a). M谩s adelante te muestro c贸mo configurarlo.

 Instalaci贸n con Docker Compose

Paso 1: Crear el directorio del proyecto

mkdir ~/listmonk cd ~/listmonk

Paso 2: Descargar el docker-compose.yml oficial

Puedes usar el archivo oficial o el de mi repositorio personalizado:

# Opci贸n 1: Archivo oficial curl -LO https://github.com/knadh/listmonk/raw/master/docker-compose.yml # Opci贸n 2: Mi configuraci贸n personalizada curl -LO https://raw.githubusercontent.com/JLalib/docker-listmonk/main/docker-compose.yml

Paso 3: Revisar y ajustar el docker-compose.yml

Abre el archivo con tu editor favorito:

nano docker-compose.yml

Contenido b谩sico del compose:

version: '3.8' services: db: image: postgres:15-alpine container_name: listmonk-db environment: POSTGRES_USER: listmonk POSTGRES_PASSWORD: listmonk POSTGRES_DB: listmonk volumes: - ./data/postgres:/var/lib/postgresql/data restart: unless-stopped healthcheck: test: ["CMD-SHELL", "pg_isready -U listmonk"] interval: 10s timeout: 5s retries: 5 app: image: listmonk/listmonk:latest container_name: listmonk-app depends_on: db: condition: service_healthy ports: - "9000:9000" environment: TZ: Europe/Madrid volumes: - ./config.toml:/listmonk/config.toml - ./data/uploads:/listmonk/uploads restart: unless-stopped

Paso 4: Generar el archivo de configuraci贸n

Listmonk necesita un archivo config.toml con la configuraci贸n de la base de datos y SMTP:

# Generar config.toml de ejemplo docker run --rm -it listmonk/listmonk:latest --new-config > config.toml

Paso 5: Editar la configuraci贸n

nano config.toml

Configura los par谩metros importantes:

# Configuraci贸n de base de datos [db] host = "db" port = 5432 user = "listmonk" password = "listmonk" database = "listmonk" ssl_mode = "disable" # Configuraci贸n de la aplicaci贸n [app] address = "0.0.0.0:9000" admin_username = "admin" admin_password = "admin123" # C脕MBIALO despu茅s del primer login # Configuraci贸n SMTP (Gmail ejemplo) [[smtp]] enabled = true host = "smtp.gmail.com" port = 587 auth_protocol = "login" username = "tu-email@gmail.com" password = "tu-app-password" # Contrase帽a de aplicaci贸n de Google hello_hostname = "" max_conns = 10 idle_timeout = "15s" wait_timeout = "5s" max_msg_retries = 2 tls_enabled = true tls_skip_verify = false
⚠️ Importante: Si usas Gmail, NO uses tu contrase帽a normal. Necesitas crear una contrase帽a de aplicaci贸n desde la configuraci贸n de seguridad de tu cuenta Google.

Paso 6: Iniciar los contenedores

# Levantar los servicios en segundo plano docker compose up -d # Ver los logs para confirmar que todo arranc贸 bien docker compose logs -f app

Paso 7: Instalar la base de datos

La primera vez, necesitas ejecutar el instalador de la BD:

docker compose exec app ./listmonk --install

Confirma con y cuando te pregunte si quieres continuar.

Paso 8: Acceder a Listmonk

Abre tu navegador y ve a:

http://tu-ip-servidor:9000

Credenciales por defecto:

  • Usuario: admin
  • Contrase帽a: admin123 (o la que configuraste en config.toml)
Seguridad: Cambia la contrase帽a de administrador inmediatamente despu茅s del primer login desde Configuraci贸n → Usuarios.

 Configuraci贸n del servidor SMTP

Listmonk necesita un servidor SMTP para enviar correos. Estas son las opciones m谩s comunes:

Opci贸n 1: Gmail (gratis hasta 500 correos/d铆a)

Perfecto para empezar o newsletters peque帽as. Sigue esta gu铆a completa que prepar茅:

C贸mo configurar tu cuenta personal Gmail como servidor SMTP

Gu铆a paso a paso para usar Gmail en tus apps de homelab

Opci贸n 2: SendGrid (gratis hasta 100 correos/d铆a)

[[smtp]] enabled = true host = "smtp.sendgrid.net" port = 587 username = "apikey" password = "TU_SENDGRID_API_KEY" tls_enabled = true

Opci贸n 3: Amazon SES (muy econ贸mico para volumen alto)

[[smtp]] enabled = true host = "email-smtp.us-east-1.amazonaws.com" port = 587 username = "TU_SMTP_USERNAME" password = "TU_SMTP_PASSWORD" tls_enabled = true

Probar la configuraci贸n SMTP

Desde el panel de Listmonk:

  1. Ve a Configuraci贸n → SMTP
  2. Haz clic en Probar conexi贸n
  3. Introduce un correo de prueba y env铆a
  4. Verifica que el correo llega correctamente

 Primeros pasos con Listmonk

1. Crear tu primera lista

Ve a Listas → Nueva lista y configura:

  • Nombre: Newsletter principal
  • Tipo: P煤blica
  • Opt-in: Doble (recomendado para cumplir GDPR)
  • Descripci贸n: Breve descripci贸n de qu茅 recibir谩n los suscriptores

2. A帽adir suscriptores

Puedes a帽adirlos de varias formas:

  • Manualmente: Suscriptores → Nuevo suscriptor
  • Importar CSV: Suscriptores → Importar
  • Formulario p煤blico: Configuraci贸n → Formularios p煤blicos
  • API: Integra con tu web o aplicaci贸n

3. Crear un template

Ve a Campa帽as → Templates → Nuevo template:

  • Usa el editor visual drag-and-drop
  • O escribe HTML personalizado
  • Incluye variables como {{ .Subscriber.Name }}
  • A帽ade bot贸n de baja autom谩tico con {{ UnsubscribeURL }}

4. Enviar tu primera campa帽a

Ve a Campa帽as → Nueva campa帽a:

  1. Selecciona las listas destinatarias
  2. Escribe el asunto del correo
  3. Elige tu template
  4. Haz una vista previa y env铆a un correo de prueba
  5. Programa o env铆a inmediatamente

 Gesti贸n del contenedor

Ver logs en tiempo real

docker compose logs -f app

Reiniciar los servicios

docker compose restart

Detener Listmonk

docker compose down

Actualizar a la 煤ltima versi贸n

# Descargar la imagen actualizada docker compose pull # Recrear los contenedores docker compose up -d # Ejecutar migraciones de BD si es necesario docker compose exec app ./listmonk --upgrade

Backup de la base de datos

# Crear backup de PostgreSQL docker compose exec db pg_dump -U listmonk listmonk > listmonk-backup-$(date +%Y%m%d).sql # Tambi茅n respalda la carpeta de datos tar -czf listmonk-data-$(date +%Y%m%d).tar.gz ./data ./config.toml

Restaurar desde backup

# Detener los servicios docker compose down # Restaurar el dump SQL docker compose up -d db cat listmonk-backup-20260419.sql | docker compose exec -T db psql -U listmonk # Reiniciar todo docker compose up -d

✅ Mejores pr谩cticas

  • Usa doble opt-in: Protege tu reputaci贸n de dominio y cumple GDPR/CAN-SPAM.
  • Calienta tu dominio: Si usas un dominio nuevo, empieza con vol煤menes bajos y aumenta gradualmente.
  • Personaliza los correos: Usa variables como nombre del suscriptor para mejorar engagement.
  • Segmenta tus listas: Env铆a contenido relevante a cada grupo de suscriptores.
  • Monitoriza rebotes: Limpia regularmente direcciones con bounce para mantener buena reputaci贸n.
  • Backups regulares: Automatiza backups diarios de la base de datos y configuraci贸n.
  • Dominio personalizado: Usa un subdominio dedicado para newsletters (news.tudominio.com).
  • Autenticaci贸n SPF/DKIM: Configura registros DNS para mejorar deliverability.

 Soluci贸n de problemas comunes

Los correos no se env铆an

  • Verifica la configuraci贸n SMTP en config.toml
  • Comprueba que el puerto 587 o 465 est谩 abierto en el firewall
  • Revisa los logs: docker compose logs app
  • Prueba la conexi贸n SMTP desde el panel de Listmonk

Error de conexi贸n a la base de datos

# Verificar que PostgreSQL est谩 corriendo docker compose ps db # Ver logs de la base de datos docker compose logs db

Los correos van a spam

  • Configura registros SPF, DKIM y DMARC en tu DNS
  • Usa un dominio con buena reputaci贸n
  • Evita palabras spam en asuntos y contenido
  • Incluye siempre enlace de baja funcional
  • No compres listas de correos

La interfaz est谩 lenta

  • Aumenta la RAM disponible para el contenedor
  • Revisa el uso de CPU: docker stats
  • Optimiza la base de datos PostgreSQL
  • Considera usar un reverse proxy con cach茅

Comentarios

Entradas populares de este blog

NAS SYNOLOGY DSM 7.1 en VMware ESXI - Gu铆a instalaci贸n y configuraci贸n Synology DSM 7.1 en VMWARE

Comando "NET USE", uso, par谩metros y algunos ejemplos de uso

Multisesi贸n RDP en Windows 10 Pro