Java-based XMPP/Jabber chat server, modular and configurable, supporting client connections over TCP, BOSH and WebSockets.
processone/ejabberd
An open-source, Erlang-built realtime server for XMPP chat, MQTT messaging and SIP voice/video signaling.
- Stars
- 6,750
- Forks
- 1,553
- Open issues
- 224
- Last commit
- 3 days ago
What is it?
ejabberd is a realtime messaging platform written in Erlang/OTP. It acts as an XMPP server for instant messaging and group chat, an MQTT broker for IoT and device messaging, and a SIP service for voice and video session signaling.
The project is aimed at operators who need a messaging backend that stays up under heavy load and can be extended. It is installable from source, from release packages for several operating systems, from Homebrew, or as a Docker container, and its documentation covers administration and developer extension points.
Development is tracked through GitHub Issues, and the project lists XMPP protocol extensions it supports on its website.
Key features
- 01Implements an XMPP server for instant messaging and group chat.
- 02Includes an MQTT broker for device and IoT messaging.
- 03Provides a SIP service for voice and video session signaling.
- 04Built on Erlang/OTP for robustness and scalability.
- 05Available as source, OS packages, Homebrew formula and Docker images.
Use cases
- Running a self-hosted XMPP chat server for a team or community.
- Operating an MQTT broker to connect IoT devices.
- Deploying SIP signaling for voice and video calls.
Quick start
- 1
Install ejabberd from the ProcessOne download page or GitHub Releases, or use Homebrew or Docker
- 2
Check the available ejabberdctl commands once ejabberd is installed
ejabberdctl help - 3
Read the sample configuration file manual page
man ejabberd.yml
Things to know
- Licensed under GPL v2, a copyleft license that requires derivative distributions to remain open source.
- Setting up and configuring a server requires self-hosting effort, as the docs cover many options.
Topics
FAQ
- What is ejabberd?
- An open-source, Erlang-built realtime server for XMPP chat, MQTT messaging and SIP voice/video signaling. ejabberd is a realtime messaging platform written in Erlang/OTP. It acts as an XMPP server for instant messaging and group chat, an MQTT broker for IoT and device messaging, and a SIP service for voice and video session signaling.
- Is ejabberd free to use? What license does it have?
- ejabberd is open source under the Other license. Check the license terms before using it in commercial products.
- Is ejabberd still maintained?
- Actively maintained. The last commit to ejabberd was on Nov 4, 2026.
- What can I use ejabberd for?
- Running a self-hosted XMPP chat server for a team or community. Operating an MQTT broker to connect IoT devices. Deploying SIP signaling for voice and video calls.
- How do I install ejabberd?
- Install ejabberd from the ProcessOne download page or GitHub Releases, or use Homebrew or Docker Check the available ejabberdctl commands once ejabberd is installed: ejabberdctl help Read the sample configuration file manual page: man ejabberd.yml
- Where can I get ejabberd?
- The source code and installation instructions are on GitHub: https://github.com/processone/ejabberd
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
Server-side gateway that lets regular SIP phone clients join Jitsi Meet video conferences and provides speech transcription and translation.
A scalable, fault-tolerant XMPP instant messaging server written in Erlang, designed for large enterprise installations.
A software-defined telecom stack that turns commodity hardware into a SIP/VoIP switch, from Raspberry Pi to multi-core servers.
Kamailio is an open source SIP signaling server for large VoIP, telephony and real-time communication platforms.
A chat server built on uWebSockets.js that offers an alternative to XMPP, with a Node.js backend, MongoDB and Redis.