Support Matrix 2.0 and Element X #57
Open
opened 2026-03-27 12:08:41 +00:00 by simon
·
9 comments
No Branch/Tag Specified
main
renovate/nginx-1.x
renovate/ghcr.io-element-hq-matrix-authentication-service-1.x
renovate/matrixdotorg-synapse-1.x
renovate/dock.mau.dev-mautrix-telegram-0.x
newmain3
upgrade-7.2.0+v1.154.0
upgrade-7.2.1+v1.155.0
compress-and-federate2
renovate/postgres-18.x
chore/meet.wiki.cafe-deployment
fix/3wc/server-name
compress-and-federate
add-matrix-authentication-service
feat/3wc/caddy
compress
feature/add-qr-login
6.8.1fix
auto_join_room_list
auto-join-rooms
cas_expose_maxupload
old-signing-key
added-env-vars
addtional-env-vars
homeserver-config-updates
backupbot
serve_server_wellknown
coturn
7.3.1+v1.157.1
7.3.0+v1.155.0
7.2.1+v1.155.0
7.2.0+v1.154.0
7.1.1+v1.149.1
7.1.0+v1.149.1
7.0.2+v1.149.1
7.0.1+v1.149.1
7.0.0+v1.149.1
6.8.3+v1.139.2
6.8.2+v1.139.2
6.8.1+v1.139.2
6.8.0+v1.139.2
6.7.1+v1.133.0
6.7.0+v1.133.0
6.6.3+v1.124.0
6.6.2+v1.124.0
6.6.1+v1.124.0
6.6.0+v1.124.0
6.5.0+v1.117.0
6.4.0+v1.116.0
6.3.0+v1.113.0
6.2.0+v1.113.0
6.1.4+v1.112.0
6.1.3+v1.111.1
6.1.2+v1.111.0
6.1.1+v1.110.0
6.1.0+v1.110.0
5.0.6+v1.100.0
6.0.2+v1.100.0
6.0.1+v1.100.0
6.0.0+v1.100.0
5.0.5+v1.100.0
5.0.5+1.25.3
5.0.4+v1.100.0
5.0.3+v1.100.0
5.0.2+v1.93.0
5.0.1+v1.93.0
5.0.0+v1.93.0
4.0.0+v1.93.0
3.9.1+v1.87.0
3.9.0+v1.87.0
3.8.0+v1.84.1
3.7.0+v1.82.0
3.6.0+v1.81.0
3.5.0+v1.81.0
3.4.0+v1.80.0
3.3.0+v1.78.0
3.2.0+v1.77.0
3.1.0+v1.76.0
3.0.0+v1.74.0
2.6.0+v1.74.0
2.5.0+v1.73.0
2.4.0+v1.72.0
2.3.0+v1.71.0
2.2.0+v1.68.0
2.1.0+v1.62.0
2.0.0+v1.58.1
1.3.0+v1.55.2
1.2.0+v1.52.0
1.1.0+v1.51.0
1.0.1+1.48.0
Labels
No items
No labels
Milestone
No items
No Milestone
Assignees
3wordchant
aadil (Aadil Ayub)
abra-bot (Abra Bot)
ammaratef45
amras (Sarma)
Apfelwurm
appletalk
arjan
basebuilder
BornDeleuze
Brooke
carla
cas (Cassowary)
codegod100
coopcloud
cyrnel
decentral1se (d1)
dede
devydave
fauno (fauno)
flancian
Frando
iexos
jade (Jade Ambrose)
javielico (Javielico)
jjsfunhouse
jmakdah2 (Jackie Makdah)
joe-irving (Joe Irving)
kawaiipunk (KawaiiPunk)
knoflook
kolaente
lambdabundesverband
linnealovespie (April)
marlon (marlon)
mayel
mirsal
moosemower
moritz
nicksellen (Nick Sellen)
notplants
oxaliq (sorrel)
p4u1
pau
pharaohgraphy (Andrew 🐦🔥❤️🔥✴️)
PhiNatalie
renovate-bot (Comrade Renovate Bot)
ripclap
rix
rscmbbng
sef (sef)
simon
sixsmith (Sixsmith)
stevensting
tobias
trav (Trav Fryer)
val (val (he/him))
vaznasty
virtualboys
wolcen (Chris Thompson)
wykwit
xynosis
yksflip
Clear assignees
No Assignees
simon
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: coop-cloud/matrix-synapse#57
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
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!