Разве Вам, как продвинутому айтишнику, никогда не хотелось иметь свой собственный Jabber сервер на своем домене? Уверен, нет человека, которому бы не хотелось иметь JID вида admin@domain.ru :) Что же, это довольно просто! 
Для осуществления мини мечты нам понадобится:
1. Домен второго уровня domain.ru добавленный в панель управления DNS по адресу 
https://ns3.fastvps.ru/manager
2. VPS или выделенный сервер с ОС Debian на FastVPS.ru
3. Немного терпения и сноровки :)
Итак, поехали!
Создание SRV записи на DNS для Jabber
Предполагаем, что на домене domain.ru у нас уже работают сайты. Поэтому, логинимся в панель ns3, выбираем нужный нам домен, щелкаем по нему дважды и входим в меню поддоменов. Далее нам нужно создать запись, которая будет указывать расположение нашего Jabber сервиса, для этого щелкаем по зеленому плюсу в верхнем углу панели. Тип ставим в "A", имя jabber (тогда полный адрес нашего Jabber сервера будет jabebr.domain.ru), а в поле "адрес" вписываем IP нашего сервера.  После этого создаем три записи типа "SRV (сетевой сервис)" со следующими именами и портами:
_jabber._tcp 5269
_xmpp-server._tcp 5269
_xmpp-client._tcp 5222
Поля "Приоритет" и "Условный вес SRV-записи" выставляем в 0, а в поле адрес вписываем "jabber".
В конфиге named это будет выглядеть как:
_jabber._tcp IN SRV 0 0 5269 jabber
_xmpp-server._tcp IN SRV 0 0 5269 jabber
_xmpp-client._tcp IN SRV 0 0 5222 jabber
Через некоторое время, когда DNS обновится можно опционально проверить работу указанных записей извне:
host -t SRV _jabber._tcp.domain.ru
host -t SRV _xmpp-server._tcp.domain.ru
host -t SRV _xmpp-client._tcp.domain.ru
Итак, с DNS закончили, переходим к настройке демонов.
Установка Jabber сервера
Устанавливаем корректный hostname сервера:
echo "domain.ru" > /etc/hostname
/etc/init.d/hostname.sh 
В консоли выполняем следующие команды:
apt-get update;
apt-get install -y ejabberd;
После этого ejabber будет установлен, добавлен в автозапуск (будет загружаться автоматически при загрузке системы) и запущен.
Убеждаемся, что Ejabberd запустился и слушает нужные нам порты:
netstat -lnpt | grep beam
tcp        0      0 0.0.0.0:5280            0.0.0.0:*               LISTEN      11754/beam      
tcp        0      0 xx.xx.xx.xx:7777       0.0.0.0:*               LISTEN      11754/beam      
tcp        0      0 0.0.0.0:45858           0.0.0.0:*               LISTEN      11754/beam      
tcp        0      0 0.0.0.0:5222            0.0.0.0:*               LISTEN      11754/beam      
tcp        0      0 0.0.0.0:5269            0.0.0.0:*               LISTEN      11754/beam  
Конфигурация Jabber сервера
dpkg-reconfigure ejabberd
Указываем domain.ru, потом admin и дважды вводим пароль администратора.
В ответ система откликнется примерно следующим:
Stopping jabber server: ejabberd.
Replacing config file /etc/ejabberd/ejabberd.cfg with new version
Starting jabber server: ejabberd.
Waiting for ejabberd to register admin user.
Admin user "admin@domain.ru" is registered successfully.
Входим под учетной записью администратора
Теперь нам нужен клиент с поддержкой протокола Jabber. Добавляем учетную запись, выбираем ее тип "Jabber", в поле Jabber ID вводим "admin@domain.ru", указываем пароль и подключаемся, при этом будет выдано предложение подтвердить сертификат, соглашаемся и принимаем его. Все! Можно добавлять других контактов и общаться по Jabber со всем миром!
Веб-интерфейс управления
Для выполнения различных рутиных задачек есть интерфейс управления, доступный по адресу:  http://jabber.domain.ru:5280/admin, в качестве логина указываем admin@domain.ru, а в качестве пароля - наш пароль на jabber.
Консоль управления
Позволяет выполнять огромное множество операций с Jabber сервером.
ejabberdctl 
Usage: ejabberdctl [--node nodename] command [options]
Available commands in this ejabberd node:
status                                                      get ejabberd status
stop                                                        stop ejabberd
restart                                                     restart ejabberd
reopen-log                                                  reopen log file
register user server password                               register a user
unregister user server                                      unregister a user
backup file                                                 store a database backup to file
restore file                                                restore a database backup from file
install-fallback file                                       install a database fallback from file
dump file                                                   dump a database to a text file
load file                                                   restore a database from a text file
import-file file                                            import user data from jabberd 1.4 spool file
import-dir dir                                              import user data from jabberd 1.4 spool directory
delete-expired-messages                                     delete expired offline messages from database
delete-old-messages n                                       delete offline messages older than n days from database
mnesia [info]                                               show information of Mnesia system
vhost host ...                                              execute host-specific commands
srg-list-groups host                                        list the shared roster groups from host
delete-older-messages days                                  delete offline messages older than 'days'
vcard-set user host data [data2] content                    set data to content on the vCard
incoming-s2s-number                                         print number of incoming s2s connections on the node
vcard-get user host data [data2]                            get data from the vCard of the user
status-list status                                          list the logged users with status
remove-node nodename                                        remove an ejabberd node from the database
stats onlineusers                                           number of logged users
stats registeredusers                                       number of registered users
pushroster-all file                                         push template roster in file to all those users
srg-get-info group host                                     get info of a specific group on host
rosteritem-purge [options]                                  Purge all rosteritems that match filtering options
add-rosteritem user1 server1 user2 server2 nick group subs  Add user2@server2 to user1@server1's roster
srg-delete group host                                       delete the group
stats uptime-seconds                                        uptime of ejabberd node in seconds
outgoing-s2s-number                                         print number of outgoing s2s connections on the node
killsession user server resource                            kill a user session
stats onlineusersnode                                       number of logged users in the ejabberd node
pushroster file user server                                 push template roster in file to user@server
load-config file                                            load config from file
user-resources user server                                  print user's connected resources
srg-create group host name description display              create the group with options
get-cookie                                                  get the Erlang cookie of this node
export2odbc server output                                   export Mnesia tables on server to files on output directory
connected-users-number                                      print a number of established sessions
srg-user-add user server group host                         add user@server to group on host
set-password user server password                           set password to user@server
delete-older-users days                                     delete users that have not logged in the last 'days'
rem-rosteritem user1 server1 user2 server2                  Remove user2@server2 from user1@server1's roster
compile file                                                recompile and reload file
status-num status                                           number of logged users with status
push-alltoall server group                                  adds all the users to all the users in Group
srg-user-del user server group host                         delete user@server from group on host
connected-users                                             list all established sessions
Examples:
ejabberdctl restart
ejabberdctl --node ejabberd@host restart
ejabberdctl vhost jabber.example.org ...
Подключение JwChat
Осуществляется весьма легко: 
http://www.ejabberd.im/jwchat-localserver
Источники: 
http://www.jms1.net/jabberd2/srv.shtml и 
http://server-help.ru/?tag=ejabberd