ejabberd

From Gentoo Wiki
Jump to: navigation, search

Installation

root #USE="mod_pubsub mod_muc" emerge net-im/ejabberd

Adding various modules through USE flags will trigger things like: net-im/jabber-base, dev-lang/erlang, net-im/ejabberd, etc. to be installed with ejabberd.

Configuration

Files

The information in this section is probably outdated. You can help the Gentoo community by verifying and updating this section.
Important
ejabberd.cfg has been superseded by ejabberd.yml, which is formatted in a completely different way. If you have an old .cfg config file, "man ejabberdctl" for an automatic conversion script, see convert_to_yaml.

In /etc/jabber/ejabberd.cfg put:

FILE /etc/jabber/ejabberd.cfg
:{acl, admin, {user, "bob", "süpercomputer"}}.

And:

FILE /etc/jabber/ejabberd.cfg
:{hosts, ["foo.bar"]}.

Where foo.bar is what is required for the accounts, like bob@foo.bar (so the server should be available at foo.bar. If not, clientside configuration needs extra server parameter).

In /etc/jabber/ejabberctl.cfg put:

FILE /etc/jabber/ejabberctl.cfg
:ERLANG_NODE=ejabberd

So the node will be called ejabberd@süpercomputer while süpercomputer is the one configured in /etc/conf.d/hostname If this is changed, remember to issue:

user $/etc/init.d/hostname restart

Service

OpenRC

Then start:

root #/etc/init.d/ejabberd start

Then create users:

user $ejabberdctl register {name} {domain} {password}

For example:

user $ejabberdctl register bob foo.bar süpersecret

Set up a jabber server using ejabberd

This often fails at first try, because the whole ejabberd-erlang-mnesia thing can be really picky sometimes. So, one hint may be to not initialize/start/test anything until the final hostname selections are in every config file. Changing hostname afterwards can cause problems, at least before becoming familiar with the above mentioned tools.

Second hint: If errors are encountered when restarting here, Erlang nodes might have to be stopped, which unfortunately are not called 'erlang' or something, but 'beam', so this might be found useful:

user $killall beam -9