ejabberd
A single ejabberd node carries chat, device telemetry, voice calls, and federated messaging at once, because the same Erlang server speaks XMPP, MQTT, SIP, and Matrix over one authentication, storage, and clustering layer. Users get standards-based instant messaging with group chats, message archives, publish-subscribe, message carbons, push notifications, and OMEMO encryption, and your server federates with the global XMPP network out of the box. Devices publish and subscribe through the built-in MQTT broker on TCP or WebSocket transports, sharing accounts and access rules with your chat users instead of needing a second broker. Voice and video calls route through the integrated SIP gateway and STUN/TURN support, so WebRTC clients get signalling and media relay from the same deployment. Matrix support bridges federated rooms into the same infrastructure, letting two decentralised ecosystems interoperate without a separate bridge stack to babysit. Clustering with consistent hashing scales a deployment across nodes, and a single node is rated at two million concurrent sessions for very large communities. Operators manage everything from the web admin and command line, with SQL or Mnesia storage, LDAP authentication, and virtual hosting for multiple domains on one server. Running on a dedicated VPS on RepoCloud with guaranteed CPU, RAM, and SSD, full root SSH access, and a browser serial console. GPL-2.0 licensed.
Deploy