MAtrix Support in Ejabberd 24.02

WHile Digging though the Release notes of Ns8, i came accorss anUpdate for Ejabberd to version 24.02: here

This Pormpted me to look into the release notes for this Version, While doing so, i came accross this article.
Matrix gateway setup with ejabberd / ProcessOne (process-one.net)

I understand that Alot of suers on this forum use ejabberd, and even some enterprise customers of Nethesis.

WHile i understand that we would be supporting and creating a dedicated matrix App for NS8 with the help of @mrmarkuz and @kemboielvis22 . i think supporting the implementation of matrix within ejabberd in ns8 would be a welcome move.

this does not need to be on by default, and could be enabled by user on the admin/setting page however it would provide a nice introduction to the matrix federation, and would make it easier for users who don’t need a fully fledged matrix server and components, but have the need from time to time to send messages across the matrix federation.

@davidep and @stephdl what do you think about this?

As ever a POC could be done to valid the feature, the ns8-ejabberd can be used a lab, and if the feature is not so experimental maybe it could be imported or simply the ns8-ejabberd could be forked to support all features

NethForge aims to support stability.

our current ejabberd App already supports s2s
image

we need to have matrix gateway module enables in ejabberd

am not getting the parts about key

we then have the standard matrix process

of creating a well-known json file on https://matrixdomain.com/.well-known/matrix/server

this gives a bit more context on the key

Within the context of nethserver ejabberd, where and how are these defined?

Under bin/expand-configuration

i can see the following


my assumption at the moment is tht, these define the additional parameters in the ejabberd.yml file
within the givens ones in the context, only one parameter is defined per value.

WHat about if mutliple paramters are required?

ejabberd 24.02 released Package ejabberd · GitHub

1 Like

now remaining to test and validate the matrix cinfig options, after implementation.

Do you think its possible to apply that configuration, without it being natively included in the App.
Basically though editing the ejabberd.yml

edit the template not directly the file

then restart the module

might be abit unrelated question.

SO, ejabberd has an ejabberd.yml file but for the sake of ns8 and being able to modify the file at runtime, we have a defined template with the same name, whcih when modifies updates the original config file.

is that whats happening here? in relation to this
image

before to start the ejabberd service a script trigger to rewrite the template, I suppose you pointed it

given me idea for another solution with multiple yml config files

you can do it also with bash, but I like jinja template

Bump this for @mrmarkuz from this Add Matrix to NethForge · Issue #7723 · NethServer/dev

WOuld it be possible, and now be the right time, to enable the configurations within ejabberd that allows it to speak matrix, since they are already supported.

@davidep is this a case, we should also consider, even as we are working on a dedicated matrix serve rmodule, with most probably additional features and imporvements?!

Let’s ask @Amygos and @giacomo

The ejabberd Matrix gateway is used to federate the XMPP server with a Matrix server.
We already have federation for XMPP but I’ve never seen a real server using it: this is a very little niche feature and the Matrix integration is a littler one.

Adding a feature means maintaining it in all future release: it must be a weighted decision.
More code, more bugs, more support request, more technical debt, less time to work on new things.

I’d say: let’s focus on having a fully working Matrix server with basic feature, then we can improve it by adding one feature at a time.
Eventually we can design the module to be extensible so anyone can put custom config on it.

3 Likes

i thought it was something different.

in this case

then we proceed with this path