Давным-давно, в далекой далекой галактике... к черту историю, OpenRynda is ready!
Что такое OpenRynda?
Опенсорс версия Виртуальной Рынды, позволяет координировать просьбы пострадавших и предложения помощи волонтеров. Сделано на основе 4-х летнего опыта (Виртуальная рында работает с 2010 года).
Зачем это нужно?
- Внезапно, пожар/наводнение/смерч/метеорит/Звезда Смерти
- Вы поднимаете OpenRynd'у
- Пострадавшие от пожара/наводнения/смерча/метеорита/звезды смерти/
цензураотмечают на карте наличие проблем - Волонтеры предлагают помощь
- Модераторы — координируют процесс
- 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 requirementstest.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 версию сделал Валера Ильичев (ридонли) при моральной поддержке Теплицы социальных технологий.
Автор: gsuvorov