ejabberd [options] [--] [erlang_options]
ejabberd is a distributed fault-tolerant Jabber/XMPP server written in Erlang.
Its main features are:
Examples of --node option:
ejabberd Locally run ejabberd server at node ejabberd@`hostname -s`.
ejabberd@otherhost Pretend that ejabberd server runs at otherhost at node ejabberd@otherhost. (Note that noone can remotely connect to this node if otherhost is resoved to other computer IP.)
ejabberd@localhost Locally run ejabberd server at node ejabberd@localhost. Only nodes running at the same host can connect to this node.
ejabberd@hostname.domainname Using -name Erlang option, run ejabberd server at long-name node ejabberd@hostname.domainname. To be able to control this server instance hostname.domainname must resolve (either by DNS or via /etc/hosts) to the server's IP.
The default node can be overridden by defining ERLANG_NODE environment variable in /etc/default/ejabberd, see below.
-detached
Starts the Erlang system detached from the system console.
-heart
Starts heart beat monitoring of the Erlang system.
-noinput
Ensures that the Erlang system never tries to read any input.
The file /etc/ejabberd/ejabberd.cfg contains the main configuration. It is initially loaded the first time ejabberd is executed, then it is parsed and stored in a database. Subsiquently the configuration is loaded from the database and any commands in the configuration file are appended to the entries in the database. The configuration file consists of a sequence of Erlang terms. Parts of lines after `%' sign are ignored. Each term is a tuple, where the first element is the name of an option, and the others are option values. E. g. if this file does not contain a "host" definition, then the value stored in the database will be used.
To override old values stored in the database the following lines can be added
in config:
override_global.
override_local.
override_acls.
A complete explanation of each configuration value can be found in the official ejabberd documentation. See "SEE ALSO" part of this manual page for more information about the documentation.
The file /etc/default/ejabberd contains specific options.
Explanation in Erlang/OTP documentation:
enable:
Starts the Erlang runtime system with SMP support enabled. This
may fail if no runtime system with SMP support is available.
auto:
Starts the Erlang runtime system with SMP support enabled if it
is available and more than one logical processor are detected.
disable:
Starts a runtime system without SMP support.
Ejabberd uses distributed Erlang mode to work properly. This means that on start it connects to epmd (Erlang port mapping daemon) which is listening at port 4369 and tries to register ejabberd node name. If the connection fails (known failure reasons are unavailability of a loopback interface or firewall issues) Erlang emulator fails to start with not very clear error message. If there's already started Erlang node with the same name (ejabberd by default) then ejabberd will also fail with a cryptic error message (in which one can find words {error,duplicate_name}). Another possible case when ejabberd cannot start is incorrect permissions of /var/lib/ejabberd directory (it must be writable by user ejabberd).
erl(1), sasl(6), ejabberdctl(8), epmd.
The program documentation is available at
http://www.process-one.net/en/projects/ejabberd/.
A copy of the documentation can be found at
/usr/share/doc/ejabberd/guide.html.
This manual page was adapted by Christophe Romain <christophe.romain@process-one.net> and Sergei Golovan <sgolovan@nes.ru> for the Debian system (but may be used by others) from the ejabberd documentation written by Alexey Shchepin <alexey@sevcom.net>.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License, Version 2 any later version published by the Free Software Foundation.
On Debian systems, the complete text of the GNU General Public License can be found in /usr/share/common-licenses/GPL.