diff options
author | Badlop <badlop@process-one.net> | 2022-04-22 20:32:57 +0200 |
---|---|---|
committer | Badlop <badlop@process-one.net> | 2022-05-04 02:39:30 +0200 |
commit | bb2cb19a5c2b3be07d44c32a3dc164d293e791c9 (patch) | |
tree | b23ef73c161b0dc7f464d49571fe8a29ff7aba79 /COMPILE.md | |
parent | Installers: Add job to create draft release (diff) |
Move some content from README to new COMPILE and CONTAINER files
Diffstat (limited to 'COMPILE.md')
-rw-r--r-- | COMPILE.md | 126 |
1 files changed, 126 insertions, 0 deletions
diff --git a/COMPILE.md b/COMPILE.md new file mode 100644 index 00000000..5bcfaa58 --- /dev/null +++ b/COMPILE.md @@ -0,0 +1,126 @@ +Compile and Install ejabberd +============================ + +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][docs-source]. + +[docs-source]: https://docs.ejabberd.im/admin/installation/#source-code + + +Requirements +------------ + +To compile ejabberd you need: + + - GNU Make + - GCC + - Libexpat ≥ 1.95 + - Libyaml ≥ 0.1.4 + - Erlang/OTP ≥ 19.3 + - 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, to support Elixir, and alternative to rebar/rebar3 + +If your system splits packages in libraries and development headers, +install the development packages too. + + +Download Source Code +-------------------- + +There are several ways to obtain the ejabberd source code: + +- Source code archive from [ProcessOne Downloads][p1dl] +- Source code package from [ejabberd GitHub Releases][ghr] +- Latest development code from [ejabberd Git repository][gitrepo] + +[p1dl]: https://www.process-one.net/en/ejabberd/downloads/ +[ghr]: https://github.com/processone/ejabberd/releases +[gitrepo]: https://github.com/processone/ejabberd + + +Compile +------- + +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 + + +Install in the System +--------------------- + +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/` + + +Build an OTP Release +-------------------- + +Instead of installing ejabberd in the system, you can build an OTP release +that includes all necessary to run ejabberd in a subdirectory: + + ./configure --with-rebar=rebar3 + make rel + +Or, if you have Elixir available and plan to develop Elixir code: + + ./configure --with-rebar=mix + make dev + +Check the full list of targets: + + make help + + +Start ejabberd +-------------- + +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 + ``` |