1

Установка BnW на Linux

BnW — это сервис микроблоггинга, написанный на языке программирования Python. В данной статье мы рассмотрим его установку и настройку для Ubuntu 12.04, установка для Debian и других Debian-based дистрибутивов не должна сильно отличаться, в частности, данная инструкция гарантированно работает с Debian Wheezy. (Если у вас совсем другой дистрибутив, посмотрите Makefile и действуйте согласно его специфике.)

Мы будем использовать виртуальное окружение virtualenv, которое позволяет устанавливать библиотеки в выбранный каталог, никак не затрагивая системные версии, не требует прав суперпользователя и при желании позволяет легко удалить установленное приложение без каких-либо последствий.

Получаем код

Вначале установите git, если у вас его нет:

% sudo apt-get install git

Перейдите в $HOME (на сервере уместнее будет устанавливать в /srv) и получите код из репозитория в каталог bnw:

% cd $HOME
% git clone https://github.com/stiletto/bnw.git bnw

Создаём виртуальное окружение

% cd bnw
% make install-venv

Эта команда установит необходимые базовые зависимости и настроит виртуальное окружение в подкаталоге .venv

Настраиваем MongoDB

Настройки по умолчанию вполне рабочие, но желательно ещё проделать следующее:

Устанавливаем и настраиваем XMPP-сервер

Мы рассмотрим prosody, но вы также можете использовать ejabberd или jabberd2, их настройка во многом аналогична. (Вообще, подойдёт любой сервер, поддерживающий XEP-0114: Jabber Component Protocol, но эти три сервера наиболее популярны и просты в использовании.)

Устанавливаем prosody:

% sudo apt-get install prosody

Возможны два варианта настройки: локальный сервис, который доступен только вам (например, если нужно протестировать какие-то фичи), или сервис общего пользования.

Локальный вариант

Публичный вариант

Допустим, компьютер, на котором вы хотите запустить сервис, имеет доменное имя example.com, а сервис будет располагаться по адресу bnw.example.com.

Создание XMPP-аккаунтов

Т.к. по умолчанию регистрация с помощью клиентов в prosody запрещена, в случае локального варианта используйте команду:

sudo prosodyctl adduser user@localhost

(вас попросят ввести пароль). В случае публичного сервера подставьте вместо localhost его имя или можете использовать ваш уже имеющийся аккаунт на любом другом XMPP-сервере.

Устанавливаем и настраиваем HTTP-сервер

Локальный вариант

По умолчанию, BnW запускает веб-интерфейс по адресу http://localhost:7808/, дополнительные действия не требуются.

Публичный вариант

TODO /!\ Штилетта, сделай!

Настраиваем сервис

Перейдите в каталог сервиса (в нашем случае $HOME/bnw) и выполните команду:

make config

Это создаст конфиг-файл из шаблона и откроет его для редактирования. Обратите внимание на следующие опции:

Остальные опции можно оставить как есть или прочитать к ним комментарии в этом же файле конфигурации.

Запускаем сервис

% make run

(это надо делать из каталога сервиса).

Такой вариант запуска подходит для отладки и тестов, но если вам нужно чтобы сервис запускался в режиме демона с помощью стандартного механизма стартовых скриптов, неоходимо сделать следующее:

Теперь вы можете использовать команды:

% 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

Поиск

Сервис поиска запускается командой:

% make run_search

Или скопируйте и установите стартовый скрипт bnw_search.init.d.sh по аналогии со скриптом основного сервиса.

Прочее

Обратите внимание, что для работы сервиса необходимы как минимум запущенные XMPP и MongoDB сервера. По умолчанию, при установке они добавляются в автозагрузку, но если по какой-то причине один из серверов не загружен, запустите его с помощью механизма стартовых скриптов:

% sudo /etc/init.d/server_name start