Por qué migrar desde Slack se vuelve urgente
En 2024, Hack Club recibió una exigencia de Slack: 50 000 $ de inmediato y después 200 000 $ al año, so pena de que se eliminaran once años de historial comunitario. No es un caso aislado: es la lógica de un proveedor que sabe que su historial es un activo estratégico y que lo ha convertido en la palanca de su plan Enterprise. Dos mecanismos de bloqueo se acumulan. El primero es el historial: en los planes gratuito y Pro, Slack solo expone una ventana deslizante; acceder a la totalidad exige el plan Business+ o Enterprise Grid. El segundo es el SSO: la conexión a través de su proveedor de identidad (Okta, Azure AD, Google Workspace) está reservada al plan Enterprise, facturado en torno a 20 $ por usuario y mes. Para un equipo de cincuenta personas, son 12 000 $ al año por una funcionalidad que Mattermost y Rocket.Chat ofrecen de forma nativa desde la instalación. La pregunta que se plantea no es, por tanto, «¿es bueno Slack?» —lo es—, sino «¿a qué precio aceptamos depender de un proveedor para acceder a nuestras propias conversaciones con clientes?».
Los beneficios concretos de autoalojar una mensajería de equipo
- Historial sin límite — todas sus conversaciones, canales y archivos adjuntos siguen accesibles indefinidamente y sin sobrecosto.
- SSO y LDAP nativos y gratuitos — conecte su directorio corporativo sin desbloquear un plan enterprise en el proveedor.
- Datos bajo su control — las conversaciones con clientes, los contratos discutidos por DM y los archivos compartidos permanecen en su infraestructura.
- Costo previsible — un VPS mensual fijo, no una suscripción indexada al crecimiento de su equipo.
- Integraciones a medida — webhooks, bots y API accesibles sin restricciones de plan.
- Cumplimiento más sencillo — retención configurable, exportación bajo demanda y audit log para responder a las exigencias legales o contractuales.
- Independencia frente a las decisiones del proveedor — sin cambios de tarifa sorpresa, sin una ventana de 30 días para adaptarse.
Mattermost vs Rocket.Chat vs Slack Enterprise
Desplace la tabla
| Criterio | Mattermost (self-hosted) | Rocket.Chat (self-hosted) | Slack Enterprise Grid |
|---|---|---|---|
| Licencia | MIT (servidor) / Apache 2.0 | AGPL-3.0 | Propietaria |
| RAM mínima | 2 GB (equipo < 50) | 4 GB (replica set de MongoDB obligatorio) | SaaS, sin servidor que gestionar |
| SSO / SAML / LDAP | Gratis en self-hosted | Gratis en self-hosted | ~20 $/usuario/mes (plan Enterprise) |
| Historial completo | Completo, en su disco | Completo, en su disco | Condicionado al plan de pago |
| Omnicanal (live chat, email, WhatsApp…) | Limitado (extensiones comunitarias) | Nativo y completo | No (solo mensajería interna) |
| Importación desde Slack | Herramienta oficial `mattermost import slack` | Importación de Slack desde la interfaz de administración | No aplica |
Requisitos del servidor antes de empezar
La elección entre Mattermost y Rocket.Chat se decide ya en los requisitos de hardware. Mattermost utiliza PostgreSQL y puede arrancar con 2 GB de RAM para un equipo de menos de cincuenta personas: un VPS de gama de entrada basta para una migración inicial. Rocket.Chat se apoya en MongoDB en modo replica set: incluso con un solo nodo, el replica set es obligatorio desde la versión 6, lo que eleva las necesidades a 4 GB de RAM como mínimo. En el plano del software, ambos requieren Docker y Docker Compose instalados, un subdominio dedicado (por ejemplo chat.votredomaine.com) con un certificado SSL válido, y un servidor SMTP para las notificaciones por email y las invitaciones. Abra el puerto 443 de entrada y compruebe que WebSocket no está filtrado por su firewall o su proxy: es el primer punto de bloqueo que aparece tras la instalación. Por último, prevea espacio en disco proporcional al volumen de archivos compartidos que piensa importar: el historial de Slack puede pesar varios gigabytes si su equipo comparte adjuntos con regularidad.
Exportar el historial de Slack
Acceder a la exportación desde la administración de Slack
Inicie sesión como administrador del espacio de trabajo y vaya a Configuración y administración > Gestión del espacio de trabajo > Importar/exportar datos. La pestaña Exportar está disponible en el plan Pro y superiores.
Elegir el rango de fechas y lanzar la exportación
Seleccione «Todos los mensajes» para exportar la totalidad del historial accesible. Slack genera un archivo ZIP que contiene un fichero JSON por canal público, los metadatos de los usuarios y la lista de los canales. Los canales privados y los DM solo se incluyen si dispone de un plan Business+ o Enterprise.
Descargar el archivo y comprobar su contenido
Cuando la exportación esté lista (de unos minutos a varias horas según el volumen), descargue el archivo ZIP. Descomprímalo localmente y compruebe que están las carpetas de canales, el archivo
users.jsonychannels.json. Son los tres archivos que espera la herramienta de importación de Mattermost.Transferir el archivo al VPS
Copie el archivo a su servidor con
scp slack_export.zip user@votre-vps:/opt/mattermost/imports/. Evite descomprimirlo en el servidor antes de la importación: la herramienta de Mattermost trabaja directamente sobre el ZIP.
Desplegar Mattermost en un VPS con Docker
Crear la estructura de carpetas
En el VPS, cree el directorio de trabajo:
mkdir -p /opt/mattermost/{config,data,logs,plugins,client/plugins,bleve-indexes,imports}. Estas carpetas se montarán como volúmenes Docker y contendrán la configuración, los datos de los usuarios y los archivos importados.Escribir el docker-compose.yml
Defina dos servicios:
postgres(imagenpostgres:15) con un volumen con nombre para los datos, ymattermost(imagenmattermost/mattermost-team-edition:latest). Conéctelos mediante una red interna de Docker y monte las cinco carpetas creadas en el paso anterior. Pase la variableMM_SQLSETTINGS_DATASOURCEapuntando al serviciopostgres. Exponga únicamente el puerto 8065 en loopback (127.0.0.1:8065:8065).Configurar el reverse proxy con Caddy
Cree un archivo
Caddyfilecon la siguiente entrada:chat.votredomaine.com { reverse_proxy localhost:8065 }. Caddy obtiene y renueva automáticamente el certificado Let's Encrypt. Reinicie Caddy después de comprobar que el subdominio apunta realmente a la IP del VPS.Arrancar la stack y crear el administrador
Ejecute
docker compose up -d, espere unos treinta segundos y revise los logs condocker compose logs -f mattermost. Abrahttps://chat.votredomaine.comen su navegador para crear la cuenta de administrador inicial mediante el asistente de configuración.Configurar el SMTP y las notificaciones
En Sistema > Notificaciones > Email, indique su servidor SMTP (host, puerto, credenciales). Envíe un email de prueba antes de continuar: las invitaciones de usuarios y las notificaciones de mensajes dependen de esta configuración.
Activar el SSO o LDAP
En Sistema > Autenticación, active LDAP o SAML según su directorio. Ambos están disponibles de forma gratuita en autoalojado, sin restricción de plan. Pruebe la conexión con una cuenta de servicio antes de invitar a sus usuarios.
Importar el historial de Slack en Mattermost
Preparar la importación con la herramienta oficial
La herramienta
mattermost import slackviene integrada en el binario de Mattermost. Desde el contenedor Docker, ejecute:docker compose exec mattermost mattermost import slack /mattermost/imports/slack_export.zip --team nomdevotreequipe. La herramienta convierte el formato JSON de Slack al formato Bulk Import de Mattermost y señala las posibles incompatibilidades.Lanzar el Bulk Import
Una vez hecha la conversión, Mattermost genera un archivo de importación en formato JSONL. Lance la importación real con
docker compose exec mattermost mattermost import bulk /mattermost/imports/mattermost_import.jsonl --workers 1. La opción--workers 1evita los conflictos de escritura en bases de datos de tamaño modesto.Comprobar los canales y usuarios importados
Cuando termine la importación, entre en la interfaz de Mattermost y compruebe que los canales públicos aparecen en el equipo, que los mensajes históricos son visibles con sus autores correctos y que los usuarios importados pueden iniciar sesión (recibirán un email de invitación para definir su contraseña).
Corregir los archivos adjuntos que falten
La exportación estándar de Slack no incluye los archivos adjuntos en los planes inferiores a Business+. Si faltan adjuntos, los mensajes aparecen con un enlace roto. Documente los canales afectados e informe a sus usuarios: los archivos críticos deberán adjuntarse manualmente.
Alternativa: Rocket.Chat para un soporte al cliente unificado
Si su necesidad va más allá de la mensajería interna e incluye un soporte al cliente en tiempo real, Rocket.Chat es una elección coherente para ese caso de uso. Su módulo omnicanal permite centralizar en una misma interfaz las conversaciones procedentes de un widget de live chat en su sitio, los emails entrantes, los mensajes de WhatsApp Business y los canales de Telegram. Los agentes de soporte ven una cola de tickets unificada, con el historial completo de cada contacto. Este posicionamiento distingue con claridad las dos herramientas: Mattermost es una mensajería de equipo estructurada, cercana a Slack en sus usos; Rocket.Chat es una plataforma de comunicación que absorbe además los canales de clientes externos. La contrapartida es una mayor complejidad en la instalación: el replica set de MongoDB es obligatorio, los recursos mínimos son más altos y la configuración omnicanal exige un ajuste cuidadoso de los enrutamientos y de los agentes. Para una agencia que gestiona intercambios con clientes y quiere consolidar mensajería interna y soporte en una sola plataforma, Rocket.Chat es el candidato natural. Para un equipo técnico que solo busca reemplazar Slack sin complejidad añadida, Mattermost es el camino más directo.
SSO y autenticación: aproveche el self-hosting
En autoalojado, LDAP, SAML 2.0 y la autenticación por certificado de cliente están disponibles sin restricción de plan ni sobrecosto. Configure desde el principio la conexión con su directorio (Active Directory, FreeIPA o su proveedor de identidad en la nube) para que sus usuarios no tengan que gestionar una cuenta más. Active también la autenticación de dos factores (TOTP) en los parámetros de seguridad: tanto Mattermost como Rocket.Chat la integran de forma nativa. Si pasa por un proxy de autenticación como Authelia o Authentik, compruebe que su reverse proxy transmite correctamente las cabeceras X-Forwarded-For y X-Real-IP antes de forzar la autenticación externa.
Solución de problemas: los errores más frecuentes
Cuatro problemas se repiten con regularidad tras una instalación correcta. El primero afecta a MongoDB y Rocket.Chat: si el contenedor arranca y luego se detiene con el error MongoServerError: not master, es que el replica set no se ha inicializado. Conéctese al shell de MongoDB con docker compose exec mongodb mongosh y ejecute rs.initiate(), una sola vez, en el primer arranque. El segundo problema afecta a los WebSockets: si Mattermost muestra «Conexión WebSocket perdida» en bucle, compruebe que su reverse proxy transmite las cabeceras Upgrade y Connection. Con Caddy es automático; con Nginx, añada proxy_http_version 1.1, proxy_set_header Upgrade $http_upgrade y proxy_set_header Connection upgrade en su bloque location. El tercero tiene que ver con las notificaciones móviles: las apps iOS y Android de Mattermost se conectan por defecto al servicio de notificaciones de Mattermost Inc. Si su política de seguridad lo prohíbe, compile su propio servidor de push o desactive las notificaciones móviles en los parámetros del sistema. El cuarto está ligado al SMTP: un envío de prueba que funciona pero invitaciones que nunca llegan suele indicar un problema de SPF o de DKIM en su dominio remitente. Compruebe sus registros DNS y pruebe el envío con mail-tester.com antes de migrar a sus usuarios.