Conversation

A friend of mine is considering setting up a Matrix/Element server as an alternative to their Slack. They will have to give most of their users local accounts, as those folks aren't existing Matrix users. They are concerned about docs saying a Matrix homeserver stores BOTH data on locally hosted spaces AND data sent/received to other servers by users.

This raises two questions.

1. Can a local user be banned from joining remote servers, in Synapse?

3
0
0

2. If a channel on a particular server is unencrypted (as far as I remember this is possible), are the contents stored remotely unencrypted on the homeservers of everyone in the channel?

EDIT: Answer is yes

2
0
0

So the answer to my question (1) appears to be

- You can turn off federation on your server

- You can then choose to granularly allowlist servers

- But you cannot granularly allowlist *users*— making the server allowlist not useful, since everyone EVERYONE uses matrix.org

- You may be able to simulate this by being incredibly selective about who you allow in your *rooms*, implying users can't create rooms (no idea how DMs work then)

Seems less useful than one would hope.

4
0
0

@mcc there are matrix/element setups in europe that are isolated from the network and used for high security government stuff(bwmessenger, tchap in germany and france for example). It's true that matrix shares data with other servers but you have to do that if you're using a federated chat system, although matrix is unique in that a room is basically a gigantic json database replicated completely across each homeserver.

1
1
0

@nu_scooter You could have federated identity without federated data. Also, you don't have to use a federated chat system. Nothing enforces that

1
0
0

@mcc matrix is a distributed database with a chat loosely bolted on without much care

1
0
0

@mcc I'm missing something: what would be the use case for hosting the server and letting a user join only local chats? Trying to cut down on server overhead?

0
1
0

And like, "okay, so you just turn off federation, and now Element is Mattermost but the free version supports group calls" WOULD be a workable solution… except… because Element assumes the federated usecase is the only usecase, you cannot sign into multiple accounts from one login. If you're using Chrome profiles or Firefox container groups you can work around this, but if you're using the Element desktop/phone client you can't work around it anymore.

2
0
0

If you're confused what use case I'm trying to: Try to consider the original purpose of Slack (team collaboration for *business teams*, which have different concerns from open source projects and friend groups)

1
0
0

@mcc not saying you should but keet does room invites so if you don't have the room key you cannot get in , also there are expiration dates on those keys .. keet however is fully p2p so maybe thats a deal breaker i dunno , but all that said it works pretty good now a days .. anyway good luck on the matrix server

0
0
0

@mcc you're right about both those things but matrix is the only protocol really well supported outside of things like slack or signal. if you don't care about encryption though there probably are other options. I haven't looked that deep into it but i like the idea of IRCv3 (not sure if they have e2e encryption)

1
1
0

@mcc i wonder if Fluxer (the FOSS Discord thing that recently came out publicly) is viable yet, i feel like it might be easier to deal with since...you know, it tries to copy a more-usable web app

1
0
0

@eramdam i'd wonder if anyone could get this completely right on week one…

0
0
0

@whitequark @mcc … it’s the new Lotus Notes?

(Notes is/was a replicated document-oriented database with a fully-integrated and seamless PKI system for authentication and authorisation. It also had an email client glued to the side because emails are just documents right?)

1
0
0

@nu_scooter well what i mean is non-federated, non-"Protocol" solutions such as Rocketchat or Mattermost exist. they're not necessarily substitutes but they exist.

does ircV3 even have a voice/video chat option?

3
0
0

@jpm @mcc i feel like using lotus notes for chat would be an improvement

2
0
0

@whitequark @jpm *thinks*

Wait. I may be about to say something wildly inaccurate, but aren't lotus notes and zulip both PLATO derivatives?

2
0
0

@dlakelan Is Simplex actually adequately featured and reliable to be used as a Slack replacement including group voice calls for a business?

1
0
0

@mcc @whitequark not sure TBH, never really came across PLATO

0
0
0

@mcc
Ive only used it as a backup to signal with a small group of people. but they do have public groups that you can join which means they seem to be able to handle large groups compared to signal which tops out at 100ish. Basically it sort of looks like it might be but you'd have to test it to really find out.

0
0
0

@mcc rocket.chat is also matrix, I feel for friend trying to change from slack tho, I'm also trying to do that, the matrix clients can be really annoying because they either don't have multi-account or there's some other feature you want that they're missing. you could try to use jitsi alongside it to do video calls with multiple people (matrix only supports one-on-one voice/video) but then you have to deal with a whole separate thing.

1
1
0

@diz @mcc

  1. I'm not 100% sure what you mean by "joining remote servers", but I think setting the federation_domain_whitelist option to an empty list may do what you want? this disables federation entirely, so local users will never be able to be in rooms that have users on remote servers (and so messages will never be replicated to remote servers). if you want to ban specific users from joining rooms with remote users, while keeping federation enabled generally (and possibly allowing some users to join rooms without restriction), then I don't think that's possible.
  2. yes, (end-to-end) encryption is part of the room's state, which is the same between all servers participating in the room.
1
0
0

@olivia hi, thanks— so, what my friend wants is "one way" federation— local users should never be able to join rooms hosted on other servers— but non-local users should be able to join rooms hosted on the local server. note this request may be nonsensical, as i've been assuming that "spaces" are specifically hosted on specific servers (this is what would be desirable for the use case where a "space" is exclusively for projects of a specific company)

1
0
0

@nu_scooter if rocketchat is matrix then why is it rocketchat needs a plugin to do voicechat and element does not?

2
0
0

@mcc

note this request may be nonsensical, as i've been assuming that "spaces" are specifically hosted on specific servers (this is what would be desirable for the use case where a "space" is exclusively for projects of a specific company)

ah, yeah an incorrect mental model. spaces (and rooms) are not hosted on any particular server. their state is replicated between all servers that have users in the room, and no server is (aside from some esoteric edge cases) privileged over the others. room IDs usually have a server name in them (like !8ELS7V4rDN87zC1Utg:computer.surgery), but this just means that the user that originally created the room was on that server. you can keep using the room even if that server is down, or everybody from that server has left the room (and so the server is no longer receiving new messages).

and "people the company gives local server accounts to cannot copy to the company server data the company didn't approve and can't review" is a red-line must have,

and i guess it's basically reasonable if the first isn't possible (given the nature of a chat client), but lack of the second is jawdropping

oh hahaha yeah. it's so bad. probably worse than you are imagining. I know of cases where somebody performed the following attack

  1. send a user on your target server an invite to a room whose icon is an illegal image
  2. the user receives the invite and their client asks their server for the icon image
  3. their server sees that it is a remote media file, requests it from the attacker's server, and caches it locally
  4. report the target server to the cops

it used to be even worse, where the endpoint that the client uses to fetch remote media and cache it on the server did not require any authentication, so you didn't even need to trick a user on the target server to load anything. you could just hit the media endpoint and seed somebody's media store without them ever knowing anything had happened.

it's died down a bit these days but a while ago it was very common to have spammers joining public rooms and posting a bunch of illegal shock images. so like, as an admin you are just constantly worried that you are inadvertently storing this stuff on your server. it wasn't so bad for the server I run because the only users are me and the friend I admin it with, so we would know to go wipe the media store whenever this happened. but like, if you're running a server with lots of users that might not know to tell you, you're just screwed.

1
0
0

@mcc that's a good question... reading their docs a little bit it seems like they use matrix just for federation, there's an entire matrix server implementation built inside rocket.chat or something? I always just thought they provided matrix (they're part of the matrix foundation) i guess its more complicated. It appears to be open source though they have a guide for self hosting.

0
1
0

@whitequark @jpm @mcc I think I remember using some kind of chat inside lotus notes... Circa 2010~12?

1
0
0

@benjamin @whitequark @mcc that would be SameTime, same kinda relationship as Outlook had/has/etc with Lync/SkypeForBusiness/Teams

1
0
0

@benjamin @whitequark @mcc (ie, it’s a completely separate thing that kinda sorta vaguely talks to the other thing)

0
0
0

@mcc @whitequark @jpm zulip was loosely zephyr-inspired, and zephyr was "printer notifications that Ascended into chat" - I don't think anyone on zephyr was more than vaguely aware of PLATO. (I know less about Lotus Notes but the history is probably more conventionally documented)

0
0
0

@mcc It's kind of surprising that Element still doesn't support multi-account in their apps, given that they're trying to attract enterprise customers.

I get that they say you shouldn't need multiple accounts because it is federated like email. But that ignores that lots of people have multiple email accounts, either because their employer requires it or because they want to separate different parts of their life.

0
0
0

@mcc I did this as an experiment to see if I could move my friends group to Matrix instead of Slack. In the end I decided not to, and it was mostly because of hosting costs and my uninterest in maintaining a Marrix host.

I blogged about it here

https://blog.klabbet.com/2026/02/06/installing-matrix-on-azure-app-service-plan/

0
0
0

@mcc @nu_scooter Element could provide voice chat with a plugin only as well

0
0
0
@olivia @mcc I remember this being annoying even just from a database size perspective, I feel like there were ways to trim remote media but it fell into a whole slew of postgreSQL database admining I didn't feel at all like doing (which in aggregate is why I quit running a personal Matrix server myself)
0
0
0