Self-host ejabberd
26.09Massively scalable XMPP, MQTT, and SIP messaging server
- Stars
- 6 751
- Ports
- 5222 (XMPP client connections (STARTTLS)), 5223 (XMPP client connections (legacy TLS)), 5269 (XMPP server-to-server federation), 5443 (HTTPS admin interface, API, WebSocket, BOSH, OAuth), 5280 (HTTP admin interface, ACME challenge), 5478 (STUN/TURN service (UDP)), 1883 (MQTT broker)
ghcr.io/processone/ejabberdWhat is ejabberd?
ejabberd is a battle-tested real-time messaging platform written in Erlang that runs an XMPP server, MQTT broker, and SIP service together in one process. It has powered some of the largest chat deployments in the world, handling millions of simultaneous connections on a single node. The server implements hundreds of XMPP extensions for features like group chat, presence, and federation, while its built-in MQTT broker lets IoT devices share the same infrastructure. For voice and video it provides SIP and WebRTC support via Jingle, and it can bridge to the Matrix network so you don't need a separate homeserver. Clustering uses consistent hashing to scale horizontally without full data replication, and the Erlang runtime enables live code upgrades with zero downtime. Mobile and web clients get push notifications (Apple, Google, WebPush), message history via MAM, multi-device sync, and WebSocket/BOSH transport. Administrators control the server through a REST API and the ejabberdctl command-line tool, and can run multiple domains on one instance. Storage backends include the embedded Mnesia database plus PostgreSQL, MySQL, SQLite, Microsoft SQL Server, Redis, LDAP, and any ODBC source. A modular plugin system allows third-party extensions. The Community edition is free under GPLv2; a Business Edition adds long-term support and enterprise features, and Fluux offers a fully managed cloud version. You can deploy via Docker (ghcr.io/processone/ejabberd or docker.io/ejabberd/ecs), binary installers, OS packages, Homebrew, source compilation, or a community Helm chart for Kubernetes.
ejabberd alternatives
ChattoChatto is an open-source, self-hosted team chat server: one compact binary, no separate database, with rooms, threads, attachments, search, calls and SSO.CompareChatto with ejabberd
MongooseIMMongooseIM is a self-hosted, open-source XMPP server built for massive scale and enterprise use, supporting clustering, multi-tenancy, and multiple auth methods.CompareMongooseIM with ejabberd
sama-serverSelf-hosted open-source chat server providing real-time messaging, horizontal clustering, push alerts, and multi-device sync for teams and developers.Comparesama-server with ejabberd
TinodeA self-hosted, open-source instant messaging platform: Go server plus Android, iOS, web and command-line clients, group chat, WebRTC calls and chatbots.CompareTinode with ejabberd
Converse.jsOpen-source, browser-based XMPP/Jabber chat client: self-hosted via CDN or dist files and embedded as fullpage, overlay, or widget-style chat with OMEMO encryption.CompareConverse.js with ejabberd
SIPCAPTURE HomerSelf-hosted, open-source telecom observability server: capture SIP/VoIP traffic over HEP into a DuckLake datalake, with web UI, call search, QoS and API.CompareSIPCAPTURE Homer with ejabberd
Matrix SynapseSelf-hosted, open-source Matrix homeserver that runs your own federated chat server, with SAML/OIDC/CAS single sign-on, an admin API and PostgreSQL-backed worker scaling.CompareMatrix Synapse with ejabberd
fluxerSelf-hosted, open-source instant messaging and VoIP platform with channels, voice and video calls, search and an admin dashboard, plus web, desktop and mobile clients.Comparefluxer with ejabberd
Should you self-host ejabberd?
ejabberd scores 72/100 on selfhost.directory (how scoring works) and ranks #5 of 110 in Chat. It has 6 751 GitHub stars, +13 in the last 30 days.
It shipped 6 stable releases in the past year. The latest, 26.09, came out on 29 September 2026. New versions land roughly every 6 weeks.
Setup is advanced: plan for several services and some ongoing maintenance. An official Docker image is available. It is GPL-2.0-licensed and written mostly in Erlang.
Its closest alternative on selfhost.directory is Zulip (82/100, 26 218 stars). It scores higher overall, so compare the two before you pick. See ejabberd vs Zulip side by side.
Features
- CLI Administration (ejabberdctl)
- Flexible Storage Backends
- Horizontal Clustering
- Live Code Upgrades
- Matrix Bridging
- Message Archive Management (MAM)
- MQTT Broker
- Multi-device Sync
- Plugin/module system
- Push Notifications
- REST API
- SIP Service
- Virtual Hosting
- WebSocket & BOSH
- XMPP Server
ejabberd README
ejabberd is an open-source, robust, scalable and extensible realtime platform built using Erlang/OTP, that includes XMPP Server, MQTT Broker and SIP Service.
FAQ
Is ejabberd conforming to best Erlang practices?
Yes, ejabberd uses rebar-based build system with autotools for multiplatform dependency detection, providing a flexible and versatile build chain.
What are tips to optimize ejabberd performance?
Run the latest ejabberd and Erlang versions, monitor process queues to find bottlenecks, and tune each limiting factor iteratively.
Does ProcessOne hold back code from the community edition to push the business edition?
No. ProcessOne does not hold back code they produce. Customer-funded code is shared with business edition customers first, then released to community after 6-12 months.
More in Chat
ElementOpen-source, self-hosted Matrix client for messaging, e2ee, voice/video calls and Spaces, installed via Docker, Debian package or tarball, with an Electron desktop build.
Element-CallElement Call is a self-hosted, open-source video conferencing app built on Matrix with end-to-end encryption and LiveKit SFU for scalable meetings.
ErgoSelf-hosted, open-source IRC server written in Go that merges ircd, NickServ/ChanServ/HostServ services and bouncer history in one daemon.
faster-chatFaster Chat is a self-hosted, open-source AI chat interface for local and cloud LLMs with multi-user auth, encrypted keys, web search, and a fast Preact UI.
feedback-botA self-hosted, open-source Telegram bot that forwards messages from users to a designated chat or user, with support for replies sent back to the original sender.
Ferrite Telegram ServerFerrite is an open-source, self-hosted MTProto server in C#/.NET that runs official Telegram clients against your own infrastructure with messaging, calls, and media.
FlockSelf-hosted AI dev-team bot for Telegram, VK, LO. Uses your Claude Pro/Max or Anthropic API key. Five-agent pipeline plans, codes, tests, reviews, opens PRs.
fluxerSelf-hosted, open-source instant messaging and VoIP platform with channels, voice and video calls, search and an admin dashboard, plus web, desktop and mobile clients.
fosscordSpacebar is a free, open-source, self-hosted Discord-compatible platform for chat, voice, and video. Run your own server with existing Discord clients and bots.
friendupFriend OS is a self-hosted, open-source web OS providing a full desktop in the browser with file management, chat, video calls, and collaborative workspaces.
gaiaOpen-source personal AI assistant that proactively manages email, calendar, tasks, and workflows across 50+ integrations with self-hosting support via Docker Compose.
GoClawSelf-hosted multi-tenant AI agent platform with 20+ LLM providers, 7 messaging channels, PostgreSQL with row-level security, and a native desktop edition.

0 comments