8 January 2015

Open-rynda: краудсорс решение для ЧС и сетевой координации волонтеров

Self Promo
Давным-давно, в далекой далекой галактике... к черту историю, OpenRynda is ready!

image

Что такое OpenRynda?

Опенсорс версия Виртуальной Рынды, позволяет координировать просьбы пострадавших и предложения помощи волонтеров. Сделано на основе 4-х летнего опыта (Виртуальная рында работает с 2010 года).

Зачем это нужно?

  1. Внезапно, пожар/наводнение/смерч/метеорит/Звезда Смерти
  2. Вы поднимаете OpenRynd'у
  3. Пострадавшие от пожара/наводнения/смерча/метеорита/звезды смерти/цензура отмечают на карте наличие проблем
  4. Волонтеры предлагают помощь
  5. Модераторы — координируют процесс
  6. Profit! Проблемы решены!

Где взять?

Взять можно тут.
Написано на Python, с использованием Django и опубликовано под открытой лиценцией MIT.
Системные требования: Python 2.7+, spatialite, GEOS, PROJ.4, Virtualenv.

Как поставить?

Тестовая версия:

Создаем и активируем virtualenv:
virtualenv rynda
source rynda/bin/activate
Клонируем репозиторий:
git clone https://github.com/sarutobi/Rynda.git
переходим в клонированный репозиторий:
cd Rynda
Устанавливаем все зависимости:
pip install -r requirements\test.txt
Копируем mysettings.py.example в mysettings.py

Задаем структуру базы данных и пароль суперпользователя:
bash createdb.sh 
Дважды вводим пароль суперпользователя.

Имя суперпользователя по умолчанию: admin

Запускаем локальный сервер:
python manage.py runserver
Открываем в браузере ://localhost:8000

Чтобы протестировать систему запускаем:
$python manage.py test

Рабочая версия:

Требуется немного терпения.
Для установки в обычном режиме под веб сервером Apache нужно установить модуль mod-wsgi.
Например в Debian:
$ sudo aptitude install libapache2-mod-wsgi

Если у вас стоит модуль mpm-itk, то он может быть причиной того, что модуль mod-wsgi не будет работать.
Далее прописать настройки VirtualHost.
Запуск в режиме демона является рекомендуемым методом запуска mod_wsgi на не Windows платформах. Чтобы создать процесс потребуется добавить директивы WSGIDaemonProcess и WSGIProcessGroup.
Формат директив:
WSGIDaemonProcess имя_процесса processes= threads= python-path=
где:
python-path — это путь к библиотекам виртуального окружения сайта в формате:  /path/to/mysite.com:/path/to/your/venv/lib/python2.X/site-packages
processes — определяет количество процессов демона, которые должны быть запущены в этой группе процессов, определенной директивой WSGIProcessGroup. По умолчанию (когда кол-во не определено) будет запущен только один процесс.
threads — определяет кол-во потоков для обработки запросов по каждому из процессов демона внутри группы процессов,  определенных директивой WSGIProcessGroup.
WSGIProcessGroup имя_процесса

Также необходимо разрешить доступ к wsgi.py файлу. Если вы используете Apache версии 2.4 или старше, замените строку Require all granted на Allow from all, и добавьте строку Order deny,allow над ней.
Пример:
<Directory /path/to/mysite.com/mysite/Rynda/scripts>
<Files wsgi.py>
	Require all granted
</Files>
</Directory>

Еще одно важная директива — WSGIScriptAlias. Она указывает местоположение ваших приложений, (/ обозначает корневую директорию), вторым значением указывается расположение файла “WSGI” – см.ниже – в вашей системе, как правило, в корне проекта. (в примере это mysite). Эти настройки позволят Apache обрабатывать любой запрос из директории, указанной как базовая с помощью WSGI-приложения, хранящегося в ней.
WSGIScriptAlias / /path/to/mysite.com/mysite/wsgi.py

Кроме этого, необходимо указать положение статических файлов.
Собираем статические файлы, в папке, которая указана у вас в настройках:
 manage.py ./manage.py collectstatic

Укажем Apache расположение этой папки:
 Аlias /static/ /path/to/mysite.com/static

Лучше использовать nginx в качестве backend'a для раздачи статических файлов, так как он делает это более эффективно, нежели Apache:
location /static {alias /path/to/mysite.com/static; }

Пример описания виртуального хоста для Apache
<Directory /path/to/my/site/www/demo.openrynda.com/Rynda/rynda/Rynda>
	<Files wsgi.py>
	Order allow,deny
	Allow from all
</Files>
</Directory>

<VirtualHost 111.22.23.11:81 >
	ServerName demo.openrynda.com
	DocumentRoot /path/to/my/site/www/demo.openrynda.com
	WSGIDaemonProcess openrynda processes=5 threads=1 python-path= /path/to/my/site/www/demo.openrynda.com/Rynda:/path/to/my/site/www/demo.openrynda.com/rynda/lib/python2.7/site-packages:/path/to/my/site/www/demo.openrynda.com/rynda/lib/python2.7/
	WSGIProcessGroup openrynda
	WSGIScriptAlias / /path/to/my/site/www/demo.openrynda.com/rynda/Rynda/wsgi.py
	Аlias /static/ /path/to/my/site/www/demo.openrynda.com/static  # расположение статики (при необходимости измените)
	ServerAlias www.demo.openrynda.com
</VirtualHost>


Как помочь?

После 1200+ коммитов, проект все еще требует некоторых доработок (например, необходим простой инсталлятор «для обычного пользователя»), так что пожалуйста присылайте пуллреквесты!

Авторство

Оригинальный проект разрабатывался многими людьми в разное время, open-source версию сделал Валера Ильичев (ридонли) при моральной поддержке Теплицы социальных технологий.
Tags:картыemergencyпомощь ближнемупрямые руки
Hubs: Self Promo
+21
12.2k 67
Comments 12
Top of the last 24 hours