Mailu es un grupo de servicios que en su conjunto conforman un servidor de correo. Dentro de los servicios que se pueden encontrar con Mailu, están:
Es posible configurar todos estos servicios de forma manual en el hosting o computadora que se desee, pero el mayor beneficio con Mailu, es que cuenta con toda la configuración predefinida y lista para usarse en Docker con solo unos pocos pasos.
Para crear la configuración de Docker, Mailu cuenta con una herramienta online que prepara la configuración inicial de forma automática y donde solo es necesario seleccionar las opciones que se desean para el servidor. La herramienta online se encuentra en este enlace: setup.mailu.io
A continuación explicaremos los pasos para generar los archivos de configuración:
mailu storage path
: es el lugar o volumen donde se almacenarán los datos del servidor, ejemplo /home/guille/mailu-data
main_domain
: dominio del servidor de correo. Si tu correo es guille@domain.com, este valor sería domain.com
.security
: elegir el tipo de seguridad a utilizarse. en el caso de seleccionarse cert
, seguir los pasos de este link para copiar los certificados dentro del servidor.website name
: nombre que se mostrará en los clientes web.enable administration
: habilitar el cliente web de administración del servidor.enable webclient
: habilitar el cliente web. Se puede elegir entre roundqube
y rainloop
public hostnames
: definir el hostname o los hostname del servidor. Si su servidor va a estar hosteado en mail.domain.com
, pues este dominio debe estar en el listado.Una vez que se han llenado todos los parámatros de configuración, se generarán los archivos docker-compose y mailu.env, los cuales se pueden descargar en dos enlaces al final del proceso. Una vez descargados dichos archivos, es bueno chequear manualmente que todo está correctamente.
Para iniciar el servidor de correo, solamente es necesario ejecutar el siguiente comando en el directorio donde se copiaron los archivos anteriores:
docker-compose up -d
Con esto, los contenedores de todos los servicios del servidor se ejecutarán y el servidor estará listo para ser usado. Pero inicialmente, y para poder acceder a la administración, es necesario crear un usuario con el role de administrador. Para ello deben ejecutar el siguiente comando:
docker-compose exec admin flask mailu admin guille example.net my-password
Esto creará un usuario con privilegios de administración con el user: guille@example.net
y el password: my-password
. Ya puedes acceder a la administración por la url /admin
(suponiendo que fue la seleccionada en la configuración).
Tu servidor de correo está detras de un nginx en tu hosting y la administración redirecciona a localhost
localtion / {
proxy_pass https://localhost:443;
proxy_set_header Host $host;
proxy_redirect ~^/(.*) https://$http_host/$1;
}
Con estas líneas se está definiendo cual es el host a utilizarse en la redirección.Al intentar iniciar los contenedores, los puertos están utilizados.
services:
...
front:
...
ports:
- "127.0.0.1:8880:80"
- "127.0.0.1:8443:443"
y redireccionar con el nginx a estos puertos internos:server {
listen 80;
server_name my.domain.com;
location / {
proxy_pass http://localhost:8880;
}
}
server {
listen 443;
server_name my.domain.com;
location / {
proxy_pass https://localhost:8443;
}
}
No puedo acceder a los puertos del servidor (25, 465, 110, ...)
127.0.0.1
al inicio. Esto significa que los puertos solo van a estar disponible desde el localhost. Para solucionar el problema, remover el ip de la configuración:services:
...
front:
...
ports:
....
- "25:25"
- "465:465"
- "587:587"
- "110:110"
- "995:995"
- "143:143"
- "993:993"
Esperamos que el este artículo te halla sido de ayuda para configurar tu propio servidor de correo y que la experiancia que hemos compartido te eliminase horas de trabajo. Cualquier duda o sugerencia, déjala en los comentarios.
happy coding!