Enviado por admin el
La verdad conocía el proyecto Matrix desde hace rato y siempre me había parecido algo muy pero muy interesante y potente. En los últimos tiempos el proyecto ha mejorado mucho, los clientes están disponibles para cualquier plataforma y la instalación del servidor se ha vuelto bastante sencilla. Es por eso que he decidido incluirlo en mi “proyecto” de servidor de privacidad.
He realizado la instalación y configuración en un servidor de 5 dólares con la distribución Linux Fedora 37 para aprovechar la presencia del servidor en los repositorios en lugar de proceder a la instalación desde las fuentes. Una vez iniciado y actualizado el servidor, se instala el paquete:
dnf install matrix-synapse -y
luego para crear los distintos archivos de configuración se ejecuta:
/usr/bin/synapse_homeserver --generate-config -H privacidad.xyz -c /etc/synapse/homeserver.yaml --report-stats=yes
-
privacidad.xyz es el nombre de dominio asociado al servidor
-
/etc/synapse/homeserver.yaml es el nombre y carpeta donde se creará el archivo de configuración
-
--report-stats=yes si se quieren enviar o no las estadísticas de uso a los desarrolladores
el paso a seguir es modificar el archivo de configuración porque algunas configuraciones predefinidas no se adaptan perfectamente al servidor en uso:
nano /etc/synapse/homeserver.yaml
se borra el contenido del archivo y se copia:
server_name: "privacidad.xyz"
pid_file: /run/synapse/homeserver.pid
listeners:
- port: 8448
tls: true
type: http
x_forwarded: true
resources:
- names: [client, federation]
compress: false
tls_certificate_path: "/etc/synapse/fullchain.pem"
tls_private_key_path: "/etc/synapse/privkey.pem"
federation_client_minimum_tls_version: 1.2
turn_uris: [turn:turn.privacidad.xyz]
turn_shared_secret: "92a77cbcc2d55841f8b3850ff56bc3f1"
turn_user_lifetime: 1h
turn_allow_guests: false
database:
name: sqlite3
args:
database: /etc/synapse/homeserver.db
log_config: "/etc/synapse/privacidad.xyz.log.config"
media_store_path: /home/media_store
registration_shared_secret: "^mDfjZKHp-xM_T8_oVe2@3.vLcxu4=7S6fFPZ18m3eRN:9^@0q"
report_stats: true
macaroon_secret_key: "c7=+Tqo_#4#uPkor^K6oyc0cfVTiLE,kzz_RzTp=+d:5r4a84V"
form_secret: "w,~y^;Zv.AZ~I^VZN.&YBAE@wqJVka*4jTV=SamG9IMZS50QK="
signing_key_path: "/etc/synapse/privacidad.xyz.signing.key"
trusted_key_servers:
- server_name: "matrix.org"
Los datos más importantes:
-
server_name: "privacidad.xyz" nombre del dominio asociado al servidor
-
pid_file: /run/synapse/homeserver.pid nombre y carpeta donde se creará el proceso una vez iniciado el programa
-
bloque listeners: todo lo relacionado al puerto de escucha, conexión segura y tipo de conexión que aceptará el servidor
-
tls_certificate_path: y tls_private_key_path: nombre y carpeta donde se encontrarán los certificados que utilizar el servidor para la conexiones TLS
-
siguen unas lineas relacionadas con la configuración de la conexión al servidor STUN/TURN que puede estar instalado en el mismo servidor o en otro
-
tipo de base de datos utilizada y donde se encuentra; en este caso SQLite3
-
log_config: archivo donde se encuentra la configuración de todo lo relacionado con los LOG de Synapse
-
media_store_path: carpeta para guardar elementos media recibidos
-
unas lineas relacionadas con las claves utilizadas por el servidor en la comunicación con los clientes
En esta pagina aparece la lista completa de los parámetros que se pueden utilizar en el archivo de configuración. Como las carpetas /run/synapse y /home/media_store no existen, se crean y se cambian los permisos ya que el servidor arranca con usuario y grupo synapse:
mkdir /run/synapse
chown -Rf synapse:synapse /run/synapse
mkdir /media_store
chown synapse:synapse /media_store/
Luego se abre el archivo de configuración del LOG:
nano /etc/synapse/privacidad.xyz.log.config
y se modifica el parámetro filename para que quede:
filename: /var/log/homeserver.log
Se guardan los cambios, se crea el archivo y se cambian los permisos:
touch /var/log/homeserver.log
chown synapse:synapse /var/log/homeserver.log
Falta la creación de los certificados:
dnf install certbot -y
Luego:
certbot certonly --standalone -m yo@micorreo.org -d privacidad.xyz
se copian en la carpeta indicada en el archivo de configuración de Synapse y se cambian los permisos:
cp /etc/letsencrypt/live/tls.kamailio.club/fullchain.pem /etc/synapse
cp /etc/letsencrypt/live/tls.kamailio.club/privkey.pem /etc/synapse
chown synapse:synapse /etc/synapse/fullchain.pem
chown synapse:synapse /etc/synapse/privkey.pem
Ya podemos iniciar el servidor:
systemctl start synapse
y configurar para que arranque con el sistema:
systemctl enable synapse
Si no aparecen errores ya se pueden crear los primeros dos usuarios, uno como administrador y uno normal:
register_new_matrix_user -u admin -p password -t bot -a -c /etc/synapse/homeserver.yaml
Sending registration request...
Success!
register_new_matrix_user -u fulano -p password -t bot --no-admin -c /etc/synapse/homeserver.yaml
Sending registration request...
Success!
Ahora podemos descargar el cliente disponible para todas las plataformas y registrar el primer usuario:
en la pagina que sigue indicar usuario y contraseña y listo. He probado chat, llamadas audio, videollamadas y Videoconferencias (se apoya en Jitsi) y la verdad me pareció muy bueno.
Comentarios recientes