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

    Давным-давно, в далекой далекой галактике... к черту историю, 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 версию сделал Валера Ильичев (ридонли) при моральной поддержке Теплицы социальных технологий.
    Поделиться публикацией
    Комментарии 12
      +1
      Спасибо полезная вещь! Действительно хорошо бы иметь упрощенную версию инсталляции, и версию для обычного хостинга (не VPS)
        +5
        Что-то подобное использовали волонтёры на Майдане, это не оно было?
          +1
          Нет, конечно. Там было 100500 разных типов координации, поскольку одну централизированную систему легко забить.
            +1
            Там точно использовали Ushahidi.
            Рында использовалась для карты пожаров (в 2011м)
            +3
            Качаемо простого инсталлятора, — запакуйте в контейнер docker.
              0
              А работающая демка где-то есть?
                0
                есть простая демка вот тут demo.openrynda.te-st.ru/ — но это то, что получается сразу после установки — в реальности там нужно все еще настроить и завести какие-то первичные данные.
                  +2
                  Спасибо за интересный продукт, но есть замечания:
                  Демка нормально не работает из-за того что база readonly.
                  Локальная установка требует пересборки pysqlite(во всяком случае под убунту), о чем не сказано в инструкции
                  В локально установленной тестовой версии возникает ошибка другого рода (добавил issue на github)
                    0
                    демка сильно ограничена, под убунту не пробовали еще ставить — внесем в фак, за багрепорт — спасибо!
                      +1
                      баг с ридонли поправлен!
                  –3
                  Приятно удивлен. Родное, непризнанное Приднестровье на карте.
                    0
                    Ссылки на проекты, где используется, добавте, пожалуйста.

                    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                    Самое читаемое