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 updatesudo apt install -y python3-pip python3-virtualenv libffi-dev libssl-dev build-essentialsudo 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 makesudo 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/synapsesudo chown $USER:$USER /opt/synapsecd /opt/synapsepython3 -m venv envsource env/bin/activate
Instalar Synapse
Con el entorno activado, instala Synapse y el adaptador de PostgreSQL:
pip install --upgrade pip setuptools wheelpip 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
databasecon los datos de PostgreSQL. - Establecer
registration_shared_secretcon 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-reloadsudo systemctl enable synapse.servicesudo systemctl start synapse.servicesudo systemctl status synapse.service
Seguridad y buenas prácticas
- Usa un certificado TLS de Let’s Encrypt y define
tls_certificate_pathytls_private_key_pathen el YAML. - Restringe el acceso al puerto 8008 (o 443 si usas un reverse proxy) con
ufwofirewalld. - 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 synapsedentro 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.


