Poste.io es una imagen para implementar un servidor de correo completo, con todas las funciones necesarias, como ser SMTP, IMAP, POP3, webmail, antivirus, antispam, y un panel de administración muy completo desde donde se pueden agregar multiples dominios, cuantas de correo, certificados, y modificar la configuración de cada uno de los componentes.
El único requisito para su instalación es tener Docker corriendo sobre una máquina con 1GB de RAM y una IP pública la cual asignaremos en nuestro DNS a mail.sarubbi.com.ar
pablo@mail:~# sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
pablo@mail:~# sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
pablo@mail:~# sudo apt update
pablo@mail:~# sudo apt install docker.io docker-compose
Es necesario crear un archivo docker-compose.yaml con los siguientes parámetros:
pablo@mail:~# cat /root/docker-compose.yaml
version: "3.4"
services:
poste:
image: analogic/poste.io
restart: always
network_mode: "host"
expose:
- 25
- 80
- 443
- 110
- 143
- 465
- 587
- 993
- 995
volumes:
- /mnt/mail:/data
environment:
- HTTPS=ON
- DISABLE_CLAMAV=TRUE
restart: always para que se inicie el contenedor cada vez que la máquina inicie.
netkwork_mode: «host» hace que el contenedor use la IP pública de la máquina y no una IP interna de Docker.
expose: – <port> para publicar todos los puertos que necesitamos.
volumes : – <dir> para almacenar lo archivos de configuración y toda la información de los mails.
Para luego correr la imágen de la siguiente manera:
pablo@mail:~# sudo docker-compose -f /root/docker-compose.yaml up -d
Con docke ps podemos verificar que el contenedor este corriendo
pablo@mail:~# sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b2ab960cdc6c analogic/poste.io "/init" 5 seconds ago Up 5 seconds (healthy) root_poste_1
Para terminar la configuración debermos acceder desde unn browser a https://mail.sarubbi.com.ar/
La primera vez fallará el HTTPS porque aún no tenemos un certificado definido. Continuamos aunque diga que no es seguro (porque sabemos que es seguro no?)
Completamos los datos:
Mailserver hostname: mail.sarubbi.com.ar
Administrator email: administrador@sarubbi.com.ar
Password: ******************
Para crear un certificado con letsencrypt accedemos al menú «System settings» -> «TLS Certificate» -> «issue free letsencrypt.org certificate» -> «enabled» -> «Save changes»
Automáticamente se conectará a letsencrypt.org, generará el certificado y lo instalará en nuestro contenedor.

Algo para destacar es revisar el panel de «Server status» -> «Connection diagnostics» desde donde podemos verificar que tengamos todos los servicios funcionando.

Gracias tocayo por la data: https://youtu.be/K4-uD1VHCz0