The key here being that it’s Open Source and doesn’t rely on any central server in order to function.
What is there I can look at
For anyone who wants to just dive in and have a look, I’ve set up a server with a front-end at https://matrix.madpenguin.uk, you’re welcome to head-over and try it out to see what it does. This is a copy of the Open Source software, running on a Raspberry Pi4, sitting on the end of a broadband connection.
Why is it special?
Stepping back just for a moment to look at the bigger picture, there are a whole host of competitors, both commercial and Open Source, who provide similar sorts of functionality. These might include the likes of Slack, Flock, RocketChat among others. In this instance, the Matrix is an Open Source model with multiple Open Source implementations, and multiple Open Source clients, and no central server and no commercial links asking you for money. Sure you can pay for services, but the stock server solution can be installed with pip. (i.e. it’s written in Python and available in the public repository)
On top of this it offers end-to-end encryption for chat rooms and direct messages, and something that’s been hinted at within the EU which seems to be an implementation of a bunch of bridges to other social media type platforms to share messages between the Matrix and things like WhatsApp, Facebook, Twitter etc. (~28 integrations that I can see…)
Peer to Peer
The model, rather than relying on complete isolation, or centralised consolidation, is based on a cooperating federation of servers. So if you find another server with whom you want to chat, share stuff etc, then add it to your federation whitelist and you become connected to not only them, but also people they are connected to. (by default, obviously you can filter)
I think the idea is that everyone can run their own server and be responsible for their own credentials and authentication, then just peer with other people’s servers whith whom you have a shared interest. I’m not sure we’re quite there yet either socially or technically, but it seems like an interesting and worthy goal.
Logging In
So depending on whether you use a native client, or the web based client, the login procedure might differ a little, but after trying out a bunch of clients, for a first time user I’d recommend a combination of the Mobile App, and the desktop / Web based client. I’m going to show the Web client here, getting set up with the Mobile App is very similar.

As you can see, a relatively elegant login screen, a theme that runs through the whole application. The “Element” desktop application is very similar and of a similar quality, unfortunately I found it plagued by technical issues when running on some systems.
Creating a new account
So the idea is that everyone has a home server, which is what provides authentication and indeed is where your credentials are stored. From there you can use those credentials to access groups and services on both your home server, and on Federated servers.

Getting Verified
So once you’re set up on one machine, great lengths are taken to verify your identity such that you can’t be impersonated on a different machine. This is why I would recommend getting set up with the Mobile application first. Once you’ve done this you will be able to verify subsequent desktop installations using the standard Camera / Scan the QR code mechanism.

This is me choosing to verify my new installation using another device, i.e. my Phone.

So when the phone pop-up prompts you to verify the installation, just click ‘Ok’ then point your camera at the QR code on the screen.

Then assuming both the phone and the screen present a green shield, you’re good to go!

The main Event
You should then see an interface which is very similar to the likes of Slack, groups and rooms down the left, video and audio tools at the top, information available in the right hand column, and a new message entry slot at the foot of the screen.

The Driving force …
So why did I bother to try this, and why now? Well as an ex Slack user I was kind of missing having a chat facility handy, but moreover I wanted to use something for instant notifications. More specifically, I didn’t really want to keep getting emails from my monitoring system, I’d rather something more dynamic that would ring a bell on arrival. So, I’ve ended up with a Server Monitoring chat room, which is populated by Uptime Kuma every time it sees a problem. In this instance, problems range from server outages, down to SSL server certificates nearing their expiry date.
It’s also (with end-to-end encryption) a great way to exchange private thoughts, ideas and files with people you know, without the associated risks of using more public file sharing facilities that might (just for example) want to use your content to train their AI systems (!)
Indeed with the government’s recent attempt to slurp secure user Data from Apple, I tend to think this sort of secure facility is going to become more and more appealing.
Try me …
Anyway, I’d be interested to see how this performs with more people involved, so it’d be great if a few people signed up and gave it a whirl, even better if someone wanted to set up their own server and connect it up to mine (i.e. a federated connection). I’m going to add a second server in the next few days so I have my own mini-federation going on, but it really needs users …
Word or Warning …
I did try to setup a federated connection with the main Matrix server, which in turn seems to have lots of Federated connections. I’m not sure exactly how or indeed why, but the way I have things set up, the amount of traffic coming in basically DDOS’d my VPN. So IF you decide to set up your own server, the one change you really need to make to the config is to add the following the the config file;
federation_domain_whitelist: []
If you subsequently want to turn this on to see what happens, I’d be interested to hear your experience, but I’d recommend getting going without any Federation so you’re starting with a known quantity. In general it would see more sensible just to add the individual peers you’re interested in. With the best will in the world, if you create a federated connection with 10,000 servers, that’s going to be a lot of traffic, most of which you don’t want.
Your own server …
If anyone decides they want their own server but doesn’t want the agro of setting it all up, I can clone an existing server in a couple of minutes, all you need is a domain name …
1 post – 1 participant