Hi all,
I want to host my own matrix server, so that i can run bridges to all the other (stupid) messaging apps.
I am looking for any advice or experience in choosing which server to run, and if you know of any good tutorials, run throughs, etc. i typically would like a lighter instance, as i expect about 3 users, with 2 of us needing bridging.
- dendrite
- synapse
- conduit
- construct
and then the addition of bridges, (Signal, WA, Messenger and hopefully SMS).
I am fairly self sufficient when it comes to self hosting, and i run everything on linux, in docker, proxied by Nginx proxy manager. but typically prefer stuff that works more or less out of the box.
Thanks all!
Do you need/like matrix so much that you want to self-host it in place of more admin-friendly alternatives? The client/user side of matrix is okayish, but everything else is terrible. The protocol is inefficient by design and that’s not something faster languages will solve so expect your available resources to sink, all implementations suck in different ways, are highly incompatible, constantly changing and have you in a permanent stressful state of chasing the latest/breaking/testing stuff. The team in charge is in denial about a great many things, and lacks the deeply needed amount of focus and reality check to get things done (which I imagine has been a large contributor to more and more “institutional actors” dropping them recently, like France several months ago).
I could go on and on, but in short, I was at your place some time ago and the mess, disappointment and overall stress I found with matrix only compelled me to give XMPP a close look. Now I (and my users) are super happy with ejabberd and modern clients like Conversation/dino/movim make the while thing a very pleasant experience. Not all features of matrix are there, but I take reliability/predictability and simplicity over them any single day.
Ultimately, i want something that is able to work outside of its own walls. I dont want 10 messenger apps, and i dont want to limit the messenging app that i host to just us (ie, it would be good if my account can talk to others, by my sons can only talk with us).
XMPP i have heard nothing but good things about - i will do some reading on it.
Do you have any links for the french dropping matrix?
Ultimately, i want something that is able to work outside of its own walls. I dont want 10 messenger apps, and i dont want to limit the messenging app that i host to just us (ie, it would be good if my account can talk to others, by my sons can only talk with us).
The funny thing about XMPP is that this is exactly where it started at, when AIM, ICQ, MSN, Yahoo and co. were all the rage in the late 90’s, the geeks became annoyed of needing as many clients as there were protocols, and XMPP was meant to bridge over to all of them. Fast forward, we since learned that bridging to other protocols generally sucks (or isn’t to be recommended to the average folks), and just to make sure, Matrix tried again 15 years later with the same outcome. But if you need it, the capability is still very much there and some still pursue the effort to this day.
Do you have any links for the french dropping matrix?
I only have a (private) IRC chatlog which I’m not sure it is ethical to post in the open, so I sent it to you by private message instead. I don’t think it is a secret at this point so there might be other sources out there to corroborate this.
Im using the ansible matrix playbook with synapse for 3 users and a bunch of bridges. I choose this because I used to setup my docker container and everything myself up but i absolutely dont want any downtime on my communications just because a config is not perfectly setup. If im out and about i want to still be reached. The playbook makes it really simple and takes care of everything i want. Even things like sliding sync are setup with one line added to the config. https://github.com/spantaleev/matrix-docker-ansible-deploy
Do not use Dendrite for multi-user setups if you plan to run bridges. Contacts handled by the bridges are visible by the whole server, which means that it leaks many information on your contacts (names, phone number, …). I’m also not sure that multi-user puppeting is supported with dendrite.
I would advise you to run Synapse because of that.
thanks, i am hoping to get conduit up and running, and the default docker-compose seems to be going ok, just need the rest of the plumbing, then the bridges and i will be sweet :D
I run my own Dendrite server and have had it work pretty well.
Initially I chose Dendrite over Synapse as I heard about Synapse being quite heavy in terms of load, and my overall experience with Dendrite has been pretty good!
I run the server just for myself, but have it setup with Signal and Messenger bridges that work flawlessly (apart from one time when Facebook thought my account was hacked and had to reauth!)
how difficult was the setup? i am hoping for lug-n-play type of thing.
I would rate it 8/10 for ease of install, especially with the docker setup it is pretty easy.
Only slightly annoying setup task was getting the matrix bridges setup as you need to mess with some config and I had some issues getting it to work initially.
But once it was all setup, pretty solid for me ever since!
I have the container up, but now some issues with ports. I can connect with element in the browser, but the app is having issues.
What did you do with proxying? I was told I need to port forward 8448, but that doesn’t seem right.
I’m using nginx proxy manager, default settings, and LE certs.
You can use whatever port if you’re proxying it to 8448 (assuming the container host is listening on that port which it would be by default).
If you use matrix.example.com and proxy port 443 to 8448 then it should work as your user would be @user:matrix.example.com.
You would need to portforward from outside your network if you want to access it and have it talk to other servers as they all need to communicate with your server.
Personally I wanted matrix to show my user as @user:example.com at my actual domain not as a matrix subdomain, so I had to setup the .well-known/server type http path to tell it my server is actually at matrix.example.com.
yep, i have my sub-domain proxying to the host <server>:8448, and i can use it locally. however the android element app is not able to connect, but the browser element can.
it is a dilly of a pickle, and i am not sure what is missing.
the docs at https://gitlab.com/famedly/conduit/-/blob/next/DEPLOY.md tell me to curl directly to port 8448… oh, dumbass! just typing this out i saw that it was an
if
not anand
port 8448… never mind! i iwll post this to indicate my stupidity and hopefully figure out what i am doing wrong!$ curl https://your.server.name/_matrix/client/versions # If using port 8448 $ curl https://your.server.name:8448/_matrix/client/versions