Synapse en Linux: Guía completa para instalar y configurar tu propio servidor Matrix

Introducción

Synapse es la implementación de referencia del servidor Matrix, un protocolo abierto para comunicación descentralizada en tiempo real. Instalar Synapse en un sistema Linux te permite crear tu propio entorno de chat, videollamadas y colaboración sin depender de servicios centrales. Este artículo muestra paso a paso cómo preparar el entorno, instalar las dependencias, configurar Synapse y mantenerlo de forma segura.

Requisitos previos

Necesitas una distribución Linux reciente (Ubuntu 22.04 LTS, Debian 12 o Fedora 38) con acceso root o sudo, al menos 2 GB de RAM y 20 GB de espacio en disco. Se recomienda un nombre de dominio apuntando a la IP del servidor y un certificado TLS válido (por ejemplo, de Let’s Encrypt).

Dependencias del sistema

En Debian/Ubuntu:

  • sudo apt update
  • sudo apt install -y python3-pip python3-virtualenv libffi-dev libssl-dev build-essential
  • sudo apt install -y libjpeg-turbo8-dev libpng-dev libwebp-dev

En Fedora:

  • sudo dnf install -y python3-pip python3-virtualenv gcc libffi-devel openssl-devel make
  • sudo dnf install -y libjpeg-turbo-devel libpng-devel libwebp-devel

Crear un entorno virtual

Para aislar la instalación, crea un directorio y un entorno virtual:

  • sudo mkdir -p /opt/synapse
  • sudo chown $USER:$USER /opt/synapse
  • cd /opt/synapse
  • python3 -m venv env
  • source env/bin/activate

Instalar Synapse

Con el entorno activado, instala Synapse y el adaptador de PostgreSQL:

  • pip install --upgrade pip setuptools wheel
  • pip install synapse[postgres]

Generar la configuración inicial

Ejecuta el comando de creación de configuración:

  • python -m synapse.app.homeserver --server-name mi.dominio.com --config-path homeserver.yaml --generate-config --report-stats=no

Esto producirá homeserver.yaml y homeserver.signing.key. Edita el YAML para:

  • Definir listeners (puerto 8008, opcionalmente TLS).
  • Configurar la sección database con los datos de PostgreSQL.
  • Establecer registration_shared_secret con un valor aleatorio.
  • Decidir si permites registros abiertos (enable_registration: true) o solo mediante invitaciones.

Configurar PostgreSQL

Si usas PostgreSQL, crea la base de datos y el usuario:

  • sudo -u postgres psql
  • Dentro de psql: CREATE DATABASE synapse;
  • CREATE USER synapse_user WITH PASSWORD 'tu_contraseña_segura';
  • GRANT ALL PRIVILEGES ON DATABASE synapse TO synapse_user;
  • \q

Luego ajusta la sección database de homeserver.yaml con esas credenciales.

Ejecutar Synapse como servicio

Crea un archivo de unit de systemd para que Synapse arranque en el inicio:

  • sudo nano /etc/systemd/system/synapse.service

Contenido:

[Unit]
Description=Synapse Matrix Homeserver
After=network.target

[Service]
Type=simple
User=tu_usuario
WorkingDirectory=/opt/synapse
Environment="PATH=/opt/synapse/env/bin"
ExecStart=/opt/synapse/env/bin/python -m synapse.app.homeserver --config-path /opt/synapse/homeserver.yaml
Restart=on-failure

[Install]
WantedBy=multi-user.target

Reemplaza tu_usuario por el usuario propietario de /opt/synapse. Luego:

  • sudo systemctl daemon-reload
  • sudo systemctl enable synapse.service
  • sudo systemctl start synapse.service
  • sudo systemctl status synapse.service

Seguridad y buenas prácticas

  • Usa un certificado TLS de Let’s Encrypt y define tls_certificate_path y tls_private_key_path en el YAML.
  • Restringe el acceso al puerto 8008 (o 443 si usas un reverse proxy) con ufw o firewalld.
  • Desactiva el registro abierto (enable_registration: false) y utiliza invitaciones o SSO.
  • Configura rotación de logs con logrotate.
  • Mantén el entorno actualizado: pip install --upgrade synapse dentro del entorno y reinicia el servicio.

Monitoreo y mantenimiento

Synapse expone métricas en /_synapse/metrics para Prometheus. El archivo homeserver.log contiene información de errores y advertencias. Configura logrotate:

  • sudo nano /etc/logrotate.d/synapse
  • Contenido:
/opt/synapse/homeserver.log {
    weekly
    rotate 4
    compress
    missingok
    notifempty
}

Para actualizar, reactiva el entorno, ejecuta pip install --upgrade synapse y reinicia con sudo systemctl restart synapse.service.

Conclusión

Instalar Synapse en Linux es un proceso accesible que te brinda control total sobre tu comunicación basada en Matrix. Con los pasos anteriores tendrás un servidor seguro, listo para integrar puentes, bots y aplicaciones de colaboración. Anímate a desplegar tu propio nodo y contribuir a la red descentralizada de mensajería segura.

Esta obra está bajo una Licencia Creative Commons Atribución 4.0 Internacional para Francesc Roig francesc@vivaldi.net .

EspañolesEspañolEspañol