Size: 2239
Comment:
|
Size: 9864
Comment: xmpp_public
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
Используемый дистрибутив — Ubuntu, установка для Debian и других Debian-based дистрибутивов не должна сильно отличаться. Мы будем использовать виртуальное окружение [[http://pypi.python.org/pypi/virtualenv/|virtualenv]], которое позволяет устанавливать библиотеки в выбранный каталог, никак не затрагивая системные версии, не требует прав суперпользователя и при желании позволяет легко удалить установленное приложение без каких-либо последствий. | === Установка BnW на Linux === [[../|BnW]] — это сервис микроблоггинга, написанный на языке программирования Python. В данной статье мы рассмотрим его установку и настройку для Ubuntu 12.04, установка для Debian и других Debian-based дистрибутивов не должна сильно отличаться. Мы будем использовать виртуальное окружение [[http://pypi.python.org/pypi/virtualenv/|virtualenv]], которое позволяет устанавливать библиотеки в выбранный каталог, никак не затрагивая системные версии, не требует прав суперпользователя и при желании позволяет легко удалить установленное приложение без каких-либо последствий. |
Line 3: | Line 4: |
==== Устанавливаем зависимости ==== {{{% 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.-~ |
==== Устанавливаем базовые зависимости ==== ||<#FF0000> TODO /!\ Обговорить версии всех необходимых компонентов.|| {{{ % sudo apt-get install python-virtualenv git build-essential python-dev }}} ~-Примечание: ''build-essential'' и ''python-dev'' нужны для компиляция bson-модуля для ускорения работы txmongo-библиотеки.-~ |
Line 8: | Line 12: |
Виртуальное окружение будет находиться в домашнем каталоге пользователя. Вы можете поместить его в другое место по желанию. Например, на сервере уместнее будет использовать каталог {{{/srv/}}}. Также разумно создать отдельного пользователя, от которого будет запускаться сервис: {{{% sudo adduser --system --no-create-home --group bnw}}}<<BR>><<BR>> {{{% cd $HOME}}}<<BR>> {{{% virtualenv bnw}}}<<BR>> {{{% cd bnw; source bin/activate}}} |
Виртуальное окружение будет находиться в домашнем каталоге пользователя. Вы можете поместить его в другое место по желанию. Например, на сервере уместнее будет использовать каталог {{{/srv/}}}. {{{ % cd $HOME % virtualenv bnw % cd bnw; source bin/activate }}} |
Line 14: | Line 21: |
{{{% mkdir src; cd src}}}<<BR>> {{{% pip install twisted}}}<<BR>> {{{% pip install -e git+https://github.com/fiorix/mongo-async-python-driver.git#egg=txmongo}}}<<BR>> {{{% git clone https://github.com/stiletto/bnw.git}}} |
{{{ % 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}}}, копируем его:<<BR>> {{{ % 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, их настройка во многом аналогична. (Вообще, подойдёт любой сервер, поддерживающий [[http://xmpp.org/extensions/xep-0114.html|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.avail/localhost.cfg.lua}}} и добавьте в конец следующие строки: {{{ Component "bnw.localhost" component_secret = "пароль для авторизации компонента" }}} (Вместо {{{bnw}}} вы можете использовать любое имя, главное окончание {{{.localhost}}}) * Перезапускаем prosody: {{{ % sudo /etc/init.d/prosody restart }}} ===== Публичный вариант ===== Допустим, компьютер, на котором вы хотите запустить сервис, имеет доменное имя {{{example.com}}}, а сервис будет располагаться по адресу {{{bnw.example.com}}}. * Создайте файл {{{/etc/prosody/conf.avail/example.com.cfg.lua}}} со следующим содержанием: {{{ VirtualHost "example.com" Component "bnw.example.com" component_secret = "surelythisissecureenough" }}} * Перезапускаем prosody: {{{ % sudo /etc/init.d/prosody restart }}} ==== Устанавливаем и настраиваем HTTP-сервер ==== ===== Локальный вариант ===== По умолчанию, BnW запускает веб-интерфейс по адресу [[http://localhost:7808/]], дополнительные действия не требуются. ===== Публичный вариант ===== ||<#FF0000> TODO /!\ || ==== Настраиваем сервис ==== Отредактируйте файл конфигурации сервиса {{{config.py}}}, который должен находиться в {{{$HOME/bnw/src/bnw/}}}, если вы точно соблюдали инструкции: * {{{srvc_port}}} в случае prosody надо установить в {{{5347}}} * {{{srvc_name}}} в случае локального варианта должен быть {{{bnw.localhost}}} (или то имя, которое вы настроили) * {{{srvc_pwd}}} должен совпадать со значением {{{component_secret}}} ||<#FF0000> TODO /!\ Дописать про остальные опции.|| ==== Запускаем сервис ==== Перейдите в каталог сервиса {{{$HOME/bnw/src/bnw/}}} и запустите его с помощью: {{{ % twistd -ny instance.tac }}} Не забудьте, что запускать сервис вы должны из виртуального окружения virtualenv, поэтому если вы открыли новую консоль, то перед запуском сервиса необходима повторная инициализация окружения: {{{ % source $HOME/bnw/bin/activate }}} Такой вариант запуска подходит для отладки, но если вам нужно чтобы сервис запускался в режиме демона с помощью стандартного механизма стартовых скриптов, неоходимо сделать следующее: * Скопируйте шаблон скрипта в системный каталог: {{{ % sudo cp bnw.init.d.sh /etc/init.d/bnw }}} * Отредактируйте переменную {{{BNW_VENV_PATH}}} в этом скрипте по необходимости. Это путь до виртуального окружения virtualenv, в нашем случае {{{$HOME/bnw}}}. * Также по желанию отредактируйте переменные {{{USER}}} и {{{GROUP}}} — от этих пользователя и группы будет запускаться сервис. Системный пользователь и одноимённая группа {{{bnw}}} создаются с помощью команды: {{{ % sudo adduser --system --no-create-home --group bnw }}} * Лог сервиса будет располагаться по адресу {{{/tmp/bnw.log}}} Теперь вы можете использовать команды: {{{ % sudo /etc/init.d/bnw start % sudo /etc/init.d/bnw stop % sudo /etc/init.d/bnw restart }}} для запуска, остановки и перезагрузки сервиса соответственно. При данном варианте инициализация окружения не требуется, скрипт об этом позаботится сам. Чтобы сервис запускался при старте компьютера, выполните команду:<<BR>> {{{ % sudo update-rc.d bnw defaults }}} Чтобы отменить это действие:<<BR>> {{{ % sudo update-rc.d -f bnw remove }}} ==== Прочее ==== Обратите внимание, что для работы сервиса необходимы как минимум запущенные XMPP и MongoDB сервера. По умолчанию, при установке они добавляются в автозагрузку, но если по какой-то причине один из серверов не загружен, запустите его с помощью механизма стартовых скриптов: {{{ % sudo /etc/init.d/server_name start }}} |
Установка BnW на Linux
BnW — это сервис микроблоггинга, написанный на языке программирования Python. В данной статье мы рассмотрим его установку и настройку для Ubuntu 12.04, установка для Debian и других Debian-based дистрибутивов не должна сильно отличаться. Мы будем использовать виртуальное окружение virtualenv, которое позволяет устанавливать библиотеки в выбранный каталог, никак не затрагивая системные версии, не требует прав суперпользователя и при желании позволяет легко удалить установленное приложение без каких-либо последствий.
Устанавливаем базовые зависимости
TODO |
% sudo apt-get install python-virtualenv git build-essential python-dev
Примечание: build-essential и python-dev нужны для компиляция bson-модуля для ускорения работы txmongo-библиотеки.
Создаём виртуальное окружение
Виртуальное окружение будет находиться в домашнем каталоге пользователя. Вы можете поместить его в другое место по желанию. Например, на сервере уместнее будет использовать каталог /srv/.
% 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.avail/localhost.cfg.lua и добавьте в конец следующие строки:
Component "bnw.localhost" component_secret = "пароль для авторизации компонента"
(Вместо bnw вы можете использовать любое имя, главное окончание .localhost)
- Перезапускаем prosody:
% sudo /etc/init.d/prosody restart
Публичный вариант
Допустим, компьютер, на котором вы хотите запустить сервис, имеет доменное имя example.com, а сервис будет располагаться по адресу bnw.example.com.
Создайте файл /etc/prosody/conf.avail/example.com.cfg.lua со следующим содержанием:
VirtualHost "example.com" Component "bnw.example.com" component_secret = "surelythisissecureenough"
- Перезапускаем prosody:
% sudo /etc/init.d/prosody restart
Устанавливаем и настраиваем HTTP-сервер
Локальный вариант
По умолчанию, BnW запускает веб-интерфейс по адресу http://localhost:7808/, дополнительные действия не требуются.
Публичный вариант
TODO |
Настраиваем сервис
Отредактируйте файл конфигурации сервиса config.py, который должен находиться в $HOME/bnw/src/bnw/, если вы точно соблюдали инструкции:
srvc_port в случае prosody надо установить в 5347
srvc_name в случае локального варианта должен быть bnw.localhost (или то имя, которое вы настроили)
srvc_pwd должен совпадать со значением component_secret
TODO |
Запускаем сервис
Перейдите в каталог сервиса $HOME/bnw/src/bnw/ и запустите его с помощью:
% twistd -ny instance.tac
Не забудьте, что запускать сервис вы должны из виртуального окружения virtualenv, поэтому если вы открыли новую консоль, то перед запуском сервиса необходима повторная инициализация окружения:
% source $HOME/bnw/bin/activate
Такой вариант запуска подходит для отладки, но если вам нужно чтобы сервис запускался в режиме демона с помощью стандартного механизма стартовых скриптов, неоходимо сделать следующее:
- Скопируйте шаблон скрипта в системный каталог:
% sudo cp bnw.init.d.sh /etc/init.d/bnw
Отредактируйте переменную BNW_VENV_PATH в этом скрипте по необходимости. Это путь до виртуального окружения virtualenv, в нашем случае $HOME/bnw.
Также по желанию отредактируйте переменные USER и GROUP — от этих пользователя и группы будет запускаться сервис. Системный пользователь и одноимённая группа bnw создаются с помощью команды:
% sudo adduser --system --no-create-home --group bnw
Лог сервиса будет располагаться по адресу /tmp/bnw.log
Теперь вы можете использовать команды:
% sudo /etc/init.d/bnw start % sudo /etc/init.d/bnw stop % sudo /etc/init.d/bnw restart
для запуска, остановки и перезагрузки сервиса соответственно. При данном варианте инициализация окружения не требуется, скрипт об этом позаботится сам.
Чтобы сервис запускался при старте компьютера, выполните команду:
% sudo update-rc.d bnw defaults
Чтобы отменить это действие:
% sudo update-rc.d -f bnw remove
Прочее
Обратите внимание, что для работы сервиса необходимы как минимум запущенные XMPP и MongoDB сервера. По умолчанию, при установке они добавляются в автозагрузку, но если по какой-то причине один из серверов не загружен, запустите его с помощью механизма стартовых скриптов:
% sudo /etc/init.d/server_name start