Skip to main content
[ PIER ]

Matrix Synapse con PostgreSQL

El homeserver Matrix de referencia — conectado a PostgreSQL desde el día uno.

Service #chat#messaging#matrix#federation#postgresql

Matrix Synapse es la implementación de homeserver de referencia del protocolo Matrix — un estándar abierto, descentralizado y federado para chat en tiempo real, voz, video y mensajería cifrada de extremo a extremo. Esta plantilla envía Synapse más un backend PostgreSQL (la única base de datos soportada en producción para Synapse), pre-cableado para que la federación y las salas grandes funcionen correctamente desde el día uno.

Desplegar con Pier

  1. 1 Abre el panel de Pier y haz clic en Add service.
  2. 2 Elige Matrix Synapse with PostgreSQL en la lista de plantillas.
  3. 3 Elige la versión, asigna un nombre al servicio y Pier provisionará automáticamente el contenedor, el almacenamiento y los puertos.
  4. 4 Vincula un dominio si quieres HTTPS. Traefik genera el certificado de Let's Encrypt automáticamente.

¿Qué es Matrix Synapse?

Matrix es un estándar abierto para comunicación descentralizada y federada en tiempo real — chat, voz, video, archivos, cifrado de extremo a extremo. Synapse es el homeserver de referencia — la implementación original, mantenida por Matrix.org Foundation en Python, y la que envía cada feature spec primero.

Ejecuta un homeserver Synapse y tus usuarios (alice:example.com, bob:example.com) pueden chatear con usuarios en cualquier otro servidor Matrix — como email pero para chat. Los puentes vinculan salas Matrix a Telegram, Discord, Slack, WhatsApp, Signal, IRC y más, así que un solo cliente Element puede mostrar cada conversación.

Cómo lo despliega Pier

Esta plantilla corre Synapse más un backend PostgreSQL dedicado en un stack Compose. Postgres es la única base de datos soportada en producción para Synapse — SQLite no puede mantener el ritmo de uniones de federación en salas concurridas.

Puertos por defecto — 8008 (HTTP, detrás de Traefik). Adjuntas un dominio custom en Pier y Traefik maneja TLS. Synapse necesita que el nombre del servidor Matrix coincida con un archivo .well-known/matrix/server en el dominio apex; configúralo en las env vars de Pier o sírvelo desde un servicio Pier separado.

Después del primer lanzamiento, crea el usuario admin con register_new_matrix_user vía docker exec. Desde ahí, apunta cualquier cliente Element a tu URL de homeserver para iniciar sesión.

Cuándo NO usar Matrix Synapse

Si solo necesitas chat cerrado de una sola org (sin federación, sin puentes), una alternativa más ligera como Mattermost es más simple de operar. Si quieres las features cutting-edge del spec pero un servidor más pequeño, prueba matrix-synapse-sqlite (este catálogo) para uso personal/test, o Dendrite / Conduit para un homeserver ligero experimental. Synapse sigue siendo la respuesta correcta para cualquier despliegue con federación intensa o muchos puentes.

Características clave

Federado por diseño

Tu homeserver habla con cada otro servidor Matrix en la red abierta. Los usuarios de tu dominio pueden unirse a salas alojadas en cualquier lugar, y viceversa — como email, pero para chat.

Cifrado de extremo a extremo

E2EE nativo vía Olm/Megolm Double Ratchet. Los mensajes directos y salas privadas se cifran con claves por dispositivo; el servidor nunca ve texto plano.

Puentes a todo

Los puentes Matrix conectan salas a Telegram, Discord, Slack, WhatsApp, Signal, IRC, XMPP, Mattermost — ejecuta tu chat de equipo en Matrix sin forzar a cada contacto a migrar.

Voz, video y conferencias

Llamadas 1 a 1 vía WebRTC; llamadas grupales vía Element Call o puente Jitsi. Las conferencias escalan a docenas de participantes con SFU.

Backend PostgreSQL

La única base de datos soportada en producción para Synapse — SQLite no puede mantener el ritmo del tráfico de federación. Esta plantilla conecta Synapse a un Postgres dedicado para saltar el escollo de escalado más común.

Gobernanza abierta

Spec mantenido por Matrix.org Foundation (sin fines de lucro). Cualquiera puede ejecutar un homeserver, cualquiera puede implementar un cliente. Ningún proveedor controla el protocolo.

Casos de uso

Chat de equipo autohospedado

Reemplaza Slack / Discord / Teams con un homeserver que tu organización posee. Los clientes Element web/móvil/escritorio dan un UX pulido sin perder soberanía de datos.

Chat de comunidad / proyecto

Ejecuta un servidor Matrix comunitario para un proyecto open-source, universidad o DAO. La federación significa que los usuarios mantienen su identidad Matrix existente si la tienen.

Mensajería segura para entornos de alta confianza

Gobiernos (Francia, Alemania, Suecia), contratistas de defensa y organizaciones de salud despliegan Matrix para mensajería E2EE donde Slack/Teams no pueden ser aprobados.

Espacio de trabajo con puentes

Un cliente Element mostrando tus salas Matrix + canales de Telegram, WhatsApp y Discord con puentes. Deja de hacer malabares con cuatro apps de chat.

Plataformas de bots y ChatOps

La API abierta de Matrix y los frameworks de bots (matrix-bot-sdk, maubot) hacen la automatización más simple que alternativas de jardín amurallado.

Ejemplos de código

Registro del primer usuario (admin) bash
docker exec -it pier-synapse-synapse \
  register_new_matrix_user \
    -u alice -p strongpassword -a \
    -c /data/homeserver.yaml \
    http://localhost:8008
Prueba de federación bash
curl https://federationtester.matrix.org/api/report?server_name=matrix.example.com | jq .
Archivos de descubrimiento .well-known bash
# /.well-known/matrix/server (puerto 443 de matrix.example.com)
{"m.server": "matrix.example.com:443"}

# /.well-known/matrix/client
{
  "m.homeserver": { "base_url": "https://matrix.example.com" },
  "m.identity_server": { "base_url": "https://vector.im" }
}
Llamada a la API de administración bash
curl -X POST -H "Authorization: Bearer $ADMIN_TOKEN" \
  -d '{"deactivated": true}' \
  https://matrix.example.com/_synapse/admin/v1/deactivate/@spammer:matrix.example.com

Comparativa

vs Element (el cliente) + Synapse (el servidor) Element es el cliente Matrix más popular; Synapse es el servidor de referencia. Esta plantilla envía el servidor. Los clientes Element (web, iOS, Android, escritorio) conectan desde cualquier lugar — apúntalos a tu URL de homeserver.
vs Dendrite, Conduit Homeservers Matrix alternativos en Go y Rust. Más ligeros que Synapse pero menos completos en features. Synapse sigue siendo el default de producción para despliegues con federación intensa.
vs Mattermost / Rocket.Chat Federación cerrada (un servidor por org). Más fácil de operar pero sin federación cruzada, sin puentes Matrix, sin E2EE por defecto. Elige Matrix cuando necesites federación abierta; Mattermost/Rocket para un despliegue cerrado de una sola org.
vs Slack / Discord / Teams Solo SaaS, sin self-host, sin E2EE, jardines amurallados. Matrix es la alternativa abierta — federado, autohospedado, E2EE por defecto en DMs.

Preguntas frecuentes

¿Por qué PostgreSQL y no SQLite?
SQLite está bien para homeservers diminutos de un solo usuario pero no puede mantener el ritmo de uniones de federación en salas concurridas (matrix.org HQ, comunidades públicas grandes). Producción Synapse necesita Postgres. Esta plantilla lo conecta por ti.
¿Qué configuración de dominio necesito?
Synapse necesita un nombre de servidor Matrix (ej. matrix.example.com) que coincida con el archivo .well-known/matrix/server servido en example.com. El nombre de servidor es permanente — no puedes cambiarlo sin re-registrar cada usuario.
¿Cómo deshabilito el registro abierto?
Establece enable_registration a false en homeserver.yaml (default). Usa el secret de registro para crear usuarios vía el script de admin, o configura un sistema de tokens de registro.
¿Y la voz y el video?
Las llamadas 1 a 1 funcionan out of the box (WebRTC). Para llamadas grupales y conferencias, ejecuta Element Call o empareja Synapse con una instancia Jitsi. Un servidor TURN (coturn) es necesario para usuarios detrás de NAT estricto.
¿Qué tan grande puede ser un único Synapse?
Synapse escala verticalmente bien hasta miles de usuarios activos en un solo nodo con workers. Más allá, las uniones de federación en salas enormes (10k+ miembros) son el cuello de botella — considera un homeserver alterno (Dendrite/Conduit) para despliegues muy pequeños o experimentales.
¿Puentes a otras plataformas?
matrix.org mantiene puentes para Telegram (mautrix-telegram), Discord, WhatsApp, Signal, IRC, XMPP, Slack y más. Cada puente es un servicio separado que habla con Synapse vía el appservice API.
¿Backups?
Respalda la base de datos PostgreSQL (pg_dump) más el volumen de media store de Synapse. Restora ambos en un servidor fresco con el mismo dominio para que un homeserver funcional vuelva en línea.

Servicios relacionados

Desplegar en tu VPS

Matrix Synapse es la implementación de homeserver de referencia del protocolo Matrix — un estándar abierto, descentralizado y federado para chat en tiempo real, voz, video y mensajería cifrada de extremo a extremo. Esta plantilla envía Synapse más un backend PostgreSQL (la única base de datos soportada en producción para Synapse), pre-cableado para que la federación y las salas grandes funcionen correctamente desde el día uno.

Desplegar este servicio →