
Synapse: servidor doméstico de Matrix escrito en Python/Twisted.
element-hq/synapse <https://github.com/element-hq/synapse>_Synapse es un homeserver de código abierto Matrix <https://matrix.org/>_ desarrollado desde 2019 hasta 2023 como parte de la Fundación Matrix.org. La Fundación Matrix.org no puede mantener el mantenimiento de Synapse y continúa siendo desarrollado por Element <https://github.com/element-hq/synapse>; además tienes la opción de otros homeservers Matrix <https://matrix.org/ecosystem/servers/>.
Consulta la entrada de blog The future of Synapse and Dendrite <https://matrix.org/blog/2023/11/06/future-of-synapse-dendrite/>_ para más información.
=========================================================================
Brevemente, Matrix es un estándar abierto para comunicaciones en internet, que soporta federación, cifrado y VoIP. Matrix.org tiene más que decir sobre los objetivos del proyecto Matrix <https://matrix.org/docs/guides/introduction>, y la especificación formal <https://spec.matrix.org/> describe los detalles técnicos.
.. contents::
La documentación de Synapse describe cómo instalar Synapse <https://matrix-org.github.io/synapse/latest/setup/installation.html>. Recomendamos usar imágenes Docker <https://matrix-org.github.io/synapse/latest/setup/installation.html#docker-images-and-ansible-playbooks> o paquetes Debian de Matrix.org <https://matrix-org.github.io/synapse/latest/setup/installation.html#matrixorg-packages>_.
.. _federation:
Synapse tiene una variedad de opciones de configuración <https://matrix-org.github.io/synapse/latest/usage/configuration/config_documentation.html>_ que se pueden usar para personalizar su comportamiento después de la instalación. Hay detalles adicionales sobre cómo configurar Synapse para federación aquí <https://matrix-org.github.io/synapse/latest/federate.html>_.
.. _reverse-proxy:
Se recomienda colocar un proxy inverso como nginx <https://nginx.org/en/docs/http/ngx_http_proxy_module.html>, Apache <https://httpd.apache.org/docs/current/mod/mod_proxy_http.html>, Caddy <https://caddyserver.com/docs/quick-starts/reverse-proxy>, HAProxy <https://www.haproxy.org/> o relayd <https://man.openbsd.org/relayd.8>_ delante de Synapse. Una ventaja de hacerlo es que permite exponer el puerto https predeterminado (443) a los clientes Matrix sin necesidad de ejecutar Synapse con privilegios de root. Para información sobre cómo configurar uno, consulta la documentación de proxy inverso <https://matrix-org.github.io/synapse/latest/reverse_proxy.html>_.
Las instrucciones para actualizar Synapse están en las notas de actualización_. Por favor, revisa estas instrucciones ya que la actualización puede requerir pasos adicionales para algunas versiones de Synapse.
.. _the upgrade notes: https://matrix-org.github.io/synapse/develop/upgrade.html
Synapse utiliza varias dependencias de plataforma como Python y PostgreSQL, y busca seguir las versiones upstream compatibles. Consulta la política de obsolescencia <https://matrix-org.github.io/synapse/latest/deprecation_policy.html>_ para más detalles.
Matrix sirve datos sin procesar proporcionados por el usuario en algunas APIs, específicamente los puntos finales del repositorio de contenido_.
.. _content repository endpoints: https://matrix.org/docs/spec/client_server/latest.html#get-matrix-media-r0-download-servername-mediaid
Si bien hacemos un esfuerzo razonable para mitigar los ataques XSS (por ejemplo, mediante el uso de CSP_), un homeserver Matrix no debe alojarse en un dominio que albergue otras aplicaciones web. Esto se aplica especialmente a compartir el dominio con clientes web Matrix y otras aplicaciones sensibles como el webmail. Consulta https://developer.github.com/changes/2014-04-25-user-content-security para más información.
.. _CSP: https://github.com/matrix-org/synapse/pull/1021
Idealmente, el homeserver no debería estar simplemente en un subdominio diferente, sino en un dominio registrado_ completamente diferente (también conocido como sitio de nivel superior o eTLD+1). Esto se debe a que algunos ataques_ aún son posibles mientras las dos aplicaciones compartan el mismo dominio registrado.
.. _registered domain: https://tools.ietf.org/html/draft-ietf-httpbis-rfc6265bis-03#section-2.3
.. _some attacks: https://en.wikipedia.org/wiki/Session_fixation#Attacks_using_cross-subdomain_cookie
Para ilustrar esto con un ejemplo, si tu Element Web u otra aplicación web sensible está alojada en A.example1.com, idealmente deberías alojar Synapse en example2.com. Alojarlo en B.example1.com ofrece cierta protección, por lo que también es aceptable en algunos escenarios. Sin embargo, no debes alojar tu Synapse en A.example1.com.
Ten en cuenta que todo lo anterior se refiere exclusivamente al dominio utilizado en la configuración public_baseurl de Synapse. En particular, no tiene relación con el dominio mencionado en los MXIDs alojados en ese servidor.
Seguir este consejo garantiza que incluso si se encuentra un XSS en Synapse, el impacto en otras aplicaciones será mínimo.
La forma más fácil de probar tu nueva instalación de Synapse es conectándote a ella desde un cliente web.
A menos que estés ejecutando una instancia de prueba de Synapse en tu máquina local, en general necesitarás habilitar el soporte TLS antes de poder conectarte exitosamente desde un cliente: consulta certificados TLS <https://matrix-org.github.io/synapse/latest/setup/installation.html#tls-certificates>_.
Una forma sencilla de empezar es iniciar sesión o registrarse a través de Element en https://app.element.io/#/login o https://app.element.io/#/register respectivamente. Deberás cambiar el servidor al que te conectas de matrix.org y en su lugar especificar una URL de Homeserver de https://<server_name>:8448 (o simplemente https://<server_name> si estás usando un proxy inverso). Si prefieres usar otro cliente, consulta nuestro desglose de clientes <https://matrix.org/ecosystem/clients/>_.
Si todo va bien, al menos deberías poder iniciar sesión, crear una sala y comenzar a enviar mensajes.
.. _client-user-reg:
Por defecto, el registro de nuevos usuarios a través de clientes Matrix está deshabilitado. Para habilitarlo:
En la sección de configuración de registro <https://matrix-org.github.io/synapse/latest/usage/configuration/config_documentation.html#registration>_ establece enable_registration: true en homeserver.yaml.
Luego o:
a. configurar un CAPTCHA <https://matrix-org.github.io/synapse/latest/CAPTCHA_SETUP.html>_, o
b. establecer enable_registration_without_verification: true en homeserver.yaml.
Recomendamos encarecidamente usar un CAPTCHA, particularmente si tu homeserver está expuesto a internet público. Sin él, cualquiera puede registrar cuentas libremente en tu homeserver. Esto puede ser explotado por atacantes para crear spambots dirigidos al resto de la federación Matrix.
Tu nuevo nombre de usuario se formará en parte a partir del server_name y en parte de un localpart que especifiques al crear la cuenta. Tu nombre tendrá la forma de::
@localpart:my.domain.name
(se pronuncia 'at localpart on my dot domain dot name').