I work with a mutual aid group that currently handles communications with Signal. This is acceptable from a security and privacy perspective, but severely lacking from a discoverability and reference perspective.
I’m looking for a text chat (it’s okay if it also supports voice and or video, but we don’t really need that) that is kinda similar to Slack or Discord regarding rooms, but that can be self hosted (obviously). Our general workflow is to allow new volunteers to join our “General chat” and then either be invited or join via open link any of the working groups they fancy. What I’m hoping for is a software that can allow us to have all those working groups in a side bar to increase engagement with some of the more behind the scenes options. I’d also love to have the ability to easily retain posts or bookmarks so we can build up quick references where we actually communicate. I haven’t found a clean way to handle the general chat for 2 reasons: 1) we would like to keep it open in such a way that anyone who wants to can join, and 2) there’s currently over 800 people and we regularly add more.
All told that makes the bulleted requirements for what I’m hoping for be:
- text chat software
- rooms/channels
- ability to pin posts
- ability to add arbitrary bookmarks or links
- ability to have rooms either public or private
- ability to have at least one room anyone can join without prior approval or invite
- ability to support at least 1000 users (not necessarily concurrent client connections–that can probably be about 50)
- ideally the communications can be encrypted
What I don’t need but might be nice:
- voice
- video
- file share
- polling
- reminders
- plugins
We value data ownership extremely highly hence looking for self hosting options over Slack or Discord. It’s okay if the general chat exists in a separate server so long as the main server with all the other rooms can federate with it somehow.
We do have some people with IT experience, and I am software engineer of over a decade so technical barriers in setting it up shouldn’t be an issue, but account creation and use for volunteers needs to be dead simple.
If anyone knows of something like this (or even a FOSS tool we may be able to extend functionally to fit the last 1 or 2 bullet points) I would love to hear your suggestions.
Thanks so much!
https://github.com/fluxerapp/fluxer
not sure about the security tbh. but it’s very discord like
I think Matrix offers most of the functions you need, “Discord but selfhostable and with E2EE” is pretty much what the Matrix devs are going for. Though it kinda has issues with ease-of-use, performance and stability, so TBH I doubt it’s going to work for you.
Yeah, Element on Matrix was the most promising thing I’d seen so far, but the ease of use and the community edition being capped at 100 peeps were the most concerning aspects for me. I might dig into it some more and see what a couple other volunteers think of it.
The 100 users for the Community edition is more of a suggestion and is not a hard cap, according to this answer: https://github.com/element-hq/ess-helm/issues/1027
E2EE with large groups is a hassle because you have to do messy key changing protocols every time somene leaves the chat (since you want to invalidate their keys when they leave). If you don’t mind the server (self hosted) seeing the plaintext that’s a lot simpler. Tbh I’ve simply used nextcloud chat or irc for stuff like this. I can’t really recommend nextcloud for various reasons but it was easy for me to set up a chat when I wanted one, since I already had a nextcloud server. Matrix is supposed to be the post-IRC IRC so I’d check into it, but I haven’t used it so far. I’m of the impression that Matrix isn’t E2EE (the server can see the private stuff) but maybe I’m wrong. I think Signal tries to be E2EE but has other problems, including that MLS (the E2EE mechanism) inherently requires a client app instead of being usable with just a browser.
I think Signal tries to be E2EE but has other problems, including that MLS (the E2EE mechanism) inherently requires a client app instead of being usable with just a browser.
I’m having trouble imagining what in Signal’s implementation of the Double Ratchet, or any part of RFC9420 Message Layer Security, would inherently require a client app. Perhaps you mean that there is no readily available browser-implemented API for carefully managing secrets? Even in that situation, all the libraries needed to implement the RFC can be compiled as WebAssembly or to JavaScript (with the assumption that the browser and OS are outside a malicious actor’s capabilities) and ran that way.
To be clear, I’m not suggesting Signal is perfect, and papers about problems found in Signal and other apps are readily found, like this one from last month. But with that said, it does appear that OP’s described use-case involving hundreds of users in group chats is very much not what Signal was designed for,.
All in one solution, your describing nextcloud. Though if you started in signal maybe its not the right solution for what you’re doing? if the group is official enough for there to be donation and tax records maybe go nextcloud.
https://github.com/stoatchat/ is an option, its made good progress since discords first try at age restrictions.
setting up a few matrix servers is probably the more secure way to go. and either mumble for voice or jitsi if you want voice and video chat capabilities. decentralize and avoid a situation where one self hoster leaving or one domain seizure shuts everything down.
I did not realize that nextcloud had a talk product. That actually looks really promising. I’ll have to see if I can setup a passwordless login through authentik or something to allow accessing the general channel.
Thanks for the rec.
Don’t know if Snikket pass all your requirements, but have a look:

