I want to setup a matrix instance to help increase friends and family’s privacy. Is there much value in creating my own instance?
I’m a beginner to linux and coding, but am good at following the steps on a video tutorial.
Alternatively i could get everyone to sign up on a preexisting instance + download the element app.
Thanks for sharing your opinions !
I just did this recently, using the matrix ansible deploy. It was a LOT easier than expected.
Congratulations
Thanks for this. I’m gonna read up on the ansible deploy. Most likely for a digital ocean droplet.
Is your server open to sign ups? If so, I might consider making an account!
Not yet, and I haven’t started advertising it yet or anything.
I would recommend you rather look at Snikket, which is a really easy to setup and use XMPP server with nice mobile clients. Perfect for a small family server and very easy to setup.
A Matrix home-server is not too difficult to setup either (conduit.rs is easiest IMHO), but in the medium term it is quite server resource intensive to run as it needs a relatively fast server and has an ever increasing database that can easily surpass the SSD storage available on cheaper VPS.
Appreciate your alternative here.
Why is Matrix so resource intensive compared to XMPP ?
Matrix is basically over-engineered for a chat protocol. It uses a very complex git like distributed database with high CPU and RAM demanding merging operation to ensure a consistent state between the participant servers. In addition this data-structure means that a lot of the meta-data (room-state) can never be erased and gets replicated on every server connecting.
XMPP on the other hand is specifically optimized to be highly scalable (proven to work with billions of users) and tries to minimizes the metadata data-sharing between servers (although that could still be improved).
What is this snikket thing? How is this different from XMPP? I don’t get it.
Its like a Linux distribution…not like Prosody itself that basically is like a “roll your own OS”. Snikket comes all preconfigured for the typical use-case of a small private server, has a few bleeding edge extensions like nicely integrated invites and a administrative GUI, and also has some rebranded clients (based on Conversations & Siskin) with some small usability improvements and preconfigured to work best with the Snikket server.
It is basically an attempt by one of the main Prosody developers to make XMPP more accessible and under a unified “brand” to solve some of the “too much choice” issues XMPP has.
“too much choice” issues XMPP has
My one prosody server has 3 different type of clients (including iOS and android), all sending fully end to end encrypted text, video, audio to each-other. Works very well.
In my opinion the “too much choice” is not an issue with XMPP. The lack of usage issue is most likely users opting for convenience while sacrificing privacy. Most people avoid investing the time it takes to figure out XMPP, even if just using a client on a preexisting server.
I even saw that my server can talk to other XMPP servers. So technically, my family could receive messages from other users on different servers.
The thing about Snikket is, just like matrix, they get funding from shady sources.
I tried snikket but couldn’t get video calls to work unfortunately… Do you know of a good guide that explains how to do set up video calls?
It should work out of the box, but video calls are especially difficult to establish on some mobile phone networks using CG-NAT. Make sure you have the right ports open for STUN/TURN on your server, otherwise maybe ask on the Snikket support chat room?
Thanks. Do you know how to test if a phone network uses CG-NAT?
Basically all do, but some are worse then others. Check if it works when using the same wi-fi connection first.
Yes. Prosody/conversations video + calling works on my wifi & also on wifi to mobile1. But does not work for ‘mobile1’ to ‘mobile2’ data.
I’m having the same calls issue with Prosody server. It’s because of NAT routers on mobile networks. Apparently need to setup a stun and turn server
Thank you. I ended up doing this.
However snikket has some shady funding.
I went for prosody server and set my family up on conversations, blabber, and chatsecure clients. Works great for sending text, pics, videos, voice clips. All e2e encrypted !
As a linux beginner, it was prety easy to setup (provided you have the time). Only issue is with voice/video calls. They use p2p instead of going thru sever, so can’t connect well, especially on mobile networks behind NAT. Apparently I need to setup up a stun & turn server.
However snikket has some shady funding.
Hmm, where did you get that impression? They are funded by the EU Commission / NLnet.
And besides… Snikket is made by one of the main Prosody developers, so it would be the same funding ;)
But if you got your Prosody server to work fine, no need for Snikket at all :)
I have not hosted a Matrix instance before, but I have read quite a bit about it and talked to a few people who do and have. Is it worth the effort? In many cases, it seems not to be. Also it depends on how much effort you think is too much. If installing and running a server for you is easy, then it could be worth it. If you know that your server won’t run out of resources, then it is probably worth it.
Matrix is known to be resource-heavy, and it will need an infinitely-growing amount of storage unless you can figure out some way to reset storage. Otherwise, you are most likely to need to look for a way to slow the rate at which the data grows. This could mean things like turning off federation (but this makes it less useful), or strictly limiting how many users your server can have. (Only you? That might be alright.)
For every user on your server who joins a room, your server must keep an entire copy of the room since it was created. Some of the data can be thrown out, but a lot of it can’t. To get back the space I believe you would have to part from the room and make sure no one else in your server is joined to it, then I think it would be automatically pruned. So you could, for example, “roll” your rooms by using them for a time, then quitting them and replacing them with brand new ones. (Although if I’m wrong about this, I hope someone will correct me.)
I used to be on a nice federated Matrix server that was public and being run by an ISP, so I thought it would be very dependable. The server worked when it had a small, fast disk (SSD probably). That disk ran out of space quickly, and was replaced by a slow, large disk. Because the new disk was slow, the service crawled to a halt. I then had to migrate back to matrix.org. Disroot is another example; it was a popular federated server, and they were forced to abandon it.
I actually don’t see any reason not to use matrix.org unless you just want the experience or know-how. As a hobby, if running a Matrix server brings you joy then absolutely do it.
Personally, what I do is run an XMPP server, and I found it totally to be worth it. Having that also makes bothering to set up Matrix seem like less worth the effort. (But then, why not both?) People can run small XMPP servers that use a miniscule amount of resources. I just checked, and my ejabberd server, which hosts ~7 people and a couple active group chats, is taking up all of 21 megabytes. (I couldn’t believe it so I had to check it twice.) It is configured to store all messages and uploads for 30 days, and it’s using less storage than it was a couple months ago. (Last time I checked it was more like 40 megs.) Can Matrix do that?
That’s amazing. XMPP seems like the way to go.
The only disadvantage to it is that it’s not federated like Matrix, right ?
XMPP was federated long before Matrix even existed ;)
Indeed. Different XMPP servers like prosody or ejabberd can talk to eachother. Quite cool, and simple to setup.
Matrix use a lot resource for instance, so if you think that you truly need it go try if your server computer will be enough for it, otherwise XMPP is only option for low tech
synapse has gotten better for CPU and memory usage recently, conduit and dendrite are even better as well as for disk usage not really much you can do about that sadly unless you use a S3 bucket as storage instead, if you have fast enough internet
if you get yours friends and family to use your instance, definitely
but make sure it’s stable and fast, don’t want to give them a bad impression
If you want, you can try to give the newly released Conduit Matrix server a try, it’s light on resources, so the most basic plan from DigitalOcean, or Vultr would power it just fine.
That said, you’d need to find out how to at least deploy a Docker image onto a server for this to be of any use to you whatsoever.
its released into beta not fully done so theres still a fair few missing features and bugs
Haven’t heard about conduit. Thanks. Does this also allow for video chats via jitsi like the synapse server?
I do. But only for myself. I bridge whatsapp with it. Currently using dendrite, not v1.0. So I prefer not to make my family use it.
I have some of my family on an existing instance.
How’s your experience with Dendrite? I’m interesting in hearing all the details. A single-user instance sounds easier than a multi-user one. However, why do you prefer that your family not use it?
Because it is still buggy. It is still not 100% compatible with synapse. It is much more lightweight (I think, I haven’t tested synapse and I will never do so). I think that there are missing some settings, for example, notifications (I cannot mute notifications and other related) and yesterday I tried to change my display name but my server went crazy and I had to restart it. I’m using monolith mode. Basically it works, but not enough to recommend it to my family.
Ah, Spaces don’t work too.
They don’t recommend using dendrite for too many people.
For a small group of people definitely worth the effort of setting up your own. Treat it as a learning experience if mistakes are made.
You could also just pay element and they will set up a server for you.
https://ems.element.io/ It looks kinda expensive but it make the job easier
Cool . 10 usd per month for basic plan . Would be worth it for family privacy
there is this hosting website just to solve this problem. It allows hosting of federated communities just easy as account. I understand this is old question pasting it here for people’s reference ;) discord: https://discord.gg/pFpnU5GK3u