I’ve been using Signal for many years now, and it fulfils most of my messaging needs. But last year’s AWS outage, which took it offline for almost a day, showed one of its many flaws: Signal is highly centralised and reliant on big tech infrastructure.
I was therefore wondering if I shouldn’t start self-hosting my own messaging infrastructure - maybe not for my day-to-day needs, but as an emergency fallback for my closest friends and family, should Signal fail again or become unavailable or compromised (looking at you, EU Chat Control!).
My first thought was to self-host my own Matrix/Synapse server, which ticks a lot of boxes for me: end-to-end encryption, media sharing (pics, audio, videos, all that good stuff), high availability of mobile clients with modern UIs, potentially even audio/video calls. The latter is still giving me a headache since apparently, I need a TURN server to get this working properly, and I’m somewhat reluctant to open so many ports just for it to work…
What’s your perspective on self-hosting messengers: which ones do you prefer? What is your primary motivation to do it? And how have you set it up?


I unfortunately wouldn’t call it solved. I host XMPP and Matrix, (and a STUN/TURN server, and a Livekit server for the modern matrix calls…), and nothing is perfect.
Prosody is really great because it’s so no-nonsense. It doesn’t hog resources or choke up like matrix servers do if you suggest to them that maybe they could deliver this text message? :3 Oh, no, it’s “hold for 2 weeks despite the recipient being online” again? Ok…
But XMPP is still incredibly hard to recommend for me, because
Hence why I still mostly use Matrix… Even though it’s such a stupid, stupid protocol.
@smiletolerantly @lambalicious “no way to read old chats on new devices,”
If you’re talking about unencrypted messages, then prosody’s mod_mam (https://prosody.im/doc/modules/mod/_mam) will store messages for a configurable amount of time and allow all devices to sync older messages.
If you’re talking about encrypted messages, you have two choices. OMEMO is the standard means for encrypting XMPP messages, & only works in forward mode; you can’t decrypt old messages. OpenPGP, however, decrypts old msgs.
Yes, encrypted (otherwise what’s the point? 😄). I’ll admit I haven’t tried the PGP version yet. How’s client support? For OMEMO it’s pretty lackluster, from what I’ve heard not much different for PGP?
In any case, perfect forward secrecy is definitely a good thing / strength, but I’d like a way to re-encrypt messages from an old device, just as an example, during the setup process; or a standardized way to export all history; or just something beyond “either use worse or no encryption, or loose access to your history eventually”.
@smiletolerantly @lambalicious tbh though, I’ve never used openpgp with xmpp because I prefer OMEMO’s forward secrecy. Transferring/introducing a new device, I usually back up chats on the old/current device and import it into the new device’s client.