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