2337
Comment: (м)
|
5724
prosody
|
Deletions are marked like this. | Additions are marked like this. |
Line 3: | Line 3: |
==== Устанавливаем зависимости ==== {{{% sudo apt-get install build-essential python python-dev python-virtualenv git mongodb-server}}}<<FootNote(''build-essential'' и ''python-dev'' нужны для компиляция сишного bson-модуля mongo-библиотеки для ускорения её работы.)>><<BR>> ~-TODO: Версии библиотек, python, mongo.-~ |
==== Устанавливаем базовые зависимости ==== {{{% sudo apt-get install python-virtualenv git build-essential python-dev}}}<<FootNote(''build-essential'' и ''python-dev'' нужны для компиляция сишного bson-модуля mongo-библиотеки для ускорения её работы.)>> |
Line 18: | Line 17: |
{{{% cd bnw; git clone https://github.com/stiletto/linkshit.git}}} | {{{% cd bnw; git clone https://github.com/stiletto/linkshit.git}}}<<BR>> Шаблон конфига находится в файле {{{config.py.example}}}, копируем его:<<BR>> {{{% cp config.py.example config.py}}}<<BR>> ==== Устанавливаем и настраиваем MongoDB ==== {{{% sudo apt-get install mongodb-server}}}<<BR>> И, в принципе, всё, но желательно ещё проделать следующее: * Установите в файле {{{/etc/mongodb.conf}}} опции {{{bind_ip = 127.0.0.1}}} и {{{nohttpinterface = true}}} * Перезапускаем mongo:<<BR>> {{{% sudo /etc/init.d/mongodb restart}}} * Удаляем тестовые базы:<<BR>> {{{% mongo test --eval 'db.dropDatabase()'}}}<<BR>> {{{% mongo local --eval 'db.dropDatabase()'}}} ==== Устанавливаем и настраиваем XMPP-сервер ==== Мы рассмотрим prosody, но вы также можете использовать ejabberd или jabberd2, их настройка во многом аналогична. (Вообще, подойдёт любой сервер, поддерживающий [[http://xmpp.org/extensions/xep-0114.html|XEP-0114: Jabber Component Protocol]], но эти три сервера наиболее популярны и просты в использовании.)<<BR>> Устанавливаем prosody:<<BR>> {{{% sudo apt-get install prosody}}}<<BR>> Возможны два варианта настройки: локальный сервис, который доступен только вам (например, если вам нужно протестировать какие-то фичи), или сервис общего пользования. ===== Локальный вариант ===== * Установите в файле {{{/etc/prosody/prosody.cfg.lua}}} в глобальной секции опции:<<BR>><<BR>> {{{c2s_interface = "127.0.0.1"}}}<<BR>> {{{s2s_interface = "127.0.0.1"}}}<<BR>> {{{legacy_ssl_interface = "127.0.0.1"}}}<<BR>><<BR>> (Перед строчкой {{{----------- Virtual hosts -----------}}}) * Отредактируйте файл виртуального хоста {{{/etc/prosody/conf.d/localhost.cfg.lua}}} и добавьте в конец следующие строчки:<<BR>><<BR>> {{{Component "bnw.localhost"}}}<<BR>> {{{ component_secret = "пароль для авторизации компонента"}}}<<BR>><<BR>> (Вместо {{{bnw}}} вы можете использовать любое имя, главное окончание {{{.localhost}}}) * Перезапускаем prosody: {{{% sudo /etc/init.d/prosody restart}}} ==== Устанавливаем и настраиваем HTTP-сервер ==== ==== Настраиваем и запускаем сервис ==== Редактируем файл конфигурации сервиса {{{config.py}}}, который должен находиться в {{{$HOME/bnw/src/bnw/}}}, если вы точно соблюдали инструкции: * {{{srvc_port}}} в случае prosody надо установить в {{{5347}}} * {{{srvc_name}}} в случае локального варианта должен быть {{{bnw.localhost}}} (или то имя, которое вы настроили) * {{{srvc_pwd}}} должен совпадать со значением {{{component_secret}}} |
Используемый дистрибутив — Ubuntu 12.04, установка для Debian и других Debian-based дистрибутивов не должна сильно отличаться. Мы будем использовать виртуальное окружение virtualenv, которое позволяет устанавливать библиотеки в выбранный каталог, никак не затрагивая системные версии, не требует прав суперпользователя и при желании позволяет легко удалить установленное приложение без каких-либо последствий.
Устанавливаем базовые зависимости
% sudo apt-get install python-virtualenv git build-essential python-dev1
Создаём виртуальное окружение
Виртуальное окружение будет находиться в домашнем каталоге пользователя. Вы можете поместить его в другое место по желанию. Например, на сервере уместнее будет использовать каталог /srv/. Также разумно создать отдельного пользователя, от которого будет запускаться сервис: % sudo adduser --system --no-create-home --group bnw
% cd $HOME
% virtualenv bnw
% cd bnw; source bin/activate
Устанавливаем библиотеки, получаем код
% mkdir src; cd src
% pip install twisted tornado PyRSS2Gen
% pip install -e git+https://github.com/fiorix/mongo-async-python-driver.git#egg=txmongo
% git clone https://github.com/stiletto/bnw.git
% cd bnw; git clone https://github.com/stiletto/linkshit.git
Шаблон конфига находится в файле config.py.example, копируем его:
% cp config.py.example config.py
Устанавливаем и настраиваем MongoDB
% sudo apt-get install mongodb-server
И, в принципе, всё, но желательно ещё проделать следующее:
Установите в файле /etc/mongodb.conf опции bind_ip = 127.0.0.1 и nohttpinterface = true
Перезапускаем mongo:
% sudo /etc/init.d/mongodb restartУдаляем тестовые базы:
% mongo test --eval 'db.dropDatabase()'
% mongo local --eval 'db.dropDatabase()'
Устанавливаем и настраиваем XMPP-сервер
Мы рассмотрим prosody, но вы также можете использовать ejabberd или jabberd2, их настройка во многом аналогична. (Вообще, подойдёт любой сервер, поддерживающий XEP-0114: Jabber Component Protocol, но эти три сервера наиболее популярны и просты в использовании.)
Устанавливаем prosody:
% sudo apt-get install prosody
Возможны два варианта настройки: локальный сервис, который доступен только вам (например, если вам нужно протестировать какие-то фичи), или сервис общего пользования.
Локальный вариант
Установите в файле /etc/prosody/prosody.cfg.lua в глобальной секции опции:
c2s_interface = "127.0.0.1"
s2s_interface = "127.0.0.1"
legacy_ssl_interface = "127.0.0.1"
(Перед строчкой ----------- Virtual hosts -----------)Отредактируйте файл виртуального хоста /etc/prosody/conf.d/localhost.cfg.lua и добавьте в конец следующие строчки:
Component "bnw.localhost"
component_secret = "пароль для авторизации компонента"
(Вместо bnw вы можете использовать любое имя, главное окончание .localhost)- Перезапускаем prosody:
% sudo /etc/init.d/prosody restart
Устанавливаем и настраиваем HTTP-сервер
Настраиваем и запускаем сервис
Редактируем файл конфигурации сервиса config.py, который должен находиться в $HOME/bnw/src/bnw/, если вы точно соблюдали инструкции:
srvc_port в случае prosody надо установить в 5347
srvc_name в случае локального варианта должен быть bnw.localhost (или то имя, которое вы настроили)
srvc_pwd должен совпадать со значением component_secret
build-essential и python-dev нужны для компиляция сишного bson-модуля mongo-библиотеки для ускорения её работы. (1)