Перед установкой нужно правильно выставить настройки DNS, чтобы все используемые доменные имена вели к IP сервера. В моем случае просто были созданы одна A-запись для домена, где расположен сам сервер и 2 псевдонима для субдоменов под транспорты. Т.е. если вы настраиваете к примеру сервер на example.com, а транспорты на icq.example.com и gtalk.example.com, то все 3 доменных имени должны вести к IP-адресу вашего сервера (для примера возьмем IP-адрес 7.7.7.7). Схематично это будет выглядеть вот так:
example.com -> 7.7.7.7Это не лучший вариант, но он просто работает. Настройку SRV-записей попробую позже и обязательно опишу процесс в отдельной статье.
gtalk.example.com -> 7.7.7.7
icq.example.com -> 7.7.7.7
1) Подключаем нужные репозитории и импортируем ключи для проверки подлинности пакетов. Растолкаем их в отдельные файлы, чтобы не засорять основной конфиг:
# echo "deb http://packages.prosody.im/debian stable main" > /etc/apt/sources.list.d/prosody.list2) Устанавливаем и настраиваем Prosody.
# wget http://prosody.im/files/prosody-debian-packages.key -O- | apt-key add -
# echo "deb http://packages.spectrum.im lenny spectrum" > /etc/apt/sources.list.d/spectrum.list
# wget -O - http://packages.spectrum.im/keys/apt-repository@fsinf.at | apt-key add -
# apt-get update
# apt-get install prosodyДальше открываем конфиг /etc/prosody/prosody.cfg.lua и начинаем править. Строчный комментарий здесь - это два дефиса, т.е. "--" без кавычек.
На сайте Prosody, кстати, есть отличная документация по настройке.
Во-первых, выключаем все ненужные модули. Пока что я оставил только группу "Generally required", а так же модули "uptime" и "posix". Теперь создаем виртуальный хост:
VirtualHost "example.com"Учтите, что все опции, идущие после виртуального хоста, относятся только к нему. Глобальные настройки должны идти до виртуальных хостов.
enabled = true
Ну и сразу подготовимся к поддержке транспортов, добавим их в конфиг. Настройки компонентов должны быть в виртуальном хосте (после VirtualHost). Пароли для разных транспортов можно задать разные. Например, для транспортов gtalk и icq настройки будут выглядеть так:
Component "gtalk.example.com"По-умолчанию сервер принимает соединения от компонентов (транспортов) только на локальном интерфейсе 127.0.0.1, порт 5347.
component_secret = "ваш-очень-секретный-пароль"
Component "icq.example.com"
component_secret = "ваш-супер-секретный-пароль"
Сохраняем файл конфигурации. Перезапускаем Prosody:
# /etc/init.d/prosody restart3) Устанавливаем и настраиваем многопротокольный транспорт Spectrum. Попробуем настроить только протоколы ICQ и Jabber (Gtalk).
Как говорит нам документация по установке Spectrum, чтобы libpurple не установила еще вагон пакетов, ставим сначала минимальную ее версию, а затем уже сам транспорт:
# apt-get install libpurple0-minimalПереходим в папку с настройками Spectrum:
# apt-get install spectrum
# cd /etc/spectrumДалее настраиваем ICQ, для Jabber всё делается аналогично, заменяя везде icq на xmpp. Скопируем пример конфига и начнем его правку:
# cp spectrum.cfg.example icq.cfgВ самом простом случае нам нужно изменить только следующие параметры (секция [service]):
# chown root:spectrum icq.cfg
# chmod o-rwx icq.cfg
# nano icq.cfg
- Сразу после "enable=1" нужно создать строчку
encoding=CP1251
Это должно решить проблему с кодировками в ICQ. Для Jabber этого делать не нужно! - protocol - задать протокол, с которым будет работать данный экземпляр транспорта (на каждый протокол будет запускаться по экземпляру транспорта). В комментариях написано какие протоколы поддерживает транспорт, нам нужно:
protocol=icq - jid - адрес вашего транспорта (например, icq.example.com), здесь так же можно использовать переменную $protocol, она будет заменена на протокол, определенный выше в этом же файле. Т.е. нам достаточно будет
jid=$protocol.example.com - password - ваш пароль для данного транспорта, вы задали его в конфиге сервера
- port - если ничего не меняли в настройках сервера, то это будет
port=5347
- enable_public_registration - пригодится, если хотите закрыть регистрацию на данном транспорте для всех, кроме выбранных хостов. По-умолчанию общедоступная регистрация включена.
- username_label - подпись к полю ввода "логина" на форме регистрации
- instructions - инструкции на форме регистрации
Протокол xmpp настраивается аналогично, за исключением параметра encoding.
После настройки просто перезапускаем Spectrum:
# /etc/init.d/spectrum restartА дальше просто открываем в Jabber-клиенте обзор сервисов, вводим доменное имя нашего сервера, регистрируемся на нужных транспортах и пользуемся.