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
- Un servidor que ejecute Ubuntu 22.04.
- Un usuario no sudo con privilegios de root.
- El Firewall sin complicaciones (UFW) está habilitado y en funcionamiento.
- Nombres de dominio completamente calificados (FQDN) para Matrix, Element y Coturn apuntando a tu servidor. Usaremos
matrix.example.com,element.example.comycoturn.example.comrespectivamente para los tres servicios. - 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.

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

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.

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

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.

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.

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

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.

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.

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.

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.
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.