This document explains how to compile and install ejabberd from source code.
For a more detailed explanation, please check the ejabberd Docs: Source Code Installation.
To compile ejabberd you need:
- GNU Make
- GCC
- Libexpat ≥ 1.95
- Libyaml ≥ 0.1.4
- Erlang/OTP ≥ 20.0
- OpenSSL ≥ 1.0.0
Other optional libraries are:
- Zlib ≥ 1.2.3, for Stream Compression support (XEP-0138)
- PAM library, for Pluggable Authentication Modules (PAM)
- ImageMagick's Convert program and Ghostscript fonts, for CAPTCHA challenges
- Elixir ≥ 1.10.3, for Elixir support. It is recommended Elixir 1.13.4 or higher and Erlang/OTP 23.0 or higher.
If your system splits packages in libraries and development headers, install the development packages too.
There are several ways to obtain the ejabberd source code:
- Source code archive from ProcessOne Downloads
- Source code package from ejabberd GitHub Releases
- Latest development code from ejabberd Git repository
The general instructions to compile ejabberd are:
./configure
make
If the source code doesn't contain a configure
script,
first of all install autoconf
and run this to generate it:
./autogen.sh
To configure the compilation, features, install paths...
./configure --help
To install ejabberd in the system, run this with system administrator rights (root user):
sudo make install
This will:
- Install the configuration files in
/etc/ejabberd/
- Install ejabberd binary, header and runtime files in
/lib/ejabberd/
- Install the administration script:
/sbin/ejabberdctl
- Install ejabberd documentation in
/share/doc/ejabberd/
- Create a spool directory:
/var/lib/ejabberd/
- Create a directory for log files:
/var/log/ejabberd/
Instead of installing ejabberd in the system, you can build an OTP release that includes all necessary to run ejabberd in a subdirectory:
./configure
make prod
Check the full list of targets:
make help
You can use the ejabberdctl
command line administration script to
start and stop ejabberd. Some examples, depending on your installation method:
-
When installed in the system:
ejabberdctl start /sbin/ejabberdctl start
-
When built an OTP production release:
_build/prod/rel/ejabberd/bin/ejabberdctl start _build/prod/rel/ejabberd/bin/ejabberdctl live
-
Start interactively without installing or building OTP release:
make relive