De un host nuevo a un flujo de correo en producción en 8 pasos
Un servidor de correo depende más de su red que de su hardware: si el puerto 25 está bloqueado o falta el DNS inverso (PTR), los mensajes no se entregarán por mucha potencia de CPU que haya. Esta guía le lleva en estricto orden desde las comprobaciones previas, pasando por la instalación, DKIM de doble clave, TLS y la configuración móvil, hasta su primera entrega verificada.
Cómo arranca nextxch y llega a producción
nextxch reúne ESMTP, IMAP4rev2, POP3, JMAP, Exchange ActiveSync, CalDAV/CardDAV, ManageSieve, SpamGuard, el archivo GoBD WORM, el Admin Cockpit (/admin/) y nextxch Webmail PWA (/mail/) en un único binario con seguridad de memoria (~40 a 90 MB de RAM en reposo). En el primer arranque no se descarga nada de GitHub, y no se necesitan wrappers NSSM externos, Redis, Rspamd ni contenedores de webmail separados.
Requisitos previos del sistema y de la red (lista de comprobación previa)
Marque los 6 puntos siguientes antes de instalar. Cuatro de ellos se controlan fuera del servidor, en el panel de control de su alojamiento o de DNS.
| Puerto | Protocolo / servicio | Dirección | Requisito y recomendación |
|---|---|---|---|
25 / TCP | ESMTP (MX de servidor a servidor + STARTTLS/DANE) | Entrada y salida | Obligatorio - Imprescindible para recibir y entregar correo de Internet. |
443 / TCP | HTTPS (/admin/, /mail/, JMAP, ActiveSync, DAV, MTA-STS) | Entrante (+ saliente) | Obligatorio - Sirve Webmail, Admin, Mobile Push, DAV, JMAP y ACME. |
465 / TCP | Envío SMTPS (TLS implícito, RFC 8314) | Entrante | Obligatorio - Puerto de envío preferido con TLS implícito (RFC 8314). |
587 / TCP | Envío SMTP (STARTTLS) | Entrante | Obligatorio - Envío estándar con STARTTLS para Outlook, impresoras y ERP. |
993 / TCP | IMAPS (IMAP4rev2 TLS implícito) | Entrante | Obligatorio - IMAP4rev2 cifrado con push IDLE sin sondeo. |
80 / TCP | HTTP (ACME HTTP-01 & Autoconfig) | Entrante | Recomendado (opcional si se usa TLS-ALPN-01 o PFX del gateway). |
4190 / TCP | ManageSieve (STARTTLS) | Entrante | Opcional (el editor visual de Sieve del Webmail ya funciona a través del 443). |
143 / TCP | IMAP (STARTTLS) | Entrante | Opcional (es preferible el puerto 993 con TLS implícito). |
995 / TCP | POP3S (TLS implícito) | Entrante | Opcional (solo si POP3 está activado en Admin > Red; desactivado de forma predeterminada). |
110 / TCP | POP3 (STLS) | Entrante | Opcional (preferible el puerto 995 con TLS implícito). |
| Tamaño del despliegue | CPU | RAM | Disco y base de datos recomendada |
|---|---|---|---|
| 1 - 250 buzones | 2 vCPU | 1 - 2 GB | NVMe/SSD · SQLite WAL integrado + Zstandard (~40-90 MB de huella del servidor). |
| 250 - 2500 buzones | 4 vCPU | 4 - 8 GB | NVMe + S3 híbrido opcional · PostgreSQL 18 o Microsoft SQL Server (2019-2025). |
| Clúster de alta disponibilidad para más de 2500 | 8+ vCPU | 16+ GB | Nodos Active-Active en PostgreSQL 18 o SQL Server Always On + S3 Object Lock. |
Elección de plataforma y backend de almacenamiento
Todas las plataformas ofrecen exactamente las mismas funciones. Elija el método de implementación y el backend SQL que mejor se adapten a su equipo de operaciones.
| Plataforma | Método | Ideal para |
|---|---|---|
| Windows Server 2019-2025 | .msi / install.ps1 | Servicio SCM nativo de Windows sin Docker ni NSSM; ideal junto a Microsoft SQL Server o en migraciones desde hMailServer. |
| Linux (x86_64 & ARM64) | install.sh · .deb · systemd | Demonio systemd ligero sin root en servidores Debian, Ubuntu LTS, RHEL/Rocky o ARM64. |
| Docker Compose | nextxch/server:1.0.0 | Stacks de contenedores reproducibles en hosts Linux, VM de Proxmox, Synology, UGREEN y Unraid. |
| macOS & Kubernetes | launchd / Helm v3 | Servidores de oficina Mac mini (launchd) o clústeres Kubernetes Active-Active horizontales. |
Tutorial en 8 pasos: de la instalación al primer correo de prueba verificado
Seleccione abajo su plataforma de destino. Cada uno de los 8 pasos indica qué hace, muestra el comando exacto, confirma el resultado esperado y señala el error más común justo donde se produce.
Instalar el servicio y abrir los puertos del firewall
Descarga el paquete de la versión, verifica su resumen SHA-256 y registra el servicio en segundo plano y el directorio de datos persistente.
# PowerShell (Admin): Downloads .msi (v1.0.0), verifies SHA-256 & launches setup irm https://nextxch.com/install.ps1 | iex # Ensure Windows Defender Firewall permits inbound mail & HTTPS ports New-NetFirewallRule -DisplayName "nextxch" -Direction Inbound ` -Protocol TCP -LocalPort 25,80,443,465,587,993,4190 -Action Allow
# Debian / Ubuntu / RHEL / macOS: Verifies SHA-256 & registers systemd unit curl -fsSL https://nextxch.com/install.sh | sudo bash # If UFW is enabled, allow required mail & HTTPS ports: sudo ufw allow 25,80,443,465,587,993,4190/tcp
# Pulls SHA-256-verified nextxch/server:1.0.0 & writes docker-compose.yml curl -fsSL https://nextxch.com/install.sh | sudo bash -s -- \ --mode docker --domain firma.de --hostname mail.firma.de --admin admin@firma.de
Verificar el estado del servicio e iniciar sesión en /admin/
Confirme en los registros que los listeners se inician sin errores e inicie sesión en el Admin Cockpit con las credenciales de administrador definidas durante la instalación.
Get-Service nextxch # Open in browser: https://mail.firma.de/admin/ (or http://localhost/admin/)
sudo systemctl status nextxch sudo journalctl -u nextxch -n 30 --no-pager # Open in browser: https://mail.firma.de/admin/
docker compose ps docker compose logs --tail=30 nextxch # Open in browser: https://mail.firma.de/admin/
Configurar el dominio de correo y DKIM paralelo de doble clave
Abra Dominios y enrutamiento -> Gestionar dominio en /admin/. nextxch aprovisiona automáticamente dos pares de claves DKIM paralelos: RSA-2048 (selector s2026) y Ed25519 (selector s2026ed).
Activar el certificado TLS (ACME Let's Encrypt o PFX del gateway)
Abra Security & Certificates -> TLS & ACME. En cuanto mail.company.com se resuelva a su host, solicite un certificado de Let's Encrypt mediante HTTP-01 o TLS-ALPN-01 (puerto 443), o cargue un certificado .pfx/.pem desde su pfSense/gateway SSL.
Publicar registros DNS y ejecutar la verificación DNS en vivo
Copie los registros DNS calculados del DNS Advisor integrado (o exporte el archivo de zona BIND): MX, A/AAAA, SPF, ambos selectores DKIM (s2026 + s2026ed), DMARC, MTA-STS, TLS-RPT y, opcionalmente, DANE TLSA (3 1 1) y BIMI.
Refuerce el servidor antes de pasar a producción
Registre una llave de acceso (WebAuthn) o TOTP 2FA en su cuenta de administrador, mantenga los umbrales de SpamGuard en 4.5 / 9.0 con el greylisting inteligente activo y active el archivado WORM GoBD en los dominios comerciales.
Crear el primer buzón y conectar dispositivos móviles en 30 segundos
Cree su primer buzón de usuario en Cuentas y listas, inicie sesión en https://mail.company.com/mail/ y haga clic en 'Configuración de dispositivos' para generar un código QR o un enlace de incorporación con 1 clic apto para mensajería, con un perfil iOS/macOS firmado con CMS o Exchange ActiveSync.
Confirmar la entrega entrante y saliente mediante el MX Tester en vivo y Message Trace
Ejecute Diagnóstico y registros -> Outbound MX & DANE Tester contra gmail.com o una dirección externa; después envíe un correo real desde /mail/ y responda para verificar el flujo en ambos sentidos.
Funcionamiento detrás de pfSense / OPNsense, gateways SSL y proxies inversos
Si despliega detrás de pfSense, OPNsense, Sophos o HAProxy, configure estos tres ajustes para obtener diagnósticos precisos y conservar la IP real del cliente:
| Escenario | Configuración recomendada |
|---|---|
| Split-DNS / Hairpin-NAT | Configure una anulación de host Split-DNS en Unbound que apunte mail.company.com a la IP interna de la LAN, o active Pure NAT Reflection en su gateway. |
| Protocolo PROXY de HAProxy | Active el protocolo PROXY v1/v2 restringido al CIDR de su proxy de confianza, para que SPF y Auto-Ban vean la IP remota real en lugar de la IP del gateway. |
| Certificado del gateway | Sincronice el certificado .pfx/.pem renovado de su gateway con nextxch para los puertos 25/465/587/993; el SNI dinámico recarga en caliente los certificados actualizados sin tiempo de inactividad. |
Solución de problemas por síntoma (del error a la solución inmediata)
Haga clic a continuación en el síntoma que observa o escriba parte del mensaje de error en el cuadro de filtro rápido de arriba:
El comprobador externo de puertos informa 'Blocked / Timeout' aunque el servicio está en ejecución
TCP 25 / 465 / 993 Timeout
El servicio no puede enlazar un puerto al arrancar
Address already in use (:25 / :80 / :443)
El correo saliente a Gmail, Microsoft 365 o grandes ISP es rechazado
550-5.7.25 / 550-5.7.1 PTR missing
El Live DNS Inspector no encuentra su registro TXT de DKIM o DMARC publicado
NXDOMAIN s2026._domainkey
Let's Encrypt ACME no emite un certificado o el navegador muestra una advertencia TLS
ACME challenge failed
El iPhone abre un enlace de incorporación de WhatsApp / Teams sin iniciar de inmediato la instalación del perfil en Ajustes
iOS In-App WebView
El contenedor Docker se reinicia o no puede escribir en el volumen del host montado
Access to path '/var/lib/nextxch' denied
El cliente de correo no puede iniciar sesión por IMAP o SMTP
535 Authentication failed / TLS required
Próximos pasos: actualizaciones en 10 segundos, copias de seguridad y migración
Una vez confirmado el flujo de correo en ambos sentidos, su servidor está listo para producción. Tenga a mano estos tres flujos de trabajo operativos:
# 1) In-place upgrade (preserves configuration, certificates & mailboxes): # Linux / macOS: curl -fsSL https://nextxch.com/install.sh | sudo bash -s -- --update # Windows PowerShell (Administrator): irm https://nextxch.com/install.ps1 | iex # 2) Backup scope (only 2 paths): # - Config file: appsettings.Production.json (including license token) # - Data dir: Storage:DataDirectory (SQLite WAL / blobs / TLS certs) # or pg_dump / SQL Server backup when running an external DB cluster
Respuestas rápidas antes del primer arranque
¿nextxch necesita NSSM o Docker Desktop en Windows Server?
No. A diferencia de los servidores que requieren envoltorios de servicio NSSM en Windows, nextxch se registra de forma nativa en el Administrador de control de servicios (SCM) de Windows mediante nuestro instalador .msi oficial, sin Docker Desktop, WSL2 ni Hyper-V.
¿Necesita nextxch acceso a internet en el primer arranque para descargar su WebUI o sus reglas de spam?
No. Todo el Admin Cockpit (/admin/), el Webmail PWA de nextxch (/mail/), el motor SpamGuard y todos los listeners de protocolo están contenidos en el paquete verificado con SHA-256, lo que permite un arranque 100 % sin conexión/air-gapped.
¿Por qué el DNS inverso (PTR) debe coincidir antes de enviar el primer correo de prueba?
Los grandes receptores como Gmail, Microsoft 365 y los ISP europeos verifican que sus direcciones IPv4 e IPv6 públicas se resuelvan mediante PTR a su nombre de host SMTP EHLO exacto (p. ej., mail.company.com). La falta de registros PTR de IPv6 en hosts Dual-Stack es la causa n.º 1 de los rechazos 550-5.7.25.
¿Cómo funcionan las actualizaciones in situ una vez que el servidor está en producción?
Ejecute curl -fsSL https://nextxch.com/install.sh | sudo bash -s -- --update en Linux/macOS o irm https://nextxch.com/install.ps1 | iex en Windows (o use el actualizador de 1 clic en /admin/). Su appsettings.Production.json, los certificados TLS, las claves DKIM y el almacén de correo se conservan automáticamente.