Stalwart Docker Compose es la forma más moderna de montar tu propio servidor de correo self-hosted completo, con SMTP, IMAP, JMAP y un panel de administración web, todo en un único contenedor. Escrito en Rust y pensado para ser seguro y ligero, Stalwart simplifica una tarea tradicionalmente compleja como es autohospedar el correo. En esta guía lo desplegarás con Docker, configurarás los registros DNS imprescindibles y accederás a su panel de administración.
En este artículo aprenderás a:
- Desplegar Stalwart Docker Compose con todos sus servicios de correo.
- Entender los puertos y los registros DNS necesarios (MX, SPF, DKIM, DMARC).
- Acceder al panel de administración y crear tu primer dominio y buzón.
- Aplicar buenas prácticas de seguridad y entrega de correo.
¿Qué es Stalwart y por qué usar Docker Compose?
Stalwart Docker Compose despliega un servidor de correo integral que reúne en una sola pieza los protocolos SMTP (envío), IMAP y POP3 (recepción) y JMAP (el estándar moderno), además de una interfaz de administración por web. Frente a las soluciones clásicas que combinan media docena de componentes distintos, Stalwart lo unifica todo, lo que reduce enormemente la complejidad de mantener tu propio correo.
Autohospedar el correo con esta solución aporta ventajas claras para quien busca privacidad y control:
- Privacidad total: tus correos viven en tu servidor, sin que ningún tercero los analice.
- Todo en uno: SMTP, IMAP, JMAP y administración en un único contenedor fácil de mantener.
- Seguridad moderna: escrito en Rust, con TLS automático y protección contra abusos integrada.
- Escalable: sirve tanto para un dominio personal como para múltiples dominios y usuarios.
Eso sí, autohospedar correo es más exigente que otros servicios. Conviene tener a mano un proxy inverso con HTTPS, como el que vimos en Caddy con HTTPS automático, para publicar el panel de administración de forma segura.
Requisitos previos para Stalwart Docker Compose
Antes de desplegar Stalwart Docker Compose, ten en cuenta que un servidor de correo tiene requisitos particulares que van más allá de Docker. La entrega de correo depende de tu red y tu DNS.
- Un servidor con Docker Engine y Docker Compose v2, preferiblemente un VPS con IP pública fija.
- Un dominio propio sobre el que puedas gestionar los registros DNS.
- El puerto 25 saliente abierto: muchos proveedores domésticos y algunos VPS lo bloquean.
- Capacidad de configurar el DNS inverso (PTR) de tu IP, clave para la entregabilidad.
Este último punto es crítico: sin un PTR correcto y sin los registros de autenticación, tus correos acabarán en spam. Por eso el correo self-hosted se recomienda sobre un VPS con IP con buena reputación, no desde una conexión doméstica.
Instalar Stalwart Docker Compose paso a paso
Creamos el directorio del proyecto para alojar el fichero de composición y los datos persistentes del servidor.
mkdir -p ~/docker/stalwart && cd ~/docker/stalwart
A continuación crea el fichero docker-compose.yml. Publicamos los puertos de cada protocolo de correo y el del panel de administración, y montamos un volumen para conservar la configuración y los buzones.
services:
stalwart:
image: stalwartlabs/mail-server:latest
container_name: stalwart
restart: unless-stopped
hostname: mail.tudominio.com
ports:
- "25:25" # SMTP
- "587:587" # Envío (STARTTLS)
- "465:465" # SMTPS
- "143:143" # IMAP
- "993:993" # IMAPS
- "4190:4190" # Sieve (filtros)
- "8080:8080" # Panel de administración
volumes:
- ./data:/opt/stalwart-mail
Cada puerto cumple una función distinta dentro del flujo de correo. Levanta el contenedor y, muy importante, revisa los logs: en el primer arranque Stalwart genera una contraseña de administrador aleatoria y la muestra por la salida estándar.
docker compose up -d
docker compose logs stalwart | grep -i "password"
Anota esa contraseña temporal junto con el usuario admin: la necesitarás para entrar al panel. Con el contenedor en marcha, ya tienes la base de tu servidor de correo Stalwart Docker Compose funcionando; ahora toca el DNS.
| Puerto | Servicio |
|---|---|
| 25 | SMTP (recepción entre servidores) |
| 587 / 465 | Envío autenticado del cliente |
| 143 / 993 | IMAP / IMAPS (lectura) |
| 4190 | Sieve (filtros de correo) |
| 8080 | Panel de administración web |
Registros DNS imprescindibles para Stalwart Docker Compose
El DNS es lo que hace que tu servidor Stalwart Docker Compose pueda enviar y recibir correo sin acabar en la carpeta de spam. Estos son los registros que debes configurar en tu proveedor de DNS.
- Registro A:
mail.tudominio.comapuntando a la IP pública de tu servidor. - Registro MX: tu dominio apuntando a
mail.tudominio.com, para que otros servidores sepan dónde entregar tu correo. - SPF: un registro TXT que declara qué servidores pueden enviar en tu nombre.
- DKIM: la firma criptográfica que Stalwart genera para validar tus correos.
- DMARC: la política que indica qué hacer con los correos que no pasan SPF ni DKIM.
El propio panel de Stalwart te proporciona los valores exactos de SPF, DKIM y DMARC que debes copiar en tu DNS, lo que simplifica muchísimo esta parte. Tras configurarlos, usa una herramienta de comprobación de correo para verificar que todos pasan correctamente antes de fiarte del sistema.
⚠️ Advertencia importante
Autohospedar correo es más difícil que otros servicios: la entregabilidad depende de la reputación de tu IP, del DNS inverso (PTR) y de una configuración impecable de SPF, DKIM y DMARC. Si tu IP tiene mala reputación o el puerto 25 está bloqueado, tus correos no llegarán. Prueba a fondo antes de migrar tu correo principal y considera un servicio de reenvío (smarthost) si la entrega directa te da problemas.
Administrar Stalwart Docker Compose desde el panel web
Con el DNS configurado, es hora de entrar al panel de administración. Accede a http://IP-DEL-SERVIDOR:8080 e introduce el usuario admin y la contraseña temporal que anotaste de los logs. Lo primero será cambiar esa contraseña por una robusta.
Desde el panel de Stalwart Docker Compose gestionas todo el servidor de forma visual y sin editar ficheros a mano:
- Dominios: añade tu dominio y genera automáticamente las claves DKIM.
- Cuentas: crea buzones de usuario, alias y listas de distribución.
- TLS: configura los certificados, que Stalwart puede obtener automáticamente vía ACME.
- Seguridad: ajusta filtros antispam, límites de tasa y reglas de autenticación.
Una vez creado tu primer buzón, configura una cliente de correo (como Thunderbird o el del móvil) con los datos IMAP y SMTP de tu servidor. Si todo está bien, podrás enviar y recibir correo desde tu propio dominio. Para publicar el panel de forma segura con HTTPS, sitúalo tras un proxy como Nginx Proxy Manager.
Cómo funciona el correo en Stalwart Docker Compose
Para operar tu servidor con criterio, ayuda entender el viaje de un correo. Cuando alguien te escribe, su servidor consulta tu registro MX, se conecta al puerto 25 de tu Stalwart Docker Compose y entrega el mensaje, que se guarda en el buzón correspondiente. Cuando tú lees ese correo, tu cliente se conecta por IMAP (puerto 993) y lo descarga. Y cuando envías, tu cliente usa el puerto 587 autenticado, y Stalwart se encarga de firmarlo con DKIM y entregarlo al destinatario.
En cada uno de esos pasos intervienen los mecanismos de autenticación. SPF verifica que tu servidor está autorizado a enviar; DKIM añade una firma criptográfica que prueba que el mensaje no se ha alterado; y DMARC le dice al servidor receptor qué hacer si algo falla. Comprender esta cadena es lo que separa un servidor de correo que entrega bien de otro que acaba sistemáticamente en spam. Por eso Stalwart Docker Compose automatiza la generación de estas claves: te da los valores listos para que solo tengas que pegarlos en tu DNS.
¿Cuándo conviene autohospedar el correo?
Autohospedar el correo no es para todo el mundo, y ser honesto sobre ello forma parte de una buena decisión técnica. Estos son los escenarios donde Stalwart Docker Compose brilla de verdad:
- Privacidad máxima: quieres que ninguna empresa analice el contenido de tus correos para publicidad.
- Control de dominios: gestionas varios dominios y buzones y prefieres no pagar por usuario.
- Aprendizaje: deseas entender a fondo cómo funciona el correo, una habilidad muy valiosa.
- Independencia: no quieres depender de que un proveedor cierre tu cuenta sin previo aviso.
Por el contrario, si dependes del correo para tu negocio y no puedes asumir el riesgo de que un mensaje importante caiga en spam, quizá prefieras un proveedor gestionado o una configuración híbrida. Una opción intermedia muy popular es usar Stalwart Docker Compose para recibir y almacenar tu correo, delegando el envío en un servicio de reenvío con buena reputación. Así combinas el control del autohospedaje con la fiabilidad de entrega de un tercero, obteniendo lo mejor de ambos enfoques mientras ganas experiencia.
Buenas prácticas y solución de problemas
- Copias de seguridad: respalda la carpeta
./datacon regularidad; contiene la configuración y todos los buzones. - Monitoriza la reputación: vigila que tu IP no aparezca en listas negras y revisa los informes DMARC.
- Actualiza con cuidado: cambia la etiqueta de la imagen y prueba en un entorno de staging antes de producción.
- Protege el acceso: nunca expongas el panel 8080 sin HTTPS y sin una contraseña fuerte.
Si tus correos salientes acaban en spam, revisa en orden: el PTR de tu IP, los registros SPF y DKIM, y la reputación de la IP. La mayoría de problemas de un servidor de correo autohospedado se resuelven en el DNS. Descubre más servicios para tu servidor en nuestra categoría de tutoriales de Docker Compose.
Conclusión
Montar Stalwart Docker Compose te da un servidor de correo moderno, seguro y completo bajo tu control absoluto, algo impensable de forma tan sencilla hace unos años. Hemos cubierto el despliegue, los puertos, los registros DNS imprescindibles y la administración desde el panel web. El correo autohospedado exige rigor con el DNS y la reputación de la IP, pero a cambio recuperas una privacidad total sobre tus comunicaciones. Empieza con un dominio de pruebas, valida la entrega y ve ganando confianza antes de dar el salto.
Como refuerzo, dado que un servidor de correo expuesto a Internet recibe constantes intentos de ataque, es muy recomendable protegerlo con una capa adicional de defensa frente a fuerza bruta y escaneos. Puedes complementar Stalwart con una herramienta como la que describimos en CrowdSec para protección colaborativa contra ataques, que detecta y bloquea las direcciones IP maliciosas de forma automática. Combinando la seguridad integrada de Stalwart con un sistema de detección externo, reduces drásticamente la superficie de ataque de tu servidor. Y no olvides revisar periódicamente los registros de acceso: en el correo autohospedado, la vigilancia constante es tan importante como la configuración inicial, porque las amenazas evolucionan y tu servidor debe adaptarse a ellas con el tiempo.
Preguntas frecuentes sobre Stalwart Docker Compose
¿Es difícil autohospedar correo con Stalwart?
Stalwart simplifica mucho la parte del servidor al unificar todos los servicios. La dificultad real está en el DNS y la reputación de la IP, comunes a cualquier servidor de correo, no en Stalwart en sí.
¿Puedo usar mi conexión doméstica?
No es recomendable. Muchos proveedores bloquean el puerto 25 y las IP domésticas suelen tener mala reputación. Lo ideal es un VPS con IP fija y capacidad de configurar el PTR.
¿Stalwart es gratis?
Sí, Stalwart es un proyecto de código abierto y gratuito. Solo asumes el coste del servidor donde lo alojes, normalmente un VPS con buena reputación de IP.
¿Qué protocolos soporta?
Soporta SMTP para el envío, IMAP y POP3 para la recepción, JMAP como estándar moderno y Sieve para los filtros, además de una API de administración. Es una solución de correo verdaderamente integral.
Fuentes y recursos oficiales
- Sitio oficial de Stalwart
- Documentación oficial de Stalwart
- Stalwart en GitHub
- Imagen oficial en Docker Hub
- Documentación de Docker Compose
