## MatrixSynapse

## Servidor de Mensajería Instantánea (chat) (Matrix Synapse)

### ¿Qué es Matrix?

Matrix es un estándar abierto para comunicaciones sobre IP en tiempo real interoperables y descentralizadas. Synapse es la implementación de referencia de un servidor Matrix. Se puede usar para montar mensajería instantánea sobre FreedomBox para albergar grandes salones de chat, comunicaciones cifradas punto a punto y llamadas de audio/vídeo. Matrix Synapse es una aplicación federada en la que puede haber salas de chat en un servidor y los usuarios de cualquier otro servidor de la red federada pueden unirse a ellas. Más información acerca de Matrix.

Disponible desde: versión 0.14.0

### ¿Cómo acceder a tu servidor Matrix Synapse?

Para acceder al servidor Matrix Synapse recomendamos el cliente Riot. Puedes descargar Riot para escritorio. Las aplicaciones para Android e iOS están disponibles en sus tiendas (app stores) respectivas.

### Configurar Matrix Synapse en tu FreedomBox

Para habilitar Matrix, primero navega a la página de tu servidor de chat (Matrix Synapse) e instálalo. Matrix necesita un nombre de dominio válido configurado. Tras la instalación, se te pedirá que lo configures seleccionandolo de entre un menú desplegable con dominios disponibles. Los dominios se configuran en la página Sistema -> Configuración. Tras configurar un dominio verás que el servicio se está ejecutando. El servicio estará accesible en el dominio de FreedomBox configurado. Todos los usuarios registrados tendrán sus IDs Matrix `@usuario:dominio`. Actualmente no podrás cambiar el dominio una vez esté configurado.

### Federarse con otras instancias Matrix

Podrás interactuar con cualquier otra persona que ejecute otra instancia de Matrix. Esto se hace simplemente iniciando una conversación con ellos usando su matrix ID que seguirá el formato `@su-usuario:su-dominio`. También podrás unirte a salas de otros servidores y tener llamadas de audio/video con contactos de otros servidores.

### Uso de Memoria

El servidor de referencia Synapse implementado en Python es conocido por consumir mucha RAM, especialmente al cargar salones grandes con miles de participantes como #matrix:matrix.org. Se recomienda evitar unirse a estos salones si tu dispositivo FreedomBox solo tiene 1 GiB RAM o menos. Debería ser seguro unirse a salas con hasta 100 participantes. El equipo de Matrix está trabajando en una implementación de servidor Matrix escrita en Go llamada Dendrite que debería tener mejor rendimiento en entornos con poca memoria.

Algunos salones públicos muy grandes de la red Matrix están también disponibles como canales IRC (p.ej. #freedombox:matrix.org está disponible también como #freedombox en irc.debian.org). Es mejor usar IRC en vez de Matrix para estos salones tán grandes. Puedes unirte a los canales de IRC usando Quassel.

### Uso Avanzado

1. Si quieres crear una gran cantidad de usuarios en tu servidor de Matrix Synapse usa los siguientes comandos en una shell remota como usuario root:

   -     cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1 | sed "s+^+registration_shared_secret: +" > /etc/matrix-synapse/conf.d/registration_shared_secret.yaml
         chmod 600 /etc/matrix-synapse/conf.d/registration_shared_secret.yaml
         chown matrix-synapse:nogroup /etc/matrix-synapse/conf.d/registration_shared_secret.yaml
         systemctl restart matrix-synapse
         register_new_matrix_user -c /etc/matrix-synapse/conf.d/registration_shared_secret.yaml

2. Si quieres ver la lista de usuarios registrados en Matrix Syanpse haz lo siguiente como usuario root:

   -     apt install sqlite3
         echo 'select name from users' | sqlite3 /var/lib/matrix-synapse/homeserver.db

3. Para crear una comunidad en Matrix Synapse se necesita un usuario Matrix con privilegios de admin en el servidor. Para dárselos a `miusuario` ejecuta los siguientes comandos como usuario root:

   -     sudo apt install sqlite3
         echo "UPDATE users SET admin=1 WHERE name='@miusuario:dominio'" | sudo sqlite3 /var/lib/matrix-synapse/homeserver.db

Volver a la descripción de Funcionalidades o a las páginas del manual.