ejabberd
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
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:
/etc/jabber/ejabberd.cfg
:{acl, admin, {user, "bob", "süpercomputer"}}.
And:
/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:
/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:
root #
rc-service hostname restart
Service
OpenRC
Then start:
root #
rc-service 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