No estás usando esta distribución?

Selecciona una versión o distribución diferente

Keila es una herramienta de email marketing de código abierto que ofrece una alternativa sólida a plataformas como Mailchimp o Sendinblue. Diseñada para facilitar la creación, gestión y análisis de campañas de newsletters, Keila destaca por su enfoque en la privacidad, la personalización y la flexibilidad.

Características de Keila

  • 🧩 100% open source (AGPLv3) y autoalojable.
  • ✍️ Editor flexible de emails: visual, Markdown, texto plano y MJML.
  • 🔐 Privacidad respetada: sin rastreo invasivo, con opción de desactivarlo.
  • 🧠 Segmentación avanzada: por idioma, etiquetas o comportamiento.
  • 🧬 Personalización con Liquid: campos dinámicos en los correos.
  • 📝 Formularios personalizados: con doble opt-in y protección CAPTCHA.
  • 🔁 API REST y automatización: compatible con Zapier (beta).
  • 🇪🇺 Servidores en Europa si usas Keila Cloud.
  • 🖥️ Interfaz moderna, clara y fácil de usar.
  • 💸 Precios accesibles y descuentos para proyectos sin ánimo de lucro.

Pasos previos

Antes de comenzar con la instalación, asegúrate de cumplir con los siguientes requisitos:

  • 💻 Servidor con Ubuntu 24.04 como sistema operativo base.
  • 🔐 Acceso SSH al servidor.
  • 🧑‍💻 Permisos de superusuario (root) o capacidad para ejecutar comandos con sudo.
  • 🐳 Docker y Docker Compose instalados, ya que utilizaremos contenedores para desplegar la aplicación de forma rápida, aislada y reproducible.

Instalación de Docker

En caso de que Docker y Docker Compose no estén instalados en tu sistema, a continuación te mostramos cómo hacerlo de forma sencilla:

Instalación de Docker en Ubuntu 24.04
Docker es una aplicación que simplifica el proceso de gestión de los procesos de las aplicaciones en contenedores. Los contenedores le permiten ejecutar sus aplicaciones en procesos aislados de recursos.

Con el entorno listo y los requisitos cumplidos, puedes continuar con el proceso de instalación.

Preparación del entorno

Para instalar Keila correctamente, primero debemos completar los siguientes pasos.

Actualización del sistema

Como primer paso, vamos a asegurarnos de que todos los paquetes del sistema estén actualizados a su última versión:

apt update
apt upgrade -y

Creación del directorio

Para tener todo ordenado, crearemos un directorio donde se guardaran los datos y donde guardaremos el fichero del Docker Compose:

mkdir -p /opt/keila/ops
touch /opt/keila/.env
wget https://raw.githubusercontent.com/pentacent/keila/refs/heads/main/ops/docker-compose.yml -O /opt/keila/docker-compose.yml
wget https://github.com/pentacent/keila/blob/main/ops/Dockerfile -O /opt/keila/ops/Dockerfile

Editando fichero de configuración

A continuación, editamos el archivo /opt/keila/.env y reconfiguramos a nuestras necesidades

YOUR_SECRET_KEY_BASE= ""
YOUR_URL_HOST= ""
YOUR_MAILER_SMTP_HOST= ""
YOUR_MAILER_SMTP_USER= ""
YOUR_MAILER_SMTP_PASSWORD= ""
YOUR_MAILER_SMTP_FROM_EMAIL= ""
  • SECRET_KEY_BASE: Clave secreta utilizada para firmar cookies y tokens. Debe ser una cadena larga y aleatoria, única para cada instalación (puedes generarla con openssl rand -hex 64).
  • DB_URL: Cadena de conexión a la base de datos PostgreSQL, con el formato:
    postgres://usuario:contraseña@host:puerto/nombre_basedatos.
  • URL_HOST: Dominio o dirección IP donde se alojará Keila y desde donde se podrá acceder (ej. newsletter.tudominio.com o localhost).
  • MAILER_SMTP_HOST: Dirección del servidor SMTP que se usará para enviar los correos (por ejemplo, smtp.mailgun.org, smtp-relay.sendinblue.com, etc.).
  • MAILER_SMTP_USER: Nombre de usuario para autenticarte en el servidor SMTP. Normalmente es tu dirección de correo o una clave API.
  • MAILER_SMTP_PASSWORD: Contraseña o clave API asociada al usuario SMTP. Asegúrate de mantenerla segura.
  • MAILER_SMTP_FROM_EMAIL: LA cuenta de correo que enviará, tiene que ser igual que el nombre del usuario para la autentificación.
🚨
La variable de entorno MAILER_SMTP_FROM_EMAIL no está incluida por defecto en el docker-compose.yml ni en la configuración oficial de Keila. Sin embargo, es obligatoria para que la aplicación arranque correctamente, ya que define la dirección de correo que se utilizará como remitente en los emails enviados.

Levantamos contenedores

Listo, ya tenemos todo, así que toca levantar el contenedor:

docker-compose up -d

Configuración de Proxy Nginx

Como la aplicación se encuentra escuchando en un puerto local (localhost), necesitaremos configurar un proxy inverso con Nginx para poder acceder a ella mediante un dominio.

Para ello, puedes seguir este tutorial donde encontrarás todos los pasos detallados:

Configurar Proxy Inverso con Nginx para que escuche a un puerto interno
En ocasiones tenemos servicios o aplicaciones web que escuchan directamente a un puerto interno. Para evitar acceder a dicha aplicación o servicio por la IP del servidor, una configuración que podemos hacer es acceder desde un Nginx Proxy.
💡
Si has configurado el proxy Nginx utilizando solo HTTP, te recomendamos dar el siguiente paso y habilitar HTTPS para asegurar las conexiones. Si solo necesitas generar un certificado SSL, puedes seguir este tutorial donde se explica cómo hacerlo paso a paso: Instalación de certificado SSL con certbot

Primer contacto con la aplicación

Una vez que hemos levantado el contenedor con Docker Compose y configurado correctamente el dominio a través de Nginx Proxy, ya podemos acceder a la aplicación desde nuestro navegador utilizando el dominio o subdominio que hayamos definido.

La primera vez que accedamos a Keila, será necesario iniciar con un usuario y contraseñas generado automáticamente. Para ello, necesitaremos visualizar los logs del contenedor:

docker logs keila_keila_1

Esto mostrará algo similar a lo siguiente, incluyendo la URL que debemos visitar:

14:55:23.505 [warning] KEILA_USER not set. Creating root user with email: root@localhost
14:55:23.506 [warning] KEILA_PASSWORD not set. Setting random root user password: _3nLRwib00Nmmsy4JxHmJVUANoZ_e-UK
14:55:24.326 [info] Created root user with root@localhost
14:55:24.340 [info] Running KeilaWeb.Endpoint with cowboy 2.10.0 at 0.0.0.0:4000 (http)

Iniciamos sesión con los datos proporcionados en los logs:


Más sobre ./voidNull

Haz que cada palabra cuente: tu donación nos inspira a seguir creando contenido. Accede al apartado de Donación para hacer tu aportación