Snikket is a simple, secure and private messaging app
For self-hosting though, the project I work on - Snikket - uses XMPP but has all the nice modern things you'd expect ready to go right out of the box, more like a Matrix (Synapse/Element) setup. Probably the biggest thing missing for Snikket right now is an official web app (we currently have Android and iOS apps).
My personal feeling is that if you're looking for something a bit more extensive, "team chat" style (such as Discord, Slack, that kind of thing), you're better served by Element right now. However if you're looking for something lightweight and simple for personal messaging in a group of family/friends (e.g. to replace WhatsApp/Telegram/Signal) then XMPP via Snikket is a great choice.
The above is copied from someone else.
Anyone have any experience running this for family / friends?
Tested Snikket self-hosting in the past. If I recall correctly one advantage was that it has the option for admins to create invite links for on-boarding new users which seems useful to me for "normies".
I know, bit Snikket still uses ports 80/443 for its web interface and group file sharing service. It even has a page for Reverse Proxy configuration, but it doesn't include Traefik and the configuration is non-trivial
I installed it with a caddy proxy, works like a charm. I've used the Converse.js web client, Modal on iOS and Conversations for Android. The installation was quick and easy, file and photo sharing works, audio and video calls.
Really the hardest part is getting friends to use it.
While I like it conceptually, the two times I tried to install it I felt it was far too opinionated for me to get it to work correctly, like other software "bundles" of its kind that want to take control of the entire process of setting up ports, networking, storage, certificates etc..., instead of just hanging down from stuff that I have already prepared for it (like my own domain with my own cert).
Like, as a piece of software it's something I'd absolutely use... if someone else sets everything up for me.
You can, but honestly no idea how to handle stuff like the certs from that point on. Most other software on docker lets me eg.: just bind-mount the host's directory with the certs I want to use - or just not even know about SSL in the first place and just let me reverse-proxy the access in (like, say, a simple static page web server).
But, like I said, the last times I tried to get into it, it tried its darnest to get in my way. If that's changed since then, that'd be great.