Servidor de Chat · 16 min read · Nov 01, 2025

Cómo instalar y crear un servidor de chat usando Matrix Synapse y Element en Ubuntu 22.04

Matrix es un estándar abierto para la comunicación descentralizada y cifrada de extremo a extremo. Es una colección de servidores y servicios que se comunican entre sí utilizando una API estandarizada que se sincroniza en tiempo real. Utiliza servidores locales para almacenar información de cuentas e historial de chat. Si un servidor local falla, otros servidores pueden continuar la comunicación sin problemas debido a la naturaleza de la descentralización. Puedes usar un servidor local de Matrix alojado por otra persona o alojar el tuyo propio para mantener el control sobre tus datos.

En este tutorial, aprenderás cómo instalar y crear un servidor de chat usando Synapse, una implementación de servidor local de Matrix. Element es un cliente web de Matrix construido utilizando Matrix React SDK. Esto te permitirá ofrecer chat de Matrix en la web. También puedes usar el servidor con cualquier otro cliente de Matrix de tu elección. También instalaremos el servidor Coturn para habilitar llamadas de voz y video. El servicio Coturn es opcional si no estás interesado en usarlo.

Requisitos previos

  1. Un servidor que ejecute Ubuntu 22.04.
  2. Un usuario no sudo con privilegios de root.
  3. El Firewall sin complicaciones (UFW) está habilitado y en funcionamiento.
  4. Nombres de dominio completamente calificados (FQDN) para Matrix, Element y Coturn apuntando a tu servidor. Usaremos matrix.example.com, element.example.com y coturn.example.com respectivamente para los tres servicios.
  5. Asegúrate de que todo esté actualizado. $ sudo apt update && sudo apt upgrade

Paso 1 - Configurar el Firewall

Antes de instalar cualquier paquete, el primer paso es configurar el firewall para abrir puertos para HTTP, HTTPS y Synapse.

Verifica el estado del firewall.

$ sudo ufw status

Deberías ver algo como lo siguiente.

Estado: activo

Para                         Acción      Desde
--                         ------      ----
OpenSSH                    PERMITIR       En cualquier lugar
OpenSSH (v6)               PERMITIR       En cualquier lugar (v6)

Abre los puertos HTTP, HTTPS y Synapse en el firewall.

$ sudo ufw allow 8448
$ sudo ufw allow http
$ sudo ufw allow https

Verifica el estado nuevamente para confirmar.

$ sudo ufw status
Estado: activo

Para                         Acción      Desde
--                         ------      ----
OpenSSH                    PERMITIR       En cualquier lugar                  
8448                       PERMITIR       En cualquier lugar                  
80/tcp                     PERMITIR       En cualquier lugar                  
443                        PERMITIR       En cualquier lugar                  
OpenSSH (v6)               PERMITIR       En cualquier lugar (v6)             
8448 (v6)                  PERMITIR       En cualquier lugar (v6)             
80/tcp (v6)                PERMITIR       En cualquier lugar (v6)             
443 (v6)                   PERMITIR       En cualquier lugar (v6)

Paso 2 - Instalar Matrix Synapse

Agrega la clave GPG de Matrix.

$ sudo wget -O /usr/share/keyrings/matrix-org-archive-keyring.gpg https://packages.matrix.org/debian/matrix-org-archive-keyring.gpg

Agrega el repositorio APT de Matrix.

$ echo "deb [signed-by=/usr/share/keyrings/matrix-org-archive-keyring.gpg] https://packages.matrix.org/debian/ $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/matrix-org.list

Actualiza la lista de repositorios del sistema.

$ sudo apt update

Instala Matrix Synapse.

$ sudo apt install matrix-synapse-py3

Durante la instalación, se te pedirá el nombre del servidor, que forma parte de tu ID de Matrix. Ingresa el nombre de dominio de Matrix en su lugar. Esto actuará como la dirección de tu servidor local.

También se te preguntará si deseas enviar estadísticas anónimas sobre tu servidor local de vuelta a Matrix. Escribe N para rechazar.

Puedes cambiar estas configuraciones más tarde en el archivo /etc/matrix-synapse/conf.d/server_name.yaml.

El servicio de Matrix Synapse se habilita y se inicia durante la instalación. Verifica el estado del servicio.

$ sudo systemctl status matrix-synapse
? matrix-synapse.service - Servidor local de Matrix Synapse
     Cargado: cargado (/lib/systemd/system/matrix-synapse.service; habilitado; configuración del proveedor: habilitado)
     Activo: activo (en ejecución) desde lun 2022-09-26 09:38:38 UTC; hace 1min 19s
    Proceso: 12926 ExecStartPre=/opt/venvs/matrix-synapse/bin/python -m synapse.app.homeserver --config-path=/etc/matrix-synapse/homeserver.yaml --config-path=/etc/matrix-synapse/conf.d/ --generate-key>   PID principal: 12931 (python)
      Tareas: 8 (límite: 2238)
     Memoria: 87.3M
        CPU: 4.180s
     CGroup: /system.slice/matrix-synapse.service
             ??12931 /opt/venvs/matrix-synapse/bin/python -m synapse.app.homeserver --config-path=/etc/matrix-synapse/homeserver.yaml --config-path=/etc/matrix-synapse/conf.d/

Sep 26 09:38:36 matrix matrix-synapse[12926]: Generando archivo de clave de firma /etc/matrix-synapse/homeserver.signing.key
Sep 26 09:38:37 matrix matrix-synapse[12931]: Este servidor está configurado para usar 'matrix.org' como su servidor de claves de confianza a través de la
Sep 26 09:38:37 matrix matrix-synapse[12931]: opción de configuración 'trusted_key_servers'. 'matrix.org' es una buena opción para un servidor de claves
Sep 26 09:38:37 matrix matrix-synapse[12931]: ya que es de larga duración, estable y confiable. Sin embargo, algunos administradores pueden
Sep 26 09:38:37 matrix matrix-synapse[12931]: desear usar otro servidor para este propósito.
Sep 26 09:38:37 matrix matrix-synapse[12931]: Para suprimir esta advertencia y continuar usando 'matrix.org', los administradores deben establecer
Sep 26 09:38:37 matrix matrix-synapse[12931]: 'suppress_key_server_warning' en 'true' en homeserver.yaml.
Sep 26 09:38:37 matrix matrix-synapse[12931]: --------------------------------------------------------------------------------
Sep 26 09:38:38 matrix matrix-synapse[12931]: La configuración no tiene macaroon_secret_key
Sep 26 09:38:38 matrix systemd[1]: Se inició el servidor local de Matrix Synapse.

Paso 3 - Instalar y configurar PostgreSQL

Usaremos el repositorio APT oficial de PostgreSQL para instalar. Ejecuta el siguiente comando para agregar la clave GPG de PostgreSQL.

$ curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | sudo tee /usr/share/keyrings/postgresql-key.gpg >/dev/null

Agrega el repositorio APT a tu lista de fuentes.

$ sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/postgresql-key.gpg arch=amd64] http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

Actualiza el repositorio del sistema.

$ sudo apt update

Ahora, puedes instalar PostgreSQL usando el siguiente comando.

$ sudo apt install postgresql postgresql-contrib

Verifica el estado del servicio de PostgreSQL.

$ sudo systemctl status postgresql
? postgresql.service - RDBMS de PostgreSQL
     Cargado: cargado (/lib/systemd/system/postgresql.service; habilitado; configuración del proveedor: habilitado)
     Activo: activo (salió) desde lun 2022-09-26 09:41:36 UTC; hace 2min 14s
    Proceso: 15586 ExecStart=/bin/true (código=salió, estado=0/SUCCESS)
   PID principal: 15586 (código=salió, estado=0/SUCCESS)
        CPU: 1ms

Sep 26 09:41:36 matrix systemd[1]: Iniciando RDBMS de PostgreSQL...
Sep 26 09:41:36 matrix systemd[1]: Finalizado RDBMS de PostgreSQL.

Puedes ver que el servicio está habilitado y en funcionamiento por defecto.

Inicia sesión en la cuenta del sistema postgres.

$ sudo -su postgres

Crea un nuevo usuario de base de datos y una base de datos para PostgreSQL.

$ createuser --pwprompt synapse
$ createdb --encoding=UTF8 --locale=C --template=template0 --owner=synapse synapse

Sal de la cuenta postgres.

$ exit

Paso 4 - Instalar Nginx

Para el entorno de producción, se recomienda ejecutar el servidor Synapse utilizando un proxy Nginx.

Ubuntu 22.04 viene con una versión más antigua de Nginx. Para instalar la última versión, necesitas descargar el repositorio oficial de Nginx.

Importa la clave de firma de Nginx.

$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null

Agrega el repositorio para la versión estable de Nginx.

$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg arch=amd64] \
http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list

Actualiza los repositorios del sistema.

$ sudo apt update

Instala Nginx.

$ sudo apt install nginx

Verifica la instalación.

$ nginx -v
nginx version: nginx/1.22.0

Inicia el servidor Nginx.

$ sudo systemctl start nginx

Paso 5 - Instalar SSL

Necesitamos instalar Certbot para generar el certificado SSL. Puedes instalar Certbot usando el repositorio de Ubuntu o obtener la última versión usando la herramienta Snapd. Usaremos la versión de Snapd.

Ubuntu 22.04 viene con Snapd instalado por defecto. Ejecuta los siguientes comandos para asegurarte de que tu versión de Snapd esté actualizada.

$ sudo snap install core
$ sudo snap refresh core

Instala Certbot.

$ sudo snap install --classic certbot

Usa el siguiente comando para asegurarte de que el comando Certbot se pueda ejecutar creando un enlace simbólico al directorio /usr/bin.

$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

Ejecuta el siguiente comando para generar un certificado SSL.

$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d matrix.example.com

El comando anterior descargará un certificado en el directorio /etc/letsencrypt/live/matrix.example.com en tu servidor.

Genera un certificado de grupo Diffie-Hellman.

$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096

Para verificar si la renovación de SSL está funcionando correctamente, realiza una prueba en seco del proceso.

$ sudo certbot renew --dry-run

Si no ves errores, estás listo. Tu certificado se renovará automáticamente.

Paso 6 - Configurar Matrix Synapse

Puedes configurar el servidor Matrix a través del archivo /etc/matrix-synapse/homeserver.yaml, pero no se recomienda ya que se sobrescribe después de cada actualización. Para uso en producción, debes colocar los archivos de configuración en la carpeta /etc/matrix-synapse/conf.d.

La instalación de Synapse creó dos archivos de configuración en la carpeta /etc/matrix-synapse/conf.d.

$ ls /etc/matrix-synapse/conf.d
report_stats.yaml  server_name.yaml

Crea un nuevo archivo de configuración para la base de datos y ábrelo para editar.

$ sudo nano /etc/matrix-synapse/conf.d/database.yaml

Pega las siguientes líneas en el editor. Reemplaza el campo your-password con la contraseña del usuario de PostgreSQL que creaste en el paso 3. Reemplaza localhost con la dirección IP de tu servidor, si estás alojando la base de datos en otro lugar.

database:
  name: psycopg2
  args:
    user: synapse
    password: 'your-password'
    database: synapsedb
    host: localhost
    cp_min: 5
    cp_max: 10

Guarda el archivo presionando Ctrl + X y luego Y cuando se te pida.

Crea una clave de registro secreta. La clave debe estar asegurada porque permitirá a cualquiera registrar un nuevo usuario, incluso si el registro está deshabilitado.

$ echo "registration_shared_secret: '$(cat /dev/urandom | tr -cd '[:alnum:]' | fold -w 256 | head -n 1)'" | sudo tee /etc/matrix-synapse/conf.d/registration_shared_secret.yaml

Por defecto, Synapse habilita indicadores de presencia que muestran si una persona está en línea. Puede causar un alto uso de CPU, por lo tanto, puedes deshabilitarlo. Crea un nuevo archivo de configuración para lo mismo.

$ sudo nano /etc/matrix-synapse/conf.d/presence.yaml

Pega la siguiente línea en el editor.

presence:
  enabled: false

Guarda el archivo presionando Ctrl + X y luego Y cuando se te pida.

Reinicia el servicio Synapse para aplicar los cambios.

Crea un nuevo usuario de Matrix. Se te pedirá tu nombre de usuario y contraseña. Dado que este es el primer usuario que estamos creando, escribe yes cuando se te pregunte si deseas hacer al usuario un administrador.

$ register_new_matrix_user -c /etc/matrix-synapse/conf.d/registration_shared_secret.yaml http://localhost:8008
Nuevo usuario localpart [navjot]: navjot
Contraseña: 
Confirmar contraseña: 
Hacer admin [no]: yes
Enviando solicitud de registro...
¡Éxito!

Si deseas abrir el registro público, crea un nuevo archivo de configuración.

$ sudo nano /etc/matrix-synapse/conf.d/registration.yaml

Pega las siguientes líneas en él.

enable_registration: true

Por defecto, Synapse no permite registros sin verificación de correo electrónico. Para habilitar la verificación de correo electrónico, pega las siguientes líneas.

registrations_require_3pid:
  - email

email:
  smtp_host: mail.example.com
  smtp_port: 587

  # Si el servidor de correo no tiene autenticación, omite estas 2 líneas
  smtp_user: '[email protected]'
  smtp_pass: 'password'

  # Opcional, requiere cifrado con STARTTLS
  require_transport_security: true

  app_name: 'Cómo hacer un ejemplo de chat'  # define el valor para %(app)s en notif_from y asunto del correo
  notif_from: "%(app)s <[email protected]>"

Para deshabilitar la verificación de correo electrónico, pega la siguiente línea en su lugar.

enable_registration_without_verification: true

Guarda el archivo presionando Ctrl + X y luego Y cuando se te pida.

Reinicia Synapse para aplicar la configuración.

$ sudo systemctl restart matrix-synapse

Paso 7 - Configurar Nginx

Abre el archivo /etc/nginx/nginx.conf para editar.

$ sudo nano /etc/nginx/nginx.conf

Agrega la siguiente línea antes de la línea include /etc/nginx/conf.d/*.conf;.

server_names_hash_bucket_size  64;

Guarda el archivo presionando Ctrl + X y luego Y cuando se te pida.

Crea y abre el archivo /etc/nginx/conf.d/synapse.conf para editar.

$ sudo nano /etc/nginx/conf.d/synapse.conf

Pega el siguiente código en él.

# hacer cumplir HTTPS
server {
    # Puerto del cliente
    listen 80;
    listen [::]:80;
    server_name matrix.example.com;
    return 301 https://$host$request_uri;
}

server {
    server_name matrix.example.com;

    # Puerto del cliente
    listen 443 ssl http2;
    listen [::]:443 ssl http2;

    # Puerto de federación
    listen 8448 ssl http2 default_server;
    listen [::]:8448 ssl http2 default_server;

    access_log  /var/log/nginx/synapse.access.log;
    error_log   /var/log/nginx/synapse.error.log;

    # Configuración de TLS
    ssl_certificate /etc/letsencrypt/live/matrix.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/matrix.example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/matrix.example.com/chain.pem;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;

    location ~ ^(/_matrix|/_synapse/client) {
            proxy_pass http://localhost:8008;
            proxy_http_version 1.1;

            proxy_set_header X-Forwarded-For $remote_addr;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_set_header Host $host;

            # Nginx por defecto solo permite cargas de archivos de hasta 1M de tamaño
            # Aumenta client_max_body_size para que coincida con max_upload_size definido en homeserver.yaml
            client_max_body_size 50M;
    }
}

Guarda el archivo presionando Ctrl + X y luego Y cuando se te pida una vez que hayas terminado.

Verifica la sintaxis del archivo de configuración de Nginx.

$ sudo nginx -t
nginx: el archivo de configuración /etc/nginx/nginx.conf tiene una sintaxis correcta
nginx: la prueba del archivo de configuración /etc/nginx/nginx.conf fue exitosa

Reinicia el servicio Nginx.

$ sudo systemctl restart nginx

Paso 8 - Instalar Coturn

Necesitarás instalar un servidor de Traversal Using Relays around NAT (TURN) para habilitar llamadas de voz y video. Para este propósito, instalaremos el paquete Coturn. Si no necesitas esta funcionalidad, puedes omitir este paso.

Ubuntu 22.04 no incluye el paquete Coturn debido a un problema de error que se ha resuelto desde entonces. Sin embargo, hay otra forma de instalar Coturn usando un repositorio no oficial. Opcionalmente, también puedes usar Docker para instalar Coturn, pero no usaremos ese método ya que está fuera del alcance de este tutorial.

Agrega el repositorio no oficial de Coturn.

$ sudo add-apt-repository ppa:ubuntuhandbook1/coturn

Instala Coturn.

$ sudo apt install coturn

Abre los puertos TURN y UDP.

$ sudo ufw allow 3478
$ sudo ufw allow 5349
$ sudo ufw allow 49152:65535/udp

Genera un certificado SSL para Turn ( turn.example.com).

$ sudo certbot certonly --nginx -d turn.example.com

Genera un secreto de autenticación y guárdalo en el archivo de configuración.

$ echo "static-auth-secret=$(cat /dev/urandom | tr -cd '[:alnum:]' | fold -w 256 | head -n 1)" | sudo tee /etc/turnserver.conf

Abre el archivo de configuración para editar.

$ sudo nano /etc/turnserver.conf

Pega las siguientes líneas en él debajo del secreto de autenticación.

use-auth-secret
realm=turn.example.com
cert=/etc/letsencrypt/live/turn.example.com/fullchain.pem
pkey=/etc/letsencrypt/live/turn.example.com/privkey.pem

# VoIP es UDP, no necesita TCP
no-tcp-relay

# No permitir tráfico a rangos de IP privadas
deno-multicast-peers
denied-peer-ip=0.0.0.0-0.255.255.255
denied-peer-ip=10.0.0.0-10.255.255.255
denied-peer-ip=100.64.0.0-100.127.255.255
denied-peer-ip=127.0.0.0-127.255.255.255
denied-peer-ip=169.254.0.0-169.254.255.255
denied-peer-ip=172.16.0.0-172.31.255.255
denied-peer-ip=192.0.0.0-192.0.0.255
denied-peer-ip=192.0.2.0-192.0.2.255
denied-peer-ip=192.88.99.0-192.88.99.255
denied-peer-ip=192.168.0.0-192.168.255.255
denied-peer-ip=198.18.0.0-198.19.255.255
denied-peer-ip=198.51.100.0-198.51.100.255
denied-peer-ip=203.0.113.0-203.0.113.255
denied-peer-ip=240.0.0.0-255.255.255.255
denied-peer-ip=::1
denied-peer-ip=64:ff9b::-64:ff9b::ffff:ffff
denied-peer-ip=::ffff:0.0.0.0-::ffff:255.255.255.255
denied-peer-ip=100::-100::ffff:ffff:ffff:ffff
denied-peer-ip=2001::-2001:1ff:ffff:ffff:ffff:ffff:ffff:ffff
denied-peer-ip=2002::-2002:ffff:ffff:ffff:ffff:ffff:ffff:ffff
denied-peer-ip=fc00::-fdff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
denied-peer-ip=fe80::-febf:ffff:ffff:ffff:ffff:ffff:ffff:ffff

# Limitar el número de sesiones por usuario
user-quota=12
# Limitar el número total de sesiones
total-quota=1200

Guarda el archivo presionando Ctrl + X y luego Y cuando se te pida.

Reinicia Coturn para aplicar la configuración.

$ sudo systemctl restart coturn

Crea un nuevo archivo de configuración de Synapse para Coturn.

$ sudo nano /etc/matrix-synapse/conf.d/turn.yaml

Pega las siguientes líneas en él. Reemplaza el valor de turn_shared_secret con el valor de static-auth-secret del archivo urnserver.conf.

turn_uris: [ "turn:turn.example.com?transport=udp", "turn:turn.example.com?transport=tcp" ]
turn_shared_secret: 'static-auth-secret'
turn_user_lifetime: 86400000
turn_allow_guests: True

Guarda el archivo presionando Ctrl + X y luego Y cuando se te pida.

Reinicia Synapse para aplicar los cambios.

$ sudo systemctl restart matrix-synapse

Paso 9 - Acceder a Matrix

Puedes acceder a Matrix Chat usando el cliente web de Element en https://app.element.io. Haz clic en el botón Iniciar sesión para continuar.

Página de inicio de sesión de Element Web

Haz clic en el enlace Editar debajo de Servidor local. Ingresa matrix.example.com como tu servidor local.

Cliente Element Servidor Local Personalizado

Si el cliente detecta correctamente tu servidor local, el borde y el texto se volverán de color verde, de lo contrario, se mostrará en rojo. Haz clic en Continuar para proceder.

Inicio de sesión de Servidor Local Personalizado de Element

Haz clic en el botón Iniciar sesión para acceder. Se te pedirá que crees una copia de seguridad segura y cifrada.

Copia de seguridad segura de Matrix

Selecciona la opción Ingresar una frase de seguridad para crear una frase de seguridad que se requerirá cada vez que inicies sesión. Haz clic en Continuar para proceder.

Frase de seguridad de Element

Ingresa una frase de seguridad y haz clic en el botón Continuar para proceder. Se te pedirá que la confirmes nuevamente en la siguiente pantalla.

Confirmar frase de seguridad de Element

Ingresa la frase nuevamente y haz clic en Continuar para proceder.

Ventana emergente de clave de seguridad de Element

Se te dará un conjunto de claves de seguridad que puedes usar si olvidas tu frase de seguridad. Haz clic en el botón Descargar para guardarlas.

Haz clic en el botón Continuar para proceder.

Verificar contraseña de Element

Se te pedirá tu contraseña de cuenta. Ingresa la contraseña y haz clic en el botón Continuar para finalizar la configuración de la copia de seguridad cifrada.

Tablero del cliente web de Element

Creamos una sala de chat grupal llamada Howtoforge como se muestra arriba.

Paso 10 - Instalar Element

Instala el paquete jq para instalar el procesador de texto JSON.

$ sudo apt install jq

Crea un directorio para Element.

$ sudo mkdir -p /var/www/element

Crea un nuevo archivo para obtener la última versión de Element.

$ sudo nano /var/www/element/update.sh

Agrega las siguientes líneas a él.

#!/bin/sh
set -e

install_location="/var/www/element"
latest="$(curl -s https://api.github.com/repos/vector-im/element-web/releases/latest | jq -r .tag_name)"

cd "$install_location"

[ ! -d "archive" ] && mkdir -p "archive"
[ -d "archive/element-${latest}" ] && rm -r "archive/element-${latest}"
[ -f "archive/element-${latest}.tar.gz" ] && rm "archive/element-${latest}.tar.gz"

wget "https://github.com/vector-im/element-web/releases/download/${latest}/element-${latest}.tar.gz" -P "archive"
tar xf "archive/element-${latest}.tar.gz" -C "archive"

[ -L "${install_location}/current" ] && rm "${install_location}/current"
ln -sf "${install_location}/archive/element-${latest}" "${install_location}/current"
ln -sf "${install_location}/config.json" "${install_location}/current/config.json"

Guarda el archivo presionando Ctrl + X y luego Y cuando se te pida.

Haz que el archivo sea ejecutable.

$ sudo chmod +x /var/www/element/update.sh

Ejecuta el script para descargar Element.

$ sudo /var/www/element/update.sh

Paso 11 - Configurar Element

Copia el mismo archivo de configuración de Element.

$ sudo cp /var/www/element/current/config.sample.json /var/www/element/config.json

Abre el archivo de configuración para editar.

$ sudo nano /var/www/element/config.json

Encuentra las siguientes líneas.

"m.homeserver": {
    "base_url": "https://matrix-client.matrix.org",
    "server_name": "matrix.org"
},

Cambia la dirección del servidor local de Matrix por defecto a tu servidor local y elimina la variable server_name.

"m.homeserver": {
    "base_url": "https://matrix.example.com",
    "server_name": "matrix.element.com"  
},

Si deseas usar tu propio nombre en lugar de Element en el título del sitio web, cambia el nombre de la marca.

"brand": "Cómo hacer un ejemplo de chat",

Establece la variable disable_guests como verdadera para prohibir a los invitados usar Element.

"disable_guests": true,

Guarda el archivo presionando Ctrl + X y luego Y cuando se te pida.

Genera un certificado SSL para el cliente Element.

$ sudo certbot certonly --nginx -d element.example.com

Crea y abre el archivo /etc/nginx/conf.d/element.conf para editar.

$ sudo nano /etc/nginx/conf.d/element.conf

Pega las siguientes líneas en él.

server {
    listen 80;
    listen [::]:80;
    server_name element.example.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;

    server_name element.example.com;

    root /var/www/element/current;
    index index.html;

    access_log  /var/log/nginx/element.access.log;
    error_log   /var/log/nginx/element.error.log;

    add_header Referrer-Policy "strict-origin" always;
    add_header X-Content-Type-Options "nosniff" always;
    add_header X-Frame-Options "SAMEORIGIN" always;

    # Configuración de TLS
    ssl_certificate /etc/letsencrypt/live/element.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/element.example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/element.example.com/chain.pem;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
}

Guarda el archivo presionando Ctrl + X y luego Y cuando se te pida.

Verifica la sintaxis del archivo de configuración de Nginx.

$ sudo nginx -t
nginx: el archivo de configuración /etc/nginx/nginx.conf tiene una sintaxis correcta
nginx: la prueba del archivo de configuración /etc/nginx/nginx.conf fue exitosa

Reinicia el servicio Nginx.

$ sudo systemctl restart nginx

Puedes acceder al cliente Element a través de la URL https://element.example.com en tu navegador. Inicia sesión y serás llevado al tablero de la aplicación.

Tablero autoalojado de Element

Conclusión

Esto concluye nuestro tutorial sobre la instalación del servidor de chat Matrix Synapse junto con Coturn y el cliente web Element utilizando Nginx como servidor proxy. Si tienes alguna pregunta, publícalas en los comentarios a continuación.

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.