bolt Valebyte VPS desde $4/mes — NVMe, despliegue en 60s.

Obtener VPS arrow_forward
eco Principiante Tutorial/Cómo hacer

Instalación de Mailcow en VPS

calendar_month Jun 01, 2026 schedule 20 min de lectura visibility 50 vistas
Установка Mailcow на VPS: Полный гид по self-hosted почте с Docker и Let's Encrypt
info

¿Necesitas un servidor para esta guía? Ofrecemos servidores dedicados y VPS en más de 50 países con configuración instantánea.

¿Necesitas un VPS para esta guía?

Explore otras opciones de servidores dedicados en

Instalación de Mailcow en un VPS: Guía completa de correo self-hosted con Docker y Let's Encrypt

TL;DR

En esta guía detallada, configuraremos paso a paso un servidor de correo Mailcow completo en su Virtual Private Server (VPS), utilizando Docker y certificados SSL generados automáticamente por Let's Encrypt. Obtendrá control total sobre su correo electrónico, garantizando privacidad, fiabilidad y flexibilidad, lo que es ideal para desarrolladores, fundadores en solitario y empresas que buscan independencia de proveedores de correo externos.

  • La configuración de Mailcow en un VPS permite crear su propio servicio de correo con control total sobre los datos.
  • El uso de Docker simplifica el despliegue, el aislamiento y la actualización de todos los componentes de Mailcow.
  • La integración automática de Let's Encrypt proporciona certificados SSL/TLS gratuitos y actualizados para proteger el tráfico.
  • La guía cubre todas las etapas: desde la elección del VPS y la configuración básica del servidor hasta la instalación de Mailcow, la configuración de DNS, la copia de seguridad y la resolución de problemas comunes.
  • Obtendrá un servidor de correo completamente funcional, que incluye interfaz web, antispam, antivirus y soporte para protocolos modernos.
  • Todos los comandos y configuraciones son válidos para 2026 y están diseñados para su ejecución inmediata.

Qué configuramos y por qué

Diagrama: Qué configuramos y por qué
Diagrama: Qué configuramos y por qué

En esta guía, instalaremos y configuraremos Mailcow, una solución integral para crear su propio servidor de correo. Mailcow es un potente servicio de correo totalmente contenedorizado (basado en Docker) que proporciona todos los componentes necesarios para trabajar con correo electrónico: SMTP, IMAP/POP3, interfaz web (SOGo), antispam (Rspamd), antivirus (ClamAV), calendario, contactos, así como integración con Let's Encrypt para la emisión automática de certificados SSL/TLS.

El objetivo es desplegar Mailcow en su propio VPS o servidor dedicado, lo que le dará control total sobre su infraestructura de correo. Al final, obtendrá un servidor de correo fiable y seguro que podrá servir dominios y usuarios de su elección. Podrá crear buzones de correo, gestionar alias, configurar reglas de filtrado de spam y estar seguro de la confidencialidad de sus datos, ya que se almacenarán en su propio hardware y no en el de un proveedor externo.

¿Por qué correo self-hosted en un VPS y no servicios en la nube?

Existen muchas alternativas al correo self-hosted, como Gmail, Outlook 365, ProtonMail o Yandex.Mail para dominios. Ofrecen comodidad y facilidad de uso, pero tienen sus desventajas:

  • Control de datos: Al utilizar servicios en la nube, sus datos se almacenan en servidores de terceros, lo que puede plantear problemas de privacidad y seguridad. Una solución self-hosted le da control total sobre dónde y cómo se almacenan sus correos electrónicos.
  • Flexibilidad y personalización: Los servicios en la nube ofrecen opciones de configuración limitadas. Mailcow, al estar desplegado en su servidor, permite ajustar finamente todos los aspectos del funcionamiento del correo, desde las reglas de filtrado hasta la integración con otros sistemas.
  • Costo a largo plazo: Para equipos grandes o muchos buzones de correo, el costo de los servicios de correo en la nube puede aumentar significativamente. Un servidor propio, con la configuración adecuada, puede ser una solución más rentable.
  • Independencia: No depende de las políticas, fallos o cambios en el funcionamiento de proveedores externos. Su servidor de correo funcionará tal como lo configuró.

Esta guía es ideal para quienes valoran la privacidad, desean control total sobre su infraestructura o tienen requisitos específicos que no pueden ser satisfechos por las ofertas estándar en la nube. Los desarrolladores pueden configurar el correo para sus proyectos, los emprendedores para la comunicación en equipo y los entusiastas de las criptomonedas para garantizar la privacidad.

Qué configuración de VPS se necesita para esta tarea

Diagrama: Qué configuración de VPS se necesita para esta tarea
Diagrama: Qué configuración de VPS se necesita para esta tarea

Para un despliegue exitoso y estable de Mailcow, es crucial elegir un VPS o servidor dedicado adecuado. Mailcow, aunque optimizado para funcionar en contenedores, es una aplicación que consume bastantes recursos debido a la multitud de componentes incluidos (base de datos, servidor web, antispam, antivirus, etc.).

Requisitos mínimos (para 1-5 usuarios, tráfico bajo):

  • CPU: 2 núcleos x86-64. Los procesadores modernos con alta frecuencia de reloj son preferibles.
  • RAM: 4 GB. Este es el mínimo absoluto; con antispam y antivirus activos, puede ser insuficiente. Parte de la RAM será utilizada por Docker y el SO.
  • Disco: 50 GB SSD. El SSD es crucial para el rendimiento de la base de datos y el acceso rápido a los archivos de correo. Tenga en cuenta que los correos electrónicos llenan rápidamente el espacio en disco.
  • Red: 100 Mbit/s con tráfico ilimitado o un gran volumen (mínimo 1 TB/mes). Dirección IP estable, preferiblemente sin historial de spam.

Plan de VPS recomendado (para 5-20 usuarios, tráfico moderado):

  • CPU: 4 núcleos x86-64.
  • RAM: 8 GB. Esto garantizará un funcionamiento cómodo de todos los componentes, incluidos Rspamd y ClamAV.
  • Disco: 100-200 GB SSD. Con margen para el crecimiento de los buzones de correo y el almacenamiento de registros.
  • Red: 1 Gbit/s con tráfico ilimitado.

Para estas características, se puede considerar un VPS con las características indicadas. Al elegir, preste siempre atención al tipo de disco (solo SSD) y a la disponibilidad de tráfico ilimitado o de gran volumen.

¿Cuándo se necesita un servidor dedicado y no un VPS?

Un servidor dedicado (dedicated server) se vuelve necesario si:

  • Gran número de usuarios: Más de 50 usuarios activos que generan un tráfico significativo.
  • Alto volumen de correo: El servidor procesa cientos de miles de correos al día.
  • Requisitos de rendimiento: Se necesita el máximo rendimiento para antispam, antivirus o integraciones específicas.
  • SLA estrictos y aislamiento: Se requiere aislamiento físico completo para seguridad y estabilidad, así como recursos garantizados sin "vecinos ruidosos".
  • Almacenamiento de grandes volúmenes de datos: Buzones de correo con terabytes de datos.

Para estos escenarios, es aconsejable considerar un servidor dedicado adecuado que proporciona control total sobre el hardware y garantiza recursos dedicados.

Ubicación: en qué influye

La elección de la ubicación del servidor puede influir en varios factores:

  • Latencia: Cuanto más cerca esté el servidor de la mayoría de sus usuarios, menor será la latencia al acceder a la interfaz web y a IMAP/POP3.
  • Legislación: Las leyes sobre almacenamiento de datos y privacidad varían en diferentes países. Elija una ubicación que cumpla con sus requisitos y normativas.
  • Reputación de la dirección IP: Algunos rangos de IP en ciertos países pueden tener una peor reputación con los filtros de spam, lo que puede afectar la entregabilidad de su correo. Es preferible elegir proveedores con buena reputación y la posibilidad de obtener una dirección IP "limpia".
  • Resolución DNS: La proximidad a los nodos principales de Internet puede acelerar ligeramente las consultas DNS, pero esto es menos crítico que la latencia para los usuarios.

Generalmente, se recomienda elegir una ubicación lo más cercana posible a su audiencia principal o a la ubicación de su negocio.

Preparación del servidor

Diagrama: Preparación del servidor
Diagrama: Preparación del servidor

Antes de instalar Mailcow, es necesario realizar una preparación básica del servidor. Utilizaremos Ubuntu 24.04 LTS como un sistema operativo estable y ampliamente utilizado. Asegúrese de tener acceso SSH al servidor con privilegios de root o de un usuario con sudo.

1. Actualización del sistema e instalación de utilidades básicas

Primero, actualizaremos el sistema e instalaremos los paquetes necesarios.


sudo apt update                                 # Actualizamos la lista de paquetes
sudo apt upgrade -y                             # Actualizamos los paquetes instalados
sudo apt install -y curl wget git               # Instalamos utilidades básicas: curl, wget, git

2. Creación de un nuevo usuario con permisos sudo (recomendado)

Trabajar como root no se recomienda para tareas diarias. Crearemos un nuevo usuario y lo añadiremos al grupo sudo.


sudo adduser mailuser                           # Creamos un nuevo usuario 'mailuser'
sudo usermod -aG sudo mailuser                  # Añadimos el usuario 'mailuser' al grupo 'sudo'

Ahora, salga de la sesión de root e inicie sesión como mailuser. Todos los comandos posteriores que requieran privilegios se ejecutarán con sudo.

3. Configuración de claves SSH (opcional, pero muy recomendable)

Para mejorar la seguridad, se recomienda utilizar claves SSH en lugar de contraseñas. Si aún no tiene un par de claves, genérelas en su máquina local:


ssh-keygen -t rsa -b 4096                       # Generamos una nueva clave SSH en la máquina local

Luego, copie la clave pública al servidor:


ssh-copy-id mailuser@ВАШ_IP_СЕРВЕРА           # Copiamos la clave pública al servidor para 'mailuser'

Después de esto, puede deshabilitar la autenticación por contraseña en el archivo /etc/ssh/sshd_config, estableciendo PasswordAuthentication no y reiniciando el servicio SSH.

4. Configuración del firewall (UFW)

Instalaremos y configuraremos UFW (Uncomplicated Firewall) para proteger el servidor. Por defecto, todas las conexiones entrantes estarán prohibidas, excepto las que permitamos explícitamente.


sudo apt install -y ufw                         # Instalamos UFW
sudo ufw default deny incoming                  # Denegamos todas las conexiones entrantes por defecto
sudo ufw default allow outgoing                 # Permitimos todas las conexiones salientes por defecto
sudo ufw allow ssh                              # Permitimos SSH (puerto 22)
sudo ufw enable                                 # Habilitamos el firewall
sudo ufw status                                 # Verificamos el estado del firewall

En este punto, el servidor está listo para la instalación de Docker y Mailcow.

Instalación de software — paso a paso

Diagrama: Instalación de software — paso a paso
Diagrama: Instalación de software — paso a paso

Mailcow funciona con Docker, por lo que el primer paso será instalar Docker Engine y Docker Compose. Utilizaremos las versiones actuales para 2026.

1. Instalación de Docker Engine

Instalaremos Docker Engine utilizando el repositorio oficial de Docker para obtener siempre las versiones más recientes.


# Добавляем GPG ключ Docker
sudo apt update
sudo apt install -y ca-certificates curl gnupg lsb-release
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

# Добавляем репозиторий Docker в APT
echo \
  "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# Устанавливаем Docker Engine, Docker CLI и containerd
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# Проверяем установку Docker
sudo docker run hello-world                     # Запускаем тестовый контейнер для проверки установки Docker

Añadiremos su usuario al grupo docker para no tener que usar sudo con cada comando de Docker:


sudo usermod -aG docker $USER                   # Добавляем текущего пользователя в группу 'docker'
newgrp docker                                   # Применяем изменения группы без перезахода

Ahora Docker está instalado y listo para funcionar. La versión de Docker Engine será aproximadamente 26.x - 27.x, y Docker Compose Plugin 2.24.x - 2.27.x, lo cual es actual para 2026.

2. Clonación del repositorio Mailcow-Dockerized

Nos moveremos al directorio donde desea almacenar los archivos de Mailcow (por ejemplo, /opt/mailcow-dockerized) y clonaremos el repositorio oficial de Mailcow.


sudo mkdir /opt/mailcow-dockerized              # Создаем директорию для Mailcow
sudo chown $USER:$USER /opt/mailcow-dockerized  # Устанавливаем владельца директории на текущего пользователя
cd /opt/mailcow-dockerized                      # Переходим в созданную директорию
git clone https://github.com/mailcow/mailcow-dockerized . # Клонируем репозиторий Mailcow в текущую директорию

3. Generación del archivo de configuración de Mailcow

Mailcow utiliza el archivo mailcow.conf para su configuración. Se puede generar mediante un script.


./generate_config.sh                            # Запускаем скрипт для генерации mailcow.conf

El script hará varias preguntas:

  • Hostname (FQDN): Introduzca el nombre de dominio completo de su servidor de correo, por ejemplo, mail.yourdomain.com. Este será el nombre principal por el que su servidor será accesible.
  • Timezone: Seleccione su zona horaria.

Después de responder a las preguntas, se creará el archivo mailcow.conf. Ábralo y asegúrese de que todas las configuraciones se ajustan a sus necesidades. Preste especial atención a las variables relacionadas con los puertos y la red si tiene requisitos específicos.

4. Configuración de registros DNS

Este es un paso críticamente importante para el funcionamiento del servidor de correo. Sin los registros DNS correctos, su correo no se entregará o terminará en spam. Deberá añadir los siguientes registros en el panel de control DNS de su dominio (yourdomain.com):

  • Registro A para Mailcow FQDN:
    • Nombre/Host: mail (o su FQDN, por ejemplo, mail.yourdomain.com)
    • Tipo: A
    • Valor: SU_IP_DEL_SERVIDOR
  • Registro AAAA para Mailcow FQDN (si usa IPv6):
    • Nombre/Host: mail
    • Tipo: AAAA
    • Valor: SU_DIRECCIÓN_IPV6_DEL_SERVIDOR
  • Registro MX: (apunta a su servidor de correo)
    • Nombre/Host: @ o yourdomain.com
    • Tipo: MX
    • Prioridad: 10 (o cualquier número, cuanto menor, mayor prioridad)
    • Valor: mail.yourdomain.com
  • Registro SPF: (para prevenir la suplantación de remitentes)
    • Nombre/Host: @ o yourdomain.com
    • Tipo: TXT
    • Valor: v=spf1 mx a:mail.yourdomain.com -all
  • Registro DKIM: (para firmar correos salientes; generado por Mailcow)
    • Después del primer inicio, Mailcow generará las claves DKIM. Deberá copiar el registro TXT de la interfaz web de Mailcow (Configuration -> Domains -> Add domain o Edit domain) y añadirlo a su DNS. El formato será aproximadamente el siguiente: dkim._domainkey.yourdomain.com TXT v=DKIM1; k=rsa; p=CLAVE_PÚBLICA
  • Registro DMARC: (para definir la política de procesamiento de correos que no pasaron SPF/DKIM)

Asegúrese de que todos los registros DNS estén indexados y disponibles (puede tardar varias horas). Puede verificarlos usando dig o herramientas en línea, como MXToolbox.


dig A mail.yourdomain.com               # Проверяем A-запись
dig MX yourdomain.com                   # Проверяем MX-запись
dig TXT yourdomain.com                  # Проверяем SPF-запись
dig TXT _dmarc.yourdomain.com           # Проверяем DMARC-запись

5. Inicio de Mailcow

Ahora que Docker está instalado, la configuración generada y el DNS configurado, puede iniciar Mailcow.


cd /opt/mailcow-dockerized                      # Убедитесь, что вы находитесь в директории Mailcow
docker compose pull                             # Загружаем все необходимые Docker-образы (актуальные на 2026)
docker compose up -d                            # Запускаем все контейнеры Mailcow в фоновом режиме

El proceso de descarga de imágenes y el inicio de los contenedores puede tardar un tiempo, dependiendo de la velocidad de su conexión a internet y del rendimiento del servidor. Después del inicio, puede verificar el estado de los contenedores:


docker compose ps                               # Проверяем статус запущенных контейнеров Mailcow

Todos los contenedores deben estar en estado running.

6. Permiso de puertos de Mailcow en UFW

Mailcow utiliza muchos puertos. Los permitiremos en el firewall UFW.


sudo ufw allow 80/tcp                           # HTTP (para el desafío ACME de Let's Encrypt)
sudo ufw allow 443/tcp                          # HTTPS (para la interfaz web y clientes de correo)
sudo ufw allow 25/tcp                           # SMTP (para enviar/recibir correo)
sudo ufw allow 465/tcp                          # SMTPS (SMTP sobre SSL/TLS)
sudo ufw allow 587/tcp                          # Submission (SMTP para clientes con StartTLS)
sudo ufw allow 110/tcp                          # POP3
sudo ufw allow 995/tcp                          # POP3S (POP3 sobre SSL/TLS)
sudo ufw allow 143/tcp                          # IMAP
sudo ufw allow 993/tcp                          # IMAPS (IMAP sobre SSL/TLS)
sudo ufw allow 4190/tcp                         # Sieve (filtrado de correo en el servidor)
sudo ufw status                                 # Verificamos el estado del firewall

Ahora su servidor de correo Mailcow está en funcionamiento y accesible a través del FQDN especificado.

Configuración

Diagrama: Configuración
Diagrama: Configuración

Después de un inicio exitoso de Mailcow, las configuraciones principales se realizan a través de la interfaz web. También es importante asegurarse de que los registros DNS y el funcionamiento de TLS sean correctos.

1. Primer inicio de sesión en la interfaz web de Mailcow

Abra un navegador web y vaya a la dirección de su FQDN (por ejemplo, https://mail.yourdomain.com). Debería ver la página de inicio de sesión de la interfaz de usuario de Mailcow.

Credenciales predeterminadas:

  • Usuario: admin
  • Contraseña: moohoo

IMPORTANTE: ¡Cambie la contraseña del administrador inmediatamente después del primer inicio de sesión! Vaya a System > Configuration > Admins, seleccione admin y cambie la contraseña.

2. Adición de un dominio

Vaya a Configuration > Mail Setup > Domains. Haga clic en Add domain e introduzca su dominio (por ejemplo, yourdomain.com). Después de añadir el dominio, Mailcow generará automáticamente los registros DKIM. Copie el registro TXT proporcionado y añádalo a los registros DNS de su dominio (si no lo ha hecho antes).

Ejemplo de registro DKIM (que copiará de la interfaz):


_dkim.yourdomain.com.    IN    TXT    "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDzQ..."

Asegúrese de que todos los registros DNS (A, AAAA, MX, SPF, DKIM, DMARC) estén configurados y resueltos correctamente. Puede usar la sección Configuration > Mail Setup > ARC/DKIM/SPF en la interfaz de usuario de Mailcow para verificar el estado de sus registros DNS.

3. Creación de buzones de correo

Vaya a Configuration > Mail Setup > Mailboxes. Haga clic en Add mailbox. Introduzca un nombre de usuario, seleccione el dominio, establezca una contraseña y asigne una cuota. Después de la creación, podrá usar este buzón para enviar y recibir correos electrónicos.

4. Configuración de TLS/HTTPS con Let's Encrypt

Mailcow utiliza acme.sh para la emisión y renovación automática de certificados SSL/TLS de Let's Encrypt. Al iniciar Mailcow por primera vez, intentará obtener automáticamente un certificado para su FQDN (por ejemplo, mail.yourdomain.com). Si los registros DNS A y AAAA para su FQDN son correctos y los puertos 80/443 están abiertos, se emitirá el certificado.

Puede verificar el estado de los certificados en System > Configuration > Certificates. Si el certificado no se emitió, revise los registros del contenedor acme-mailcow:


docker compose logs acme-mailcow                # Ver registros del contenedor acme-mailcow

Problemas típicos: registros DNS incorrectos, puertos 80/443 cerrados o conflicto con otro servidor web en esos puertos (lo cual no debería ocurrir en un VPS limpio).

5. Verificación de la operatividad

Después de todas las configuraciones, es necesario asegurarse de que el servidor de correo funcione correctamente.

Verificación de la disponibilidad de la interfaz web:

Abra https://mail.yourdomain.com en su navegador. Asegúrese de que la conexión sea segura (candado verde) y que se utilice un certificado de Let's Encrypt.

Verificación de SMTP/IMAP usando telnet u openssl:

# Verificación de SMTP (puerto 25)
telnet mail.yourdomain.com 25                   # Debería responder 220 mail.yourdomain.com ESMTP Postfix
# Verificación de SMTPS (puerto 465)
openssl s_client -connect mail.yourdomain.com:465 -crlf # Debería mostrar información del certificado y el saludo SMTP
# Verificación de IMAPS (puerto 993)
openssl s_client -connect mail.yourdomain.com:993 -crlf # Debería mostrar información del certificado y el saludo IMAP
Envío de un correo electrónico de prueba:

Cree un buzón de correo en Mailcow (por ejemplo, [email protected]) y envíe un correo electrónico desde él a una dirección externa (por ejemplo, Gmail). Luego, envíe un correo electrónico desde una dirección externa a [email protected]. Verifique los encabezados de los correos electrónicos recibidos en el servicio externo para asegurarse de la corrección de los registros SPF, DKIM y DMARC (esto generalmente indica que el correo electrónico pasó la autenticación).

Utilice herramientas en línea como mail-tester.com para enviar un correo electrónico de prueba y obtener un informe detallado sobre la calidad de la configuración de su servidor de correo, incluyendo la reputación de la IP, la corrección de los registros DNS y las puntuaciones de spam.

6. Configuración del cliente web (SOGo)

Mailcow viene con un cliente web SOGo, accesible en la misma dirección que el panel de administración. Los usuarios pueden iniciar sesión en SOGo utilizando sus direcciones de correo electrónico completas (por ejemplo, [email protected]) y contraseñas.

El cliente web SOGo proporciona acceso a correo, calendario y contactos. Puede configurar su apariencia y algunas funciones a través del panel de administración de Mailcow.

Copias de seguridad y mantenimiento

Diagrama: Copias de seguridad y mantenimiento
Diagrama: Copias de seguridad y mantenimiento

Las copias de seguridad fiables y el mantenimiento regular son clave para el funcionamiento estable de cualquier servidor, especialmente un servidor de correo. Mailcow almacena todos sus datos en el directorio data/ dentro del directorio de instalación.

1. Qué respaldar

Para Mailcow, es necesario respaldar los siguientes componentes:

  • Directorio data/: Esta es la parte más importante. Contiene todos los buzones de correo, bases de datos (MariaDB), configuraciones de Rspamd, ClamAV y otros datos de los contenedores.
  • Archivo mailcow.conf: Contiene las configuraciones principales de Mailcow.

2. Script simple de copia de seguridad automática

Se recomienda usar un script que realice copias de seguridad regularmente, por ejemplo, diariamente a través de cron. Antes de iniciar la copia de seguridad, es aconsejable detener Mailcow para evitar problemas de integridad de datos, especialmente con la base de datos. Sin embargo, en la mayoría de los casos, si la copia de seguridad se realiza rápidamente, se puede prescindir de la detención, pero esto no garantiza una consistencia del 100%. Mailcow también proporciona una utilidad de copia de seguridad integrada.


#!/bin/bash

# Ruta al directorio de Mailcow
MAILCOW_DIR="/opt/mailcow-dockerized"
# Directorio para almacenar copias de seguridad
BACKUP_DIR="/var/backups/mailcow"
# Fecha para el nombre del archivo de copia de seguridad
DATE=$(date +%Y-%m-%d_%H-%M-%S)
# Nombre del archivo de copia de seguridad
BACKUP_FILENAME="mailcow_backup_${DATE}.tar.gz"
# Número de días para retener copias de seguridad antiguas
RETENTION_DAYS=7

# Creamos el directorio para las copias de seguridad, si no existe
mkdir -p "${BACKUP_DIR}"

echo "[$(date)] Iniciando copia de seguridad de Mailcow..."

# Opcional: Detener Mailcow para la consistencia de la base de datos
# echo "[$(date)] Deteniendo contenedores de Mailcow..."
# cd "${MAILCOW_DIR}" && docker compose stop

# Creando archivo con datos de Mailcow...
echo "[$(date)] Creando archivo de datos de Mailcow..."
tar -czf "${BACKUP_DIR}/${BACKUP_FILENAME}" -C "${MAILCOW_DIR}" data mailcow.conf --remove-files

# Opcional: Iniciar Mailcow después de la copia de seguridad
# echo "[$(date)] Iniciando contenedores de Mailcow..."
# cd "${MAILCOW_DIR}" && docker compose start

echo "[$(date)] Copia de seguridad de Mailcow completada: ${BACKUP_DIR}/${BACKUP_FILENAME}"

# Eliminando copias de seguridad antiguas
echo "[$(date)] Limpiando copias de seguridad antiguas (más de ${RETENTION_DAYS} días)..."
find "${BACKUP_DIR}" -type f -name "mailcow_backup_*.tar.gz" -mtime +"${RETENTION_DAYS}" -delete
echo "[$(date)] Limpieza completa."

Guarde este script, por ejemplo, como /usr/local/bin/backup_mailcow.sh, y hágalo ejecutable:


sudo chmod +x /usr/local/bin/backup_mailcow.sh

Y añádalo a cron para su ejecución diaria (por ejemplo, a las 3 de la mañana):


sudo crontab -e                                 # Abrimos crontab para root (o para su usuario, si tiene permisos)

Añada la línea:


0 3 * * * /usr/local/bin/backup_mailcow.sh > /var/log/mailcow_backup.log 2>&1

3. Dónde almacenar las copias de seguridad

Es extremadamente importante almacenar las copias de seguridad fuera del mismo servidor donde se ejecuta Mailcow. En caso de fallo del servidor, las copias de seguridad locales se perderán con él. Opciones recomendadas:

  • Almacenamiento externo compatible con S3: Servicios como AWS S3, Backblaze B2, DigitalOcean Spaces ofrecen almacenamiento de objetos fiable y asequible. Utilice rclone o aws cli para la sincronización.
  • VPS separado: Puede usar un segundo VPS, menos potente, como almacenamiento de copias de seguridad, sincronizándolos mediante rsync a través de SSH.
  • Almacenamiento en red local (NAS): Si tiene su propio almacenamiento en red, puede configurar el montaje y la copia allí.

Ejemplo de envío de copias de seguridad a S3 usando rclone (después de su instalación y configuración):


# Añada al script backup_mailcow.sh después de crear el archivo:
echo "[$(date)] Subiendo copia de seguridad a S3..."
rclone copy "${BACKUP_DIR}/${BACKUP_FILENAME}" remote_s3_bucket:mailcow-backups/
echo "[$(date)] Subida a S3 completa."

4. Actualizaciones: rolling vs ventana de mantenimiento

Mailcow lanza regularmente actualizaciones que incluyen correcciones de seguridad, nuevas funciones y mejoras. Dado que Mailcow se basa en Docker, el proceso de actualización es relativamente sencillo.

Procedimiento de actualización:

cd /opt/mailcow-dockerized                      # Nos movemos al directorio de Mailcow
git pull                                        # Actualizamos el repositorio Mailcow-Dockerized a la última versión
docker compose pull                             # Descargamos las nuevas versiones de las imágenes Docker de Mailcow
docker compose up -d                            # Recreamos e iniciamos los contenedores con las nuevas imágenes

Después de ejecutar docker compose up -d, Docker Compose comparará la configuración actual con la nueva y actualizará solo aquellos contenedores cuyas imágenes o configuraciones hayan cambiado. Esto proporciona una actualización relativamente "rolling", minimizando el tiempo de inactividad.

Ventana de mantenimiento:

Aunque el proceso de actualización de Mailcow generalmente no requiere un tiempo de inactividad prolongado, para sistemas de correo críticos se recomienda realizar las actualizaciones en una "ventana de mantenimiento" predefinida. Esto permite notificar a los usuarios sobre una posible interrupción temporal del acceso al correo y le da tiempo para resolver problemas imprevistos, si surgieran.

Antes de actualizar, siempre se recomienda hacer una copia de seguridad completa. Esto permitirá revertir rápidamente a la versión de trabajo anterior en caso de problemas graves.

Solución de problemas + Preguntas frecuentes

En esta sección, abordaremos los problemas típicos que pueden surgir durante la instalación y operación de Mailcow, y responderemos a las preguntas frecuentes.

No puedo acceder a la interfaz web de Mailcow (https://mail.yourdomain.com)

Qué verificar:

  1. Registro DNS: Asegúrese de que el registro A (y AAAA, si usa IPv6) para su FQDN (mail.yourdomain.com) apunte a la dirección IP de su servidor. Use dig mail.yourdomain.com.
  2. Cortafuegos: Verifique que los puertos 80 (HTTP) y 443 (HTTPS) estén abiertos en UFW (sudo ufw status) y a nivel del proveedor de VPS.
  3. Estado de los contenedores Docker: Asegúrese de que los contenedores de Mailcow estén en ejecución: cd /opt/mailcow-dockerized && docker compose ps. Los contenedores nginx-mailcow y acme-mailcow deben estar en estado running.
  4. Registros de Nginx: Verifique los registros del contenedor nginx-mailcow en busca de errores: docker compose logs nginx-mailcow.
  5. Certificados Let's Encrypt: Si ve un error "NET::ERR_CERT_COMMON_NAME_INVALID" o similar, es posible que no se haya emitido un certificado SSL. Verifique los registros de acme-mailcow: docker compose logs acme-mailcow. Asegúrese de que el puerto 80 esté abierto para el desafío ACME.

Cómo solucionarlo: Corrija el registro DNS, abra los puertos en el cortafuegos, reinicie Mailcow (docker compose restart), si es necesario, solicite manualmente un certificado a través de la interfaz de Mailcow o reinicie el contenedor acme-mailcow.

Los correos electrónicos van a spam o no se entregan

Qué verificar:

  1. Registros DNS (SPF, DKIM, DMARC, MX): Esta es la causa más común. Use mail-tester.com o mxtoolbox.com para verificar todos sus registros DNS. Asegúrese de que el registro MX apunte a su FQDN, que SPF sea correcto, que el registro DKIM esté agregado y coincida con lo que generó Mailcow, y que DMARC esté configurado.
  2. Reputación de la dirección IP: Su dirección IP puede estar en listas negras. Verifíquela en mxtoolbox.com/blacklists.aspx. Si la IP está en una lista negra, contacte a su proveedor de VPS o solicite su exclusión de la lista.
  3. Registro PTR (DNS inverso): Asegúrese de que su dirección IP tenga un registro PTR configurado que apunte a su FQDN (mail.yourdomain.com). Esto se configura en el panel de control de su proveedor de VPS.
  4. Registros de Postfix/Rspamd: Verifique los registros de los contenedores postfix-mailcow y rspamd-mailcow en busca de errores al enviar/recibir correos.

Cómo solucionarlo: Corrija los registros DNS, configure el registro PTR, si la IP está en una lista negra, contacte al proveedor o solicite su eliminación. Use mail-tester.com para solucionar problemas paso a paso.

No puedo enviar/recibir correos electrónicos desde un cliente de correo (Outlook, Thunderbird)

Qué verificar:

  1. Configuración del cliente: Asegúrese de haber introducido correctamente el FQDN del servidor (mail.yourdomain.com), los puertos (IMAP 993 SSL/TLS, SMTP 465 SSL/TLS o 587 STARTTLS), la dirección de correo electrónico completa como nombre de usuario y la contraseña correcta.
  2. Cortafuegos: Verifique que los puertos 465, 587, 993, 143, 110, 995 estén abiertos en UFW y a nivel del proveedor.
  3. Estado de los contenedores: Asegúrese de que los contenedores postfix-mailcow (SMTP) y dovecot-mailcow (IMAP/POP3) estén en ejecución.
  4. Registros: Verifique los registros de postfix-mailcow y dovecot-mailcow en busca de errores de autenticación o problemas de conexión.

Cómo solucionarlo: Ajuste la configuración del cliente de correo, verifique y abra los puertos necesarios, reinicie los contenedores correspondientes.

¿Qué configuración mínima de VPS es adecuada?

Para un pequeño número de usuarios (1-5) y tráfico moderado, la configuración mínima debe incluir 2 núcleos de CPU, 4 GB de RAM y 50 GB de SSD. El disco SSD es críticamente importante para el rendimiento. Sin embargo, para un funcionamiento más cómodo y la posibilidad de escalabilidad, se recomienda tener 4 núcleos de CPU, 8 GB de RAM y 100-200 GB de SSD. Siempre elija un proveedor con buena reputación y la posibilidad de obtener una dirección IP "limpia".

¿Qué elegir: VPS o dedicado para esta tarea?

La elección entre un VPS y un servidor dedicado depende de la escala de su tarea. Para la mayoría de los usuarios individuales, equipos pequeños (hasta 20-30 personas) o proyectos SaaS pequeños, un VPS con las características recomendadas será más que suficiente y económicamente ventajoso. Un servidor dedicado se vuelve necesario si planea atender a un gran número de usuarios (más de 50-100), procesar un volumen muy alto de correo, tiene requisitos estrictos de rendimiento y aislamiento completo de recursos, o necesita almacenar terabytes de datos de correo. Un servidor dedicado ofrece el máximo rendimiento y control, pero conlleva un costo más alto y la necesidad de una gestión completa del hardware.

¿Cómo actualizar Mailcow?

La actualización de Mailcow se realiza en tres pasos: git pull en el directorio de Mailcow para obtener los últimos scripts y configuraciones, docker compose pull para descargar nuevas imágenes Docker, y docker compose up -d para desplegarlas. Se recomienda hacerlo regularmente para recibir actualizaciones de seguridad y nuevas funciones. Siempre haga una copia de seguridad antes de actualizar.

¿Cómo agregar un nuevo usuario o dominio?

Toda la gestión de usuarios, dominios, alias y grupos de distribución se realiza a través de la interfaz web de Mailcow. Después de iniciar sesión como administrador, vaya a Configuration > Mail Setup. Allí encontrará las secciones Domains para agregar nuevos dominios y Mailboxes para crear nuevos buzones de correo. Para cada nuevo dominio, asegúrese de configurar todos los registros DNS necesarios (A, AAAA, MX, SPF, DKIM, DMARC).

Conclusiones y próximos pasos

Esquema: Conclusiones y próximos pasos
Esquema: Conclusiones y próximos pasos

¡Felicidades! Ha instalado y configurado Mailcow con éxito en su VPS, obteniendo un potente y seguro servidor de correo autoalojado a su entera disposición. Ahora tiene control total sobre su correo electrónico, lo que le proporciona privacidad, independencia y flexibilidad, características no disponibles en las soluciones en la nube. Ha dominado no solo la instalación, sino también la configuración básica, así como los principios de copia de seguridad y mantenimiento.

Para aprovechar al máximo su nuevo servidor de correo, le recomendamos los siguientes pasos:

  • Optimización antispam: Explore la configuración de Rspamd en la interfaz web de Mailcow. Puede configurar listas negras/blancas, establecer reglas de filtrado más agresivas o integrar fuentes de datos adicionales para mejorar la eficacia de la lucha contra el spam.
  • Monitoreo del servidor: Configure un monitoreo básico de su VPS (por ejemplo, con Prometheus/Grafana o Zabbix) para rastrear la carga de CPU, RAM, disco y tráfico de red. Esto ayudará a identificar posibles problemas antes de que afecten el funcionamiento del correo.
  • Dominios y usuarios adicionales: Si planea usar Mailcow para varios proyectos o equipos, agregue nuevos dominios y cree los buzones de correo correspondientes. Asegúrese de que todos los registros DNS estén configurados correctamente para cada nuevo dominio.
  • Estudio de la documentación de Mailcow: La documentación oficial de Mailcow contiene mucha información útil sobre funciones avanzadas, integraciones y resolución de problemas específicos. Es un excelente recurso para seguir dominando el sistema.

¿Te fue útil esta guía?

Instalación de Mailcow en VPS: guía completa para correo self-hosted con Docker
support_agent
Valebyte Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.