Matrix - 4. De vuelta al inicio, de Gotify a Matrix

· 4 min · @Self-Hosting · #VPS #Docker #Matrix #Gotify

Como ya expliqué en este artículo, ante la imposibilidad de usar Matrix me pasé a Gotify aunque me negué a dejar de lado a Matrix y seguí investigando, el porqué no funcionaba correctamente y así llegado el momento, poderlo usar o sino, tener una alternativa Gotify.

Aquí sí que tengo que dar las gracias a Lorenzo de atareao, por toda la ayuda que me ofreció para resolver el problema que tenía 👏.

Lo primero fue facilitarme el docker-compose.yml que él estaba usando para Matrix, os lo pongo a continuación por si os sirve de ayuda, pero modificado para mis necesidades:

conduit:
   image: matrixconduit/matrix-conduit:latest
   container_name: matrixConduit
   restart: unless-stopped
   volumes:
     - ${HOME}/config/matrix/db:/var/lib/matrix-conduit/
   environment:
     RUST_BACKTRACE: full
     CONDUIT_LOG: warn
     CONDUIT_SERVER_NAME: matrix.servidor.org
     CONDUIT_DATABASE_PATH: /var/lib/matrix-conduit/
     CONDUIT_DATABASE_BACKEND: rocksdb
     CONDUIT_PORT: 6167
     CONDUIT_MAX_REQUEST_SIZE: 20_000_000 # in bytes, ~20 MB
     CONDUIT_ALLOW_REGISTRATION: false
     CONDUIT_ALLOW_FEDERATION: false
     CONDUIT_ALLOW_CHECK_FOR_UPDATES: true
     CONDUIT_ENABLE_LIGHTNING_BOLT: true
     CONDUIT_TRUSTED_SERVERS: '["matrix.org" ]'
     CONDUIT_ADDRESS: 0.0.0.0
     CONDUIT_CONFIG: "" # Ignore this
   networks:
     - proxy
   labels:
     - traefik.enable=true
     - traefik.http.services.conduit.loadbalancer.server.port=6167
     - traefik.http.routers.conduit.entrypoints=websecure
     - traefik.http.routers.conduit.rule=Host(`${MATRIX_SERVER}`)
     - traefik.http.routers.conduit-secure.tls=true
     - traefik.http.routers.conduit-secure.tls.certresolver=letsencrypt
     - traefik.http.routers.conduit.middlewares=cors-headers@docker
     - traefik.http.middlewares.cors-headers.headers.accessControlAllowOriginList=*
     - traefik.http.middlewares.cors-headers.headers.accessControlAllowHeaders=Origin, X-Requested-With, Content-Type, Accept, Authorization
     - traefik.http.middlewares.cors-headers.headers.accessControlAllowMethods=GET, POST, PUT, DELETE, OPTIONS

Con este simple docker es lo único que se necesita para instalar Matrix, no como lo tenía yo antes que eso sí que era complicado, ahora sí que ya teníamos todas las herramientas para hacer funcionar a Matrix, o eso creía yo.

Una vez que ya tenía el docker, lo único que me quedaba era probarlo, porque esta nueva manera de instalación, era mucho más sencilla que la que yo tenía antes. Pues aquí vamos a ver qué resultado obtenemos:

usuari@debian:~$ docker compose up -d conduit

Después de la instalación, todo funcionaba correctamente, pero seguía con el problema de que las notificaciones no me llegaban al móvil.

Aquí busqué ayuda de todo el mundo, para saber el porqué seguía sin funcionarme las notificaciones, también probé Synapse, pero con el mismo resultado, también llamé a todas las puertas y todas me las encontraba cerradas o miraban la mirilla, pero no me abrían la puerta ;), hasta que al final pedí ayuda a atareao que muy amablemente se ofreció a ver si conseguíamos llevar a buen puerto este problema que tenía, porque él, con esta misma configuración, no tenía problemas.

Os pongo un resumen de todo cómo fue todo, porque sino sería muy largo todo y os daréis cuenta de lo que una pequeña cosa, los problemas que puede llegar a dar:

nota: atareao: ¿Cuántos usuarios tienes en Matrix? yo: Uno solo, que es el adm que soy yo atareao: Crea otro usuario y manda los mensajes con el otro usuario

Aquí fue cuando mi cerebro explotó en mil trocitos y pidiendo a @Atareao que acabe con mi sufrimiento 🥹

nota: yo: @atareao ¿Tienes cerca alguna cuerda larga y un barranco? yo: Para que me ates y me lances por ese barranco yo: He hecho lo que has comentado yo: He creado un usuario que es el administrador de los canales y luego me he creado mi usuario. yo: Entonces el adm me ha invitado a los canales y con el script que te he pasado estoy enviando mensajes a la sala y me aparecen las notificaciones yo: Por eso, yo me ato de pies y manos y tú solo tienes que empujarme hacia el barranco atareao: Ya… Tiene lógica que si te envías a ti mismo un mensaje no te notifique que tienes un mensaje nuevo

Llevaba 1 mes con este problema al que no le encontraba solución, y todo era por culpa de que solamente tenía un único usuario, y por eso las notificaciones no me llegaban. Que si te pones a pensar, tiene su lógica, porque uno envía un mensaje al canal, para que al resto de usuarios les llegue la notificación. Pero claro es una cosa que no piensas, hasta que alguien te hace caer en ello.

Gracias atareao por toda la ayuda que me has dado.

Ahora sí que sí, tengo a pleno rendimiento mi servidor de matrix para poder usarlo para las notificaciones de todos mis servicios.

De momento, tengo en funcionamiento:

  • El envío de notificaciones cuando se generan los archivos XML de los podcast que descargo.
  • Las notificaciones de la ejecución de las copias de seguridad, que lo podréis ver en este artículo.

Me quedan pendientes las notificaciones:

  • Notificaciones de unRaid
  • Notificaciones de flexGet

Pero con estas tendré que pelearme un poco más porque tengo que usar pushBits, tal como expliqué en este artículo.

Alguna cosa más de la que me gustaría estar informado, pero para eso tengo que investigar si se puede hacer o no. Ya os iré informando de los progresos que voy teniendo.

◇ Referencia