>_ DevTrendses

Idioma

Inicio

Lenguajes

Secciones

Frontend Backend Móvil DevOps AI / ML GameDev Blockchain Embebidos Seguridad
Python

Cómo configurar tu propio servidor de correo con Docker sin volverte loco

Mailu

Todo administrador de sistemas o desarrollador ha intentado configurar su propio servidor de correo desde cero al menos una vez en su vida. Por lo general, esta experiencia deja profundas cicatrices emocionales. Instalas Postfix, conectas Dovecot, configuras MySQL para almacenar usuarios, luego luchas con SpamAssassin, configuras OpenDKIM, generas certificados y te rompes la cabeza con SPF y DMARC. Después de una semana de sufrimiento, los correos siguen llegando a spam en Gmail y las configuraciones se convierten en un desastre ilegible.

Cuando necesité configurar el correo para un par de proyectos personales y el dominio de un pequeño equipo, no quería armar un Frankenstein manualmente. Pagar de más por suscripciones corporativas de Google Workspace o Yandex 360 tampoco estaba en los planes. Así fue como descubrí Mailu — un proyecto que empaquetó todo el conjunto de caballeros del servidor de correo en prácticos contenedores Docker.

Qué es Mailu

Mailu se posiciona como una distribución de correo aislada basada en Docker. El proyecto existe desde 2016, ha recopilado casi 7.500 estrellas en GitHub y se mantiene activamente.

La idea principal es simple: proporcionar un servidor listo para usar que se despliega en diez minutos mediante docker-compose, pero sin arrastrar bloat innecesario. A diferencia de soluciones completas y pesadas como Zimbra o Nextcloud, Mailu hace exactamente una cosa: recibir, filtrar y enviar correo de manera confiable. No hay código propietario, rastreadores ni funciones pagas ocultas en su interior. Todos los componentes son abiertos y distribuidos bajo una licencia gratuita.

Domains

Qué hay bajo el capó

La arquitectura del proyecto es modular. En lugar de un enorme contenedor, Mailu se divide en una docena de microservicios, cada uno responsable de su propia área:

  • Nginx como frontend que maneja el tráfico web y redirige los puertos de correo
  • Dovecot para soporte de protocolos IMAP y POP3
  • Postfix como servidor SMTP
  • Rspamd para protección contra spam, aprendizaje automático y verificación de reputación
  • ClamAV para escanear archivos adjuntos entrantes en busca de virus
  • Un panel de control construido con Python y Flask
  • varios clientes web para elegir, incluyendo Roundcube y Snappymail

Todos estos contenedores se comunican a través de la red interna de Docker, y los datos (correos, bases de datos de usuarios, claves) se almacenan en volúmenes montados.

Características principales

Seguridad y entregabilidad sin trabajo manual tedioso

En el correo, lo más difícil no es recibir un mensaje — es enviarlo para que los servicios de correo del destinatario no lo envíen a spam. Mailu maneja la configuración de seguridad por ti:

  • Emite y renueva automáticamente certificados TLS gratuitos a través de Let's Encrypt
  • Genera claves DKIM directamente en el panel de administración y sugiere registros TXT correctos para DNS
  • Es compatible con protocolos modernos de protección de entrega, incluyendo DANE y MTA-STS
  • Protege la interfaz web con Snuffleupagus (un parche de seguridad para PHP)

Panel de administración conveniente y soporte multidominio

A través de la interfaz web, el administrador crea dominios, configura buzones, configura alias y direcciones temporales. Un detalle interesante: puedes delegar la administración de un dominio específico a otra persona. Por ejemplo, tú alojas el servidor pero entregas la gestión de buzones al gerente propio del cliente.

Aquí también puedes establecer cuotas de espacio en disco para cada usuario, anuncios globales y reglas de reenvío.

Clientes web listos para usar y autoconfiguración

Los usuarios no necesariamente necesitan instalar clientes de correo en su teléfono o computadora. El paquete incluye el clásico Roundcube y el ligero Snappymail.

Si alguien prefiere Thunderbird, Apple Mail u Outlook, el servidor proporciona perfiles de autoconfiguración estándar. El usuario solo necesita ingresar su usuario y contraseña, y el cliente automáticamente obtendrá los puertos y protocolos de cifrado correctos.

Filtros inteligentes y recolección de correo

Mailu es compatible con ManageSieve. Esto significa que los usuarios pueden configurar reglas de ordenamiento, respuestas automáticas de ausencia y reenvío de correo directamente desde el cliente web. También hay un fetchmail integrado que recolecta correo de cuentas externas de terceros y lo deposita en tu cuenta local.

Cómo lanzar

Los desarrolladores crearon un excelente generador de configuración web en el sitio web oficial setup.mailu.io. Simplemente marcas los componentes necesarios (qué cliente web instalar, si necesitas antivirus, qué base de datos), especificas el nombre de dominio del servidor y obtienes un archivo listo con dos archivos: mailu.env y docker-compose.yml.

Después de eso, el lanzamiento se reduce a tres comandos en la terminal:

# Переходим в директорию с конфигами
cd /mailu

# Скачиваем образы и запускаем сервисы в фоне
docker compose up -d

# Создаем первого администратора
docker compose exec admin flask mailu admin admin example.com 'ВашСложныйПароль'

Luego solo necesitas ir al panel de control, agregar registros DNS en tu registrador (MX, SPF, DKIM, DMARC), y el servidor está listo para operación completa.

Trampas

Por muy conveniente que sea el software, no cancela la física de los protocolos de correo. Antes de desplegar, ten en cuenta un par de cosas:

  1. Consumo de RAM. Si habilitas ClamAV, el servidor necesita al menos 3-4 GB de RAM. Las bases de datos del antivirus son pesadas. Si tienes un VPS débil con 1 GB de RAM, tendrás que deshabilitar el antivirus en la configuración, dejando solo Rspamd.
  2. Limpieza de la dirección IP. Los proveedores de hosting a menudo entregan direcciones con un historial problemático. Antes de lanzar, definitivamente verifica la IP del servidor contra listas negras (DNSBL) y configura rDNS (registro PTR) a través del soporte del hosting, de lo contrario los correos no llegarán a Gmail y Outlook.
  3. Puerto 25. Muchos proveedores en la nube bloquean el puerto 25 de salida por defecto para combatir spammers. Asegúrate de que tu host permita abrirlo.

Para quién es este proyecto

Mailu es una excelente opción para estudios de desarrollo web, pequeñas empresas y entusiastas del autohosting. Cubre el 99% de las necesidades de correo corporativo, no requiere horas de configuración manual de Postfix y se actualiza con un simple docker compose pull.

Si estás cansado de los precios constantemente crecientes de servicios de correo de terceros para dominios, o quieres mantener tu correspondencia bajo tu control completo, despliega una demo de Mailu. Es probable que nunca más quieras volver a ensamblar servidores de correo manualmente.

Proyectos relacionados