Support Matrix 2.0 and Element X #57
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Recipe needs some upgrade to support element call, matrix authentication service, qr code base login etc.
Currently we have those containers:
For 2.0 we're missing:
redis?synapse-workers?probably notSources
maaaaybe later:
Questions
element-webandmatrix-synapseseparate recipes y/n?element-call, livekit etc. intoelement-weby/n?Hey,
thanks for the initiative. I like the idea to restructure the recipes, with the following goals:
So I would vote in favor of seperating in three recipes:
1.
matrix-synapsemasbelong here in this structure? How deeply is it coupled to synapse? In my proposed logic it would go to "matrix-extensions", although it feels like it directly starts getting messy again :/2.
elementelement-webelement-call3.
matrix-extensionsPreferibly one recipe for a lot of stuff that can be (potentially) used with several servers, with optional compose-files.
One because of standardization for maintainers and operators, no extensive duplication of envs, secrets.
I hope so to build a little team of maintainers, which could support each other instead of splitting up in several recipes
unites:
masOpen questions:
So as to your conrete questions @simon, my vote:
yes
yes, put element-call into element (although it directly starts getting messy probably, because you have to configure matrix-synapse in a certain way to be able to use element-call, right?)
either rename, or create a new recipe "element" to not blow existing deployments.
docs against the new messiness
as already mentioned, this structure will probably create a new "messiness", as it would put things like
masin the extensions-recipe, although you will probably want to use it in every deployment of matrix-synapse. And you would need to change configs inmatrix-synapseto use element-call.But at the moment I would vote for solving this by good documentation.
The alternative would be keeping and extending a "huge" matrix-synapse recipe, and probably do the same for
tuwunel,continuwuity... or to getting lost in dozens of recipes...What do you think?
I like the idea of splitting the extensions and the core. But I think the biggest problem to solve is how to ensure the compatibility between different versions. My matrix update today unfortunately broke the signal/telegram bridges, but I'm not able to fix them, as I'm not deploying any of these bridges. Maybe the extension recipe could specify the last stable matrix recipe version it was still working with. Then people can see if an update might break the extensions and if the extensions need to be tested and upgraded for a the current matrix version.
Yes, I also like the proposed setup with matrix-synapse matrix-extensions and element.
I feel like the mas is so close to matrix itself that I'd put it in the core recipe. We can always allow to switch those things off with separate compose.yml files
also the extension-recipe with all the bridges, potentially maubot (?) etc. will already feature a number of extensions, too
Off-topic but @p4u1, this makes me think of your "sub recipes" ideas 🤔
Don't know what it's exactly about, but sounds like we could need this here ;)
I haven't thought about the problem, that we give up some kind of stability/guarantee that the various components work together. But nonetheless it seems a good objective to me, to "reduce" the matrix-synapse recipe a bit and to gather together various extensions of the ecosystem in one extra recipe.
The
matrix-extensionsshould probably at least mention in the docs "last known matrix-synapse version".Another thought I had would be to provide some kind of "meta-configs of a known-to-work set of recipes" with
alakazamif it's somehow adopted inabra. This would allow to maintain working/tested combinations of recipe-versions nicely, without having to put everything in one recipe.In any case we probably should make the image-versions flexible via env-vars in
matrix-extensions.As to
mas@simon seems a good plan to me, including it in matrix-synapse for the moment.Another thing aside regarding the general recipe layout - the env list in the compose.yml is a bit frightening. I imagine such things can keep people from touching stuff in a recipe
This also touches the point of detailed configurations of such config files. I've wondered about different approaches for supplying configs to apps aside from only .envs - e.g. just provide a path for a configmap and edit configs in the file itself.
Config files may change between versions, sometimes they need to be adapted and with all the templating to fill in values via envs, this can get quite complicated. And we have to deal with all the different escaping strategies for parentheses, quotes etc.
but I'm also sorta leaving the actual topic here 😆
Soo,
masservice integration is done, rfc #58QR-Code login looked easy on the surface but revealed deeper problems:
$STACK_NAMEconvention with all the underscores, e.g. in the servicematrix_dev_kolli_cloud_masmatrix_authentication_service.endpointand runs IDNA encoding on the hostname._) are not allowed in IDNA labels →idna.core.InvalidCodepoint→AuthMetadataServletreturns 500 → clients (e.g. Element X) cannot use MAS/OIDC.So I wonder how we should solve this..
I guess that's a similar reason behind all these kinds of (ignoreable) error logs in various recipes?
@decentral1se have you got any ideas? Do we really need to change the stack name naming convention?
This is also relevant I guess.
Gnarly! I believe you can hack it and just do
STACK_NAME=IReallyKnowWhatImDoingin your.env? Test with care 🙃 But yeh, if you really need to get rid of_, then you still get caught withIReallyKnowWhatImDoing_dbor whatever. You could patch this inabrabut it sounds like a recipe for disaster 😆 Good luck!