#REQUIREMENTS
##Development
- nodejs
- grunt-cli (npm install -g grunt-cli)
- bower (npm install -g bower)
##Production
- docker
#Описание проекта
##Backend Серверная часть организована в виде отдельных компонент. Каждая из компонент представляет собой docker-образ. Узлы nginx предназначены для отдачи статики и проксирования самого nodejs приложения. В узлах nodejs развернуто само приложение. В узлах mongodb и postgresql развернуты базы данных mongdb и postgresql соответственно.
###nginx Образ собирается из Dockerfile. Файл с конфигурацией nginx.conf копируется непостредственно в образ, а конфиги из папки sites-enabled монтируются в папку /etc/nginx/sites-enabled в сам контейнер. Makefile содержит команды:
- build: запускает сборку образа из Dockerfile
- run: запускает контейнер из собранного образа и монтирует все необходимые директории
- stop: останавливает запущенный контейнер
- start: запускает контейнер
- reload_nginx: перезапускает nginx внутри работающего контейнера
- clear: удаляет контейнер и образ
###nodejs Образ собирается из Dockerfile. Содержит NodeJS версии 6.x и pm2. При запуске контейнера монтируются папки dist/backend -> /srv/node/app и components/nodejs/comands -> /srv/node/comands. Makefile содержит команды:
- build: запускает сборку образа из Dockerfile
- run: запускает контейнер из собранного образа и монтирует все необходимые директории
- stop: останавливает запущенный контейнер
- start: запускает контейнер
- restart_app: перезапускает nodejs приложение внутри контейнера
- start_app: запускает nodejs приложение внутри контейнера
- clear: удаляет контейнер и образ
- install: устанавливает nodejs пакеты переданные как pkg=<имя_пакета> внутри контейнера. Если параметр pkg не передан устнавливает пакеты перечисленные в package.json
- uninstall: удвляет nodejs пакеты переданные как pkg=<имя_пакета> внутри контейнера
###mongodb