En esta página
Día 11 - KM0 Mail en producción
Correo @km0digital.com con Postfix, Dovecot, Rspamd y Roundcube en mail.km0digital.com; DNS MX/SPF/DKIM/DMARC, relay OpenCloud y planes de fase 1b.
Introducción
El día 9 cerró precios, legal, registro OpenCloud y conversión. No publicamos entrada del día 10 (despliegue interno de correo sin artículo). El 14 de junio de 2026 activamos KM0 Mail: buzones @km0digital.com, webmail en mail.km0digital.com y relay SMTP para notificaciones de OpenCloud.
KM0 deja de depender de Gmail o APIs externas para el correo operativo del dominio y abre la puerta a verificación de registro, avisos de ideas y marketing sobre la misma infraestructura.
Resumen
Hitos del día
- Stack: repo AMVARA-CONSULTING/km0-mail con Postfix, Dovecot, Rspamd, Roundcube y PostgreSQL (Docker Compose).
- Hostname:
mail.km0digital.comen el mismo VPS que OpenCloud (116.202.10.106). - Webmail: Nginx + Let's Encrypt hacia Roundcube en loopback
:8080. - Operación: buzones
postmaster@ynoreply@; CLI./scripts/km0-mail-admin. - Seguridad: Rspamd + firma DKIM; fail2ban jail
km0-mail; UFW 25, 587, 993. - OpenCloud: relay local Postfix (
host.docker.internal:587, sin auth) con remitentenoreply@km0digital.com.
KM0 Mail
Arquitectura y flujo
Internet (MX @ → mail.km0digital.com)
↓
Postfix (:25 / :587 submission)
↓
Rspamd (anti-spam, DKIM signing)
↓
Dovecot (:993 IMAPS) → Maildir
↓
Roundcube (webmail, loopback :8080 → Nginx TLS)- Recepción: Postfix acepta correo entrante para
@km0digital.comy lo entrega en Maildir vía Dovecot LMTP. - Envío: clientes autenticados (587) y relay interno desde OpenCloud sin credenciales en la red Docker.
- Webmail: Roundcube consulta Dovecot; acceso público solo por HTTPS en el subdominio mail.
- Admin:
km0-mail-admin create-mailbox,alias,set-passworddocumentados en el runbook de km0-mail. - Issue de referencia: km0-mail #1 (Redmine #7605).
DNS
Entregabilidad
Sin registros correctos el correo llega a spam o rebota. La checklist completa está en docs/joker-dns-checklist.md del repo km0-mail.
- MX:
@→mail.km0digital.com. - SPF: registro TXT autorizando el servidor de envío KM0.
- DKIM: selector
mail._domainkeycon clave pública en DNS. - DMARC: política
p=nonecon informes apostmaster@km0digital.com. - PTR: Hetzner apunta a
mail.km0digital.com(coherente con HELO/EHLO).
OpenCloud
Integración fase 1 (parcial)
OpenCloud (notificaciones)
↓
host.docker.internal:587 (Postfix relay, sin auth)
↓
Postfix → Rspamd → salida Internet
Remitente: noreply@km0digital.com- km0-opencloud: variables
SMTP_*en.envyextra_hostsen compose para alcanzar Postfix del host. - Alcance: notificaciones del cloud ya salen por KM0 Mail; registro con verificación por email sigue pendiente (fase 1b).
- LDAP: sin unificación en fase 1; columna
mail_accounts.opencloud_uuidreservada para futuro.
Producto
Decisiones del día
- Precio: correo incluido de facto en la oferta KM0; decisión ejecutiva de tarifa después.
- Escala: objetivo >1000 buzones antes de fin de año.
- Legal: páginas /legal/ y /security/ aún no cubren
mail.km0digital.com(issue separado). - Servicios: tarjeta Email en la home sigue deshabilitada hasta fase 1b (issue separado).
Roadmap
Pendiente fase 1b
Lo siguiente está planificado pero no implementado aún en esta entrega:
- register-api: verificación de email vía Postfix local (sustituir Gmail/externo).
- km0-web
scripts/notify-idea-email.sh: relay local (hoy AutoMail API). - Marketing / tmp: SMTP local para campañas y entornos temporales.
- Legal y seguridad en km0-web: cubrir
mail.km0digital.com. - Bloque Email en servicios: habilitar tarjeta activa en la landing.
- Backup: cron maildir documentado en runbook.
- Fase 2: ClamAV, unificación LDAP, provisioning automatizado.
Verificación
Comprobar el día 11
- Webmail: abrir mail.km0digital.com y comprobar certificado TLS.
- MX:
dig +short MX km0digital.comdebe resolver amail.km0digital.com. - SPF:
dig +short TXT km0digital.comincluye registro SPF. - DKIM:
dig +short TXT mail._domainkey.km0digital.comdevuelve clave pública. - DMARC:
dig +short TXT _dmarc.km0digital.commuestra política y informes. - PTR:
dig +short -x 116.202.10.106coincide con el hostname del servidor mail. - Checklist: seguir joker-dns-checklist.md punto por punto.
- OpenCloud: disparar notificación de prueba y verificar remitente
noreply@km0digital.com.
Serie
Siguiente entrada
El día 12 recoge la charla con cliente sobre UX; el día 13 el meet 6: visibilidad, asociaciones (AMPAs, vecinos) y próximos pasos comerciales. Mientras tanto, prueba el webmail o consulta precios. Dudas: contacto.