XMPP is an instant messaging protocol that started in 1998/1999 by a guy named Jeremy Miller. It's goal was to be open source, easy to use instant messaging that can be self hosted by the community. Now in 2021 Snikket provides a simple, easy, almost one-click install for Docker users.
Snikket aims to provide an easy to install and easy to use XMPP server that provides basic features like push, message storage, and presence. Currently, Snikket server is aimed to replace your daily use of Facebook Messenger, WhatsApp, etc.
Mobile clients are also available for Snikket. Currently Android is the only mobile client officially supported. However, iOS is planned for the future. Siskin was named the most likely candidate for iOS for now. Also, you are free to use any XMPP client that supports the XEPs Snikket uses.
Snikket is built off Prosody server. Since this is written in LUA it can EASILY be ran pretty much anywhere. Raspberry Pi, cell phone, you could probably even finesse this to run on a PSVita (jokingly of course).
Honestly, this is probably the easiest XMPP server I've ever installed. Using the (Quick Start Guide)[https://snikket.org/service/quickstart/] provided by the developers it takes about 5 minutes to install on DigitalOcean.
In Short: Install the OS (Usually Debian or Ubuntu LTS). Then Install Docker and Docker-Compose. Then Setup DNS as described in the documentation. As an optional (but highly recommended step) you should also setup your firewall with the ports listed in the docs as well.
Once the install is completed above you can then run the docker-compose command (make sure to edit the
/etc/snikket/snikket.conf file with the domain to be used!). Don't forget to make an admin invite link
docker exec snikket create-invite --admin --group default. This will allow you to manage user accounts, invites, and MUC rooms (Also labeled Groups here.)
Snikket is still in early-release beta stages as of this writing. I can't say that you should run it in produciton, however, I've been running it personally for about a week and it seems to be pretty stable and delivers messages as expected. If you are looking into experimenting with XMPP in general, Snikket may be a great starting point.