Matrix es un protocolo abierto para la comunicación en tiempo real, mientras que Synapse es una implementación de servidor de referencia para Matrix. Element es un cliente popular para Matrix que permite a los usuarios conectarse y utilizar servidores Matrix. En este artículo, te mostraremos cómo configurar un servidor de mensajería instantánea con Matrix Synapse y Element en Debian 12 paso a paso. Este tutorial está diseñado para ser técnico pero accesible para los recién llegados.

Requisitos Previos

Antes de comenzar, asegúrate de tener lo siguiente:

  • Un servidor con Debian 12 instalado.
  • Acceso a una cuenta con privilegios de superusuario (root) o acceso a sudo.
  • Un dominio configurado que apunte a tu servidor.

Paso 1: Actualizar el Sistema

Es fundamental asegurarse de que tu sistema esté actualizado. Abre una terminal y ejecuta los siguientes comandos:

sudo apt update
sudo apt upgrade -y

Paso 2: Instalar Dependencias

Para instalar Matrix Synapse, necesitas algunas dependencias como Python y los repositorios de Matrix. Ejecuta los siguientes comandos:

sudo apt install -y lsb-release wget apt-transport-https

Paso 3: Agregar el Repositorio de Matrix Synapse

Añade el repositorio oficial de Matrix Synapse a tu lista de fuentes:

wget -qO - https://packages.matrix.org/debian/matrix-org-archive-keyring.gpg | sudo apt-key add -
echo "deb https://packages.matrix.org/debian/ $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/matrix-org.list
sudo apt update

Paso 4: Instalar Matrix Synapse

Instala Matrix Synapse con el siguiente comando:

sudo apt install -y matrix-synapse-py3

Durante la instalación, se te pedirá que ingreses el nombre de dominio de tu servidor Matrix. Asegúrate de ingresar el nombre de dominio completo (por ejemplo, matrix.tu-dominio.com).

Paso 5: Configurar Matrix Synapse

Editar el Archivo de Configuración

Edita el archivo de configuración principal de Synapse:

sudo nano /etc/matrix-synapse/homeserver.yaml

Configura las siguientes opciones según tus necesidades:

server_name: "tu-dominio.com"
report_stats: true

Configurar el Registro de Usuarios

Para permitir el registro de usuarios, edita las siguientes líneas en el archivo homeserver.yaml:

enable_registration: true

Guarda el archivo y cierra el editor.

Iniciar y Habilitar el Servicio Synapse

Inicia y habilita el servicio Synapse para que se ejecute al iniciar el sistema:

sudo systemctl start matrix-synapse
sudo systemctl enable matrix-synapse

Paso 6: Configurar Nginx como Proxy Inverso

Instalar Nginx

Instala Nginx con el siguiente comando:

sudo apt install -y nginx

Configurar Nginx para Matrix Synapse

Crea un archivo de configuración para tu sitio Matrix en Nginx:

sudo nano /etc/nginx/sites-available/matrix

Añade la siguiente configuración:

server {
    listen 80;
    server_name tu-dominio.com;

    location / {
        proxy_pass http://localhost:8008;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Habilita el nuevo sitio y reinicia Nginx:

sudo ln -s /etc/nginx/sites-available/matrix /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

Paso 7: Obtener un Certificado SSL con Let’s Encrypt

Instalar Certbot

Certbot es una herramienta que facilita la obtención de certificados SSL gratuitos de Let’s Encrypt. Instálalo con el siguiente comando:

sudo apt install certbot python3-certbot-nginx

Obtener y Configurar el Certificado SSL

Obtén y configura el certificado SSL:

sudo certbot --nginx -d tu-dominio.com

Sigue las instrucciones en pantalla para completar el proceso. Certbot configurará automáticamente Nginx para usar el certificado SSL.

Paso 8: Instalar Element (Cliente)

Element es un cliente para Matrix que permite a los usuarios conectarse a tu servidor Matrix Synapse.

Descargar Element

Descarga la última versión de Element desde su sitio oficial o utiliza el siguiente comando para descargar el paquete Debian:

wget https://packages.riot.im/debian/riot-im.list
sudo cp riot-im.list /etc/apt/sources.list.d/
wget -O- https://packages.riot.im/debian/riot-im-archive-keyring.gpg | sudo apt-key add -
sudo apt update
sudo apt install element-desktop

Para mejorar el rendimiento y la gestión de tu servidor de mensajería instantánea con Matrix Synapse y Element, considera utilizar los servicios de Shape.host. Ofrecen soluciones de Cloud VPS que proporcionan escalabilidad, alta disponibilidad y un rendimiento superior para tus aplicaciones de mensajería. Con Shape.host, puedes asegurarte de que tu infraestructura esté siempre disponible y funcionando de manera óptima.