There seem to be plentiful options for text chat servers, so I’m curious for those that self-host their own, what their preferences & experiences have been with them.
Also those mentioned in the title were just a few examples, if you run something else, e.g. Revolt or Mattermost or something else less popular, would be interested in reading about it!
I’m a big fan of Matrix, as it’s easily accessible from anywhere - plus I already have a server for it spun up going on two years now which makes it easier for me.
What’s the advantage of self hosting Matrix?
I can setup bridges, so I can communicate with any other messaging systems (whatsapp, discord) within matrix
Personally, its a combination of the following reasons:
-
I’m not held to another server, and self-hosting my own makes sure that whomever hosting the server doesn’t just close the doors one day and decide they’re no longer going to do so
-
I find it fun to setup my own services, like Matrix, Lemmy, Mastodon, etc
-
I control what servers are blocked / defederated from, from my knowledge though defederating on Matrix doesn’t happen nearly as often as it does for ActivityPub based platforms however.
-
I created Matrix accounts for some of my family members to communicate with, and if they lose the password I know that I can reset it for them rather than hoping they setup the account recovery info correctly.
-
I host Synapse (Matrix)
Runs without problems and it just works 🌞
Mine just stopped working when not on the local network and I haven’t had the energy to find out why and then to fix it and then to convince everyone I’d brought in that this time will be different
Never used it in LAN. Always used a VPS for this with a domain name, no DynDNS or similar.
How much does a vps cost running your matrix client? It can’t be more than a couple bucks a month right?
I pay around 10€ per month. The VPS has more services than.just Synapse. Mastodon, Database, Immich, Nextcloud, gotify… And a few more 😁
I use the VPS 2000 from NetCup
I figured given that I’m on c/selfhosted that it probably wasn’t only synapse just was curious about overhead.
I’ve got a little raid 5 8tb server under my desk that I just use locally to fuck around with/VPN back into my house/store larger backups on.
I’d never want to be using it to host anything like a website or service, so I’m always curious what the web hosters have and pay.
Mine only works on lan. The ddns checks out, but clients over the internet get nothing.
Maybe a problem with portforwarding 🤔
I checked that too. It’s just cursed.
XMPP with prosody is good once you’ve figured out the modules you need.
Unfortunately, I had to quit a few years back as there was no reliable iOS client. Long story short: notifications were never working as expected on that plateform.
Matrix.org is overkill for my needs, but at least notifications work accross the board 👍
Snikket.org is an xmmp server that bundles common extensions
And has very well working notifications support on iOS with the included app.
XMPP is in my opinion the best compromise between modern features and lightweight to selfhost. Also of course fully federated.
You can learn more about it on https://joinjabber.org
Or if you just want to try it with a nice web-client, try https://movim.eu
I’m in a irc channel with a bunch of internet friends. I like how ancient it is, it reminds me of the old internet. The limitations are severe however and I would never suggest to anyone to use IRC as a text chat server. Without these people and the nostalgia I would go for matrix I think.
The good news is that with ircv3 being worked on, it may soon(ish) be quite dusted. :) It adds features like reply threads, history from when you weren’t connected, message editing and deletion, and more!
I both love and hate this. I love to see IRC getting some love and these features are massive QoL improvements. I say this as a regular IRC user. On the other hand though, no touch da fishy.
They do maintain the simplicity of the line oriented protocol, so I’m fine with that. :)
That’s the strongest point of IRC, IMO, and why it’s kept so simple : every instruction is a plain text line, period. It makes it incredibly simple to build on top of it. You don’t need to introduce a dependency to a project that probably will be abandonned in a few years, at which point you’ll have to rewrite your codebase to use an other dependency, for a few years. You just open a TCP connection, you read lines from the socket and write lines to it, each line is its own instruction structured in well known fields, and that’s it. It’s so simple!
As long as IRCv3 sticks to that, they have my blessing. :)
Thanks for mentioning this! Had no idea how much I want this.
AFAIK even without ircv3 history is possible - at least Unrealircd offers such an option (https://www.unrealircd.org/docs/Channel_history). However, I have only ever seen this utilized once, on a very small server.
Yep, as often, the extension of the standard comes from non standard features developed here are there (as you can see in the participating organizations block, most of the big names are working on this). The difference in ircv3 is that you can expect to see all those features everywhere, instead of having this software implementing this feature, that other one having that other feature, and you have to choose which one is the most important for you. Basically, it’s a rebase of the standard. :)
https://thelounge.chat/ with any IRC server (but IRCv3 like https://ergo.chat is best) works very nicely, including mobile support and push notifications etc. Also includes a bouncer for full history and a file upload service for image sharing.
Thanks, i do already know the lounge, but I self host quassel and have my own self hosted image sharing solution.
The limitations are severe however and I would never suggest to anyone to use IRC as a text chat server.
I’m a little confused, if all you wanted from it was text chat, isn’t that pretty much exactly what it is as a result of its limitations? Regardless, for the majority of folks I think you’re probably right that it may not be advisable given its limits.
Oh well, there are different implementations of IRC, and some limit you more than others. Flood protection is a pita if you want to share long text, since max message length is not that much. Netsplits are still a thing and your nick can’t be longer than 15 chars. Text formatting works on most servers, but that’s no guarantee. The length of a channel topic is also limited. You interact with the server only through the same messages you send to your chats. You need some kind of bouncer to still follow a chat if offline.
I’ve been self-hosting Matrix for like 2+ years now. The setup yaml was a lot to get thru in terms of reading what each set of options did. That felt like a lot but the reality was only a few things actually needed to be set and/or changed to make it work the way I wanted. Thankfully Matrix documented all the options out.
Overall, I’m extremely happy with Matrix. It has very much been set it and forget it once it was up. I’m excited to see where Matrix 2.0 goes.
The new Element X is really awesome. Since it’s now in public beta I’m going to setup dendrite + mautrix-signal/-whatsapp/-discord behind their new matrix 2.0 sliding sync proxy.
The only thing I’m going to have to figure out is whether it’s possible to disable image compression for bridges, because the quality was pretty bad the last time I tried (not surprising after being compressed 3 times).
I grabbed Element X to try it out but my self host doesn’t support sliding sync. There is a sliding sync proxy docker that got put out to help but not sure I want to set that up if it will eventually get added to main. Might have to just wait. 😔
I’ll definitely set up the sliding sync proxy for the time being. It’s such a big improvement (after the initial sync) that I don’t want to wait for native support in conduit. Especially since conduit takes some time to support new features quickly.
How long did your initial sync take?
I’m not sure since it’s been a while since I tried it on my matrix.org account, but I’d say it took about as long as logging in on a new device.
Do you run it as a mostly isolated/self-contained instance, i.e. not federated/connected to others? I’ve read here & there that for some it seems to bog down as they try to operate it as a federated instance.
I run it with a whitelist of other instances I do federate with. I have actually been considering opening it up.
Matrix (synapse) + element-web works for me, although I didn’t get many people on board.
Mumble is what I use the most, with 2-10 users - it’s primarily for VoIP/gaming comms, but also has basic text chat. Text messages are not persistent though, and there is no web interface, only desktop/mobile clients.
For pragmatism, I just use Signal (not self-hosted) because it is at least partly FOSS, looks reasonably secure/private, and the UX is good enough so I could get people to use it.
I recommend checking out dendrite instead of synapse since it is more lightweight.
I have tried a few other matrix servers (dendrite and conduit), something always ended up not working because they don’t implement everything synapse (the reference server) does, or there were bugs - generally audio/video calling or file transfer would break. Synapse worked out of the box. It also has good documentation.
I don’t see any performance problems or abnormal resource usage with synapse either. As I said I don’t use it that much, so maybe there is something nasty I didn’t see yet. From what I’ve read, it is only a problem when you federate with “large” instances/rooms, but my server is not federated, it’s just a basic private chat server.
Yes, synapse performs and scales well at this point. They had to optimize it for the large scale deployments (e.g. government, health care). Dendrite and conduit need less ram after joining large rooms. Conduit even idles around 100MB if it’s only on few small rooms, which is pretty awesome.
I never actually used audio/video calling since I mainly use matrix for communities and sometimes bridging, so dendrite and even conduit worked well for me for a long time. Now that dendrite is baasically feature complete I’m curious when was the last time you used it? I remember having issues with bridges one or two years ago.
Now that dendrite is baasically feature complete I’m curious when was the last time you used it? I remember having issues with bridges one or two years ago.
About that time, yeah, ~1 year ago.
I needed a full replacement for RocketChat (ditched RC for many reasons, unaddressed security/privacy issues, painful and frequent major version upgrades, dependency on mongodb, corporate-driven development/removing security features from community edition, no lifecycle/EOL policy…) so I needed proper file upload/audio/video chat integration - Currently using the jitsi-meet integration, but might switch to element-call someday… In this regard my current setup appears to work well, so there’s no incentive to change…
I also wanted to set up a few bridges, started implementing the IRC bridge but didn’t go very far (tried going off the beaten path and making it work with podman, it might take a while). The steam chat bridge is also planned, but it doesn’t appear to be very well-maintained and I’m afraid it will break without warning, and the signal bridge which looks OK.
Currently I’m juggling between clients for all these different chat networks, feels like it’s 2002 again.
Ansible role to deploy/maintain Synapse + Element-web here if you’re interested.
Never change a running system :D
Thanks for the link to playbook. Since I only need a few bridges I just used docker compose and set the services up manually. I’m probably going to set it up with nixos at some point (though I’m gonna have to figure out how well an IPv6-only matrix server works, since my ISP took my v4 away on favor of ds-lite).
Matrix for a few years now. Proxying it correctly is the only difficult part.
Place where you have most of your friends…
Used to xmpp, but it died naturally over the time and someday I just stopped my prosody server. Nowadays - a bit of IRC (few friends still are there) and discord (not selfhosted, but from all the alternatives… feels best).
XMPP didn’t really die a natural death, it was kind of murdered. It’s still around though, and works great, but of course the problem is as you mentioned — your friends probably aren’t using it.
I mostly love discord. I wish it could be self hosted with federated identities, though.
Have you tried Revolt.chat?
Correct me if I’m wrong, but the app only works with their hosted version, and I assume the selfhosted version doesn’t let you join different instances with the same account, right?
Basically, there’s no point in going to something I won’t be able to convince my friends to be on.
AFAIK, It has a Discord bridge. So friends using discord will be able to interact with you on your server. You can selfhost, accounts aren’t federated (like Lemmy), posts aren’t federated on other servers (unlike Lemmy).
Innnteresting. Thank you; I will check that out.
Matrix but then I realized I only used it for the bridges so now I use Beeper instead. RIP my Matrix server which only served two people.
Beeper is pretty good, but the security model is only acceptable with self hosting for me. I’m yet to set up the LinkedIn bridge, but I’m pretty close to what they offer.
I recently started hosting XMPP with Prosody, and now try to get people besides my family there. Thought of Matrix but it seems to be the same thing but bloated. Most of my groupchat socialization is on IRC (I have a bouncer in the same place), but that’s not with people I know IRL.
I used Mattermost for a community project, but had trouble getting people to install/use/learn yet another client.
Matrix is good, though I’ve been reconsidering it ever since I read this: https://telegra.ph/why-not-matrix-08-07
Also I’ve considered it less than perfect since they added encryption and managed to make it a hell to set up. If you can’t get people to understand Mastodon because “yOu hAvE To cHoOsE A SeRvEr” how the hell are you going to get them to set up a Matrix account when it involves downloading files and other crap that you need to keep with you when setting up all your clients.
Revolt looks nice but until it’s possible to use one account (and browser tab) to access multiple servers (in the computing sense, not the Discord sense), it’s not going to be ideal as a Discord replacement.
Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I’ve seen in this thread:
Fewer Letters More Letters Git Popular version control system, primarily for code IP Internet Protocol SSO Single Sign-On TCP Transmission Control Protocol, most often over IP VPN Virtual Private Network VPS Virtual Private Server (opposed to shared hosting)
5 acronyms in this thread; the most compressed thread commented on today has 11 acronyms.
[Thread #119 for this sub, first seen 8th Sep 2023, 07:35] [FAQ] [Full list] [Contact] [Source code]