selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

ejabberd logo

Self-host ejabberd

26.09

Massively scalable XMPP, MQTT, and SIP messaging server

ReleaseOpen SourceGPL-2.0
Updatedlast month
LanguageErlang
Setup difficultyAdvanced
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)
Docker
ghcr.io/processone/ejabberd
Install with Docker
ejabberd screenshot 1

What is ejabberd?

ejabberd alternatives

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

How to install ejabberd

Install ejabberd with Docker

Docker Engine
Environment variables
EJABBERD_MACRO_*, REGISTER_ADMIN_PASSWORD, CTL_ON_CREATE, CTL_ON_START, ERLANG_NODE_ARG, ERLANG_COOKIE

docker run --name ejabberd -d -p 5222:5222 ghcr.io/processone/ejabberd

Main container image from ghcr.io/processone/ejabberd, supports x64 and arm64

ejabberd releases & version history

@ Every self-hosted release, weekly

One Monday email with the week's stable releases across the directory.

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

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…