Mensajería de equipo de código abierto a escala: alojar Mattermost por tu cuenta

Cada pocos años una empresa mira su factura de Slack, suma el coste por usuario, cae en la cuenta de que una década de conversación interna está en la base de datos de otro y en otra jurisdicción, y se pregunta si hay otra forma. La hay. Mattermost es la respuesta autoalojada más creíble, y lo lleva siendo bastante tiempo.
Es también la herramienta que más se malinterpreta antes del despliegue, porque la edición gratuita que uno cree estar obteniendo casi nunca es la que acaba ejecutando. Esta guía trata de qué es Mattermost en realidad, qué incluye de verdad la versión gratuita y los tres problemas operativos que alcanzan a casi todo el que se autoaloja por primera vez.
Qué es Mattermost
Un servidor en Go, una base de datos PostgreSQL, un cliente web en React y aplicaciones nativas de escritorio y móvil. Canales, hilos, compartición de archivos, búsqueda, comandos de barra, webhooks entrantes y salientes, bots y un marco de plugins. Si has usado Slack serás productivo en una tarde, y el resto también, lo cual importa más que cualquier lista de funciones cuando le pides a toda una empresa que se mude.
Alrededor de ese núcleo están los Playbooks, para el trabajo de incidentes y procesos guiado por listas de verificación, y Calls, para audio, vídeo y compartir pantalla. El catálogo de integraciones cubre a los sospechosos habituales: GitLab, GitHub, Jira, Jenkins, PagerDuty. En ChatOps es donde el producto es realmente fuerte, y por eso tiene tantos seguidores entre equipos de ingeniería y operaciones, y entre organizaciones de defensa y del sector público que no pueden poner su tráfico en un SaaS comercial.
El hecho arquitectónico importante es que todo eso corre sobre una infraestructura que eliges tú. El mismo principio que autoalojar la analítica con Matomo o la automatización de marketing con Mautic. Los mensajes están en tu base de datos, los archivos en tu almacenamiento de objetos, y nadie puede cambiar la política de retención ni el precio sin preguntarte.
El panorama de licencias, dicho sin rodeos
Aquí es donde la gente se confunde, así que conviene ser directo.
Team Edition es la de código abierto. Licencia MIT, gratuita, sin tope de usuarios, y es la que la mayoría de quienes se autoalojan ejecuta en realidad. Tienes mensajería, canales, hilos, búsqueda, integraciones, webhooks y el marco de plugins. No tienes inicio de sesión único con SAML o AD/LDAP, ni exportación para cumplimiento, ni búsqueda empresarial, ni clúster de alta disponibilidad, ni cuentas de invitado.
Entry es una edición comercial gratuita. Desbloquea el conjunto avanzado de funciones pero te limita: el historial de mensajes está acotado, el número de ejecuciones de playbooks está acotado, el soporte es solo comunitario y está pensada para equipos de menos de unas cincuenta personas. Es una buena manera de evaluar el producto de pago. Es una mala manera de construir un hogar permanente para el historial de conversación de tu empresa, porque ese límite de historial cae justo sobre lo que acabará importándote.
Professional, Enterprise y Enterprise Advanced son los niveles de pago. Professional añade SSO, MFA y permisos avanzados. Enterprise añade sincronización con AD/LDAP, automatización de cumplimiento, búsqueda empresarial, alta disponibilidad y Playbooks a escala. Enterprise Advanced añade tratamiento de información clasificada, controles de confianza cero y despliegue en redes aisladas, y es el nivel en el que están los usuarios de defensa y administración pública. Mattermost ya no publica precios por usuario, así que cuenta con una conversación comercial.
La decisión que afronta la mayoría de los equipos es más simple de lo que sugiere la lista de niveles. Si necesitas SAML contra tu proveedor de identidad, vas a pagar. Si puedes vivir con cuentas locales u OAuth de GitLab, Team Edition sostendrá una organización sorprendentemente grande.
La instalación
Un despliegue pequeño
Para un equipo de decenas a unos pocos cientos de personas, un solo VPS bien dimensionado basta de verdad. La propia guía de Mattermost sitúa de uno a mil usuarios en una vCPU y 2 GB de RAM, lo cual es optimista como lo son siempre los mínimos del fabricante. Dale cuatro núcleos y 8 GB y no volverás a pensar en ello.
La pila es Mattermost, PostgreSQL y un proxy inverso que termina TLS. Traefik con Let's Encrypt es lo que menos trabajo da:
services:
mattermost:
image: mattermost/mattermost-team-edition:latest
restart: unless-stopped
environment:
- MM_SQLSETTINGS_DRIVERNAME=postgres
- MM_SQLSETTINGS_DATASOURCE=postgres://mmuser:your_secure_password@db:5432/mattermost?sslmode=disable
- MM_SERVICESETTINGS_SITEURL=https://chat.example.com
volumes:
- mm_data:/mattermost/data
- mm_config:/mattermost/config
depends_on:
- db
db:
image: postgres:16-alpine
restart: unless-stopped
environment:
- POSTGRES_USER=mmuser
- POSTGRES_PASSWORD=your_secure_password
- POSTGRES_DB=mattermost
volumes:
- db_data:/var/lib/postgresql/data
volumes:
mm_data:
mm_config:
db_data:
Configura SiteURL correctamente antes de invitar a nadie. Una SiteURL equivocada o ausente rompe las notificaciones push, las devoluciones de llamada de OAuth y las vistas previas de enlaces, de un modo molesto de depurar después y trivial de evitar ahora.
Una advertencia que vale la pena repetir porque el propio fabricante la hace: los contenedores están bien para evaluar y para instalaciones de producción pequeñas, pero esa vía no te da clustering ni alta disponibilidad de fábrica. Si los necesitas, despliega directamente sobre Linux o usa el operador de Kubernetes.
Un despliegue de producción
PostgreSQL 14 o superior. El soporte de MySQL queda obsoleto a partir de la v11, así que si montas algo ahora, no empieces con MySQL. Amazon Aurora PostgreSQL está soportado y es la opción gestionada sensata en AWS.
Pon los archivos en almacenamiento de objetos compatible con S3 desde el primer día. El sistema de archivos local funciona y es el valor por defecto, y es también lo que en silencio vuelve tu servidor con estado, tus copias de seguridad enormes y tu migración dolorosa. Cambiar después significa mover archivos y reescribir rutas. Cambiar en la instalación significa fijar un puñado de valores de configuración.
Para alta disponibilidad necesitas el nivel Enterprise: varios nodos de aplicación tras un balanceador, un almacén de objetos compartido y una base de datos con réplicas de lectura. Para búsqueda a escala querrás Elasticsearch u OpenSearch, también Enterprise. La búsqueda de texto completo de PostgreSQL sirve para unos cientos de personas y unos millones de mensajes, y la búsqueda CJK ahora funciona por defecto en PostgreSQL, algo que antes era motivo real para comprar el complemento de búsqueda.
Las tres cosas que salen mal
Todo lo anterior está en la documentación. Esto es lo que la gente descubre en producción.
Las notificaciones push no son gratis como esperas
El push móvil tiene que pasar por las redes de Apple y Google, lo que significa que algo debe custodiar los certificados de firma. Mattermost opera un Test Push Notification Service que funciona nada más instalar y que explícitamente no es para producción. El Hosted Push Notification Service es el de producción y viene con licencia de pago.
La tercera opción es ejecutar tu propio push proxy. Está bien documentado y es perfectamente viable, pero implica construir y distribuir tu propia aplicación móvil con tus credenciales de Firebase y APNs, es decir, una relación con las tiendas de aplicaciones y un proceso de publicación, no una tarde.
Decide cuál de las tres antes de desplegar a los teléfonos, no después de que la primera persona pregunte por qué solo recibe mensajes con la aplicación abierta. Este único punto tumba más migraciones a Mattermost que ninguna otra cosa.
Calls necesita algo más que un puerto
Calls tiene dos modos. El modo integrado ejecuta el servicio de medios dentro del servidor de Mattermost y se recomienda por debajo de unos cincuenta usuarios activos. Por encima querrás rtcd, un servicio aparte que mantiene el tráfico de medios fuera de tu servidor principal y escala horizontalmente. rtcd exige Enterprise.
En ambos casos, los clientes deben alcanzar el servicio de medios por UDP en el puerto 8443, y ese puerto tiene que estar abierto en la máquina donde corre dicho servicio. Tu proxy inverso nginx no lo reenviará, porque nginx no está en la ruta UDP. La mitad de los hilos del tipo «las llamadas no conectan» se reducen a una regla de cortafuegos que nunca se añadió.
En el nivel gratuito, espera llamadas uno a uno con límite de tiempo en lugar de llamadas de grupo ilimitadas. Si el vídeo para toda la empresa es un requisito, ponlo en el presupuesto.
Alguien tiene que operarlo
La comparación honesta de costes no es licencia contra cero. Es licencia contra infraestructura más la persona que aplica los parches. Mattermost publica versiones con frecuencia, querrás mantenerte al día por seguridad, y las actualizaciones traen migraciones de base de datos que conviene probar en algún sitio que no sea producción.
Para un equipo que ya opera su propia infraestructura esto es trabajo marginal y las cuentas salen de calle. Para una empresa de diez personas sin capacidad de operaciones, una factura de SaaS puede salir genuinamente más barata que las tardes de martes que se van en ello. Sé honesto sobre en cuál de los dos casos estás.
Salir de Slack
Mattermost tiene una ruta de importación desde los archivos de exportación de Slack, y funciona, con salvedades que conviene conocer de antemano. Los mensajes de canales públicos y los usuarios pasan bien. Los canales privados y los mensajes directos dependen de lo que tu plan de Slack te permita exportar siquiera. Los hilos, los adjuntos, los emoji personalizados y las integraciones requieren atención, y algunos hay que rehacerlos.
El enfoque que funciona: importar el historial como un archivo consultable y tratar la fecha de corte como un comienzo limpio. Intentar reproducir cada comportamiento de Slack al detalle es la forma en que una migración de dos semanas se convierte en una de dos trimestres.
Ejecuta ambos en paralelo un par de semanas, mueve primero a un equipo y fija públicamente la fecha de apagado desde el principio. Las migraciones de chat fracasan por lo social, no por lo técnico.
El ángulo europeo
Para las empresas de la UE esto no va solo de coste. Autoalojar sitúa la comunicación interna dentro de un perímetro que controlas, y eso cambia varias conversaciones a la vez: el análisis de transferencias del RGPD, el escrutinio de la cadena de suministro de NIS2 y las preguntas de soberanía que aparecen cada vez más en la contratación pública y que son el tema entero de la Ley de desarrollo de la nube y la IA.
El chat interno es una de las concentraciones más densas de material confidencial que tiene una empresa. Ahí están el detalle de los incidentes, nombres de clientes, credenciales que nadie debería haber pegado pero pegó, y todas las negociaciones comerciales en curso. Cuando alguien pregunta dónde viven esos datos, poder responder con una región y un rack en lugar de con una lista de subencargados vale algo.
Cuándo no molestarse
Si sois quince personas, vuestros requisitos de cumplimiento son ligeros y nadie quiere hacerse cargo de un servidor, usad el SaaS. El ahorro no compensará la atención.
Si necesitas integración profunda con un ecosistema en el que ya vives, mira con lupa qué perderías. Los equipos dentro de un parque de Microsoft 365 reciben gratis muchas cosas que tendrías que reconstruir.
Y si el motor es la antipatía de una persona ruidosa hacia un proveedor y no un requisito real de coste, control o jurisdicción, la migración se atascará en torno al sesenta por ciento de adopción, que es el peor resultado posible para una herramienta de comunicación.
Cómo podemos ayudar
Desplegamos y operamos infraestructura de código abierto autoalojada para empresas que trabajan en Europa, incluidas las partes poco lucidas: push proxies, migraciones a almacenamiento de objetos, rutas de actualización y la integración de identidad que hace que un despliegue de chat cuaje.
Si quieres una instalación de Mattermost bien dimensionada, una migración desde Slack planificada por alguien que ya la ha hecho, o una respuesta honesta sobre si autoalojar merece la pena para tu equipo, escribe a office@c9group.dev. Más sobre nuestro trabajo de infraestructura en la página de optimización de costes en AWS.
Si estás montando una pila autoalojada completa, el mismo razonamiento aplica a la analítica y a la automatización de marketing.
Publicado: 8 de agosto de 2026 Categorías: Colaboración, Código Abierto, Privacidad