Состоит из
./api
- REST API./front
- веб SPA-приложение написанное React./config
- конфигурации./migrations
- миграции БД./test
- тесты
- nodejs^8.0 - платформа
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash - && sudo apt-get install -y nodejs
- mongoDB^3.4 - база данных debian 9 не поддерживается
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6 && echo "deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.4 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list && sudo apt-get update && sudo apt-get install -y mongodb-org
sudo service mongod start && sudo systemctl enable mongod.service && mongo database
db.createUser({ user: 'user', pwd: 'password', roles: [ 'dbOwner' ] });
- systemd - для демонизации приложения
- nginx опционально - api включает хостинг front'a
- Установить и настроить зависимости
- Клонировать репозиторий
- ввести в терминале
npm run update
- установит все внутренние зависимости, запустит миграции
- Создать и заполнить
config/production.json
файл - Демонизировать
cp template.service /etc/systemd/system/
systemctl enable template
systemctl start template
systemctl -l status template
- продакшн -
npm run prod
илиNODE_ENV=production node .
- dev -
npm start
Конфиг через библиотеку config.
Все конфиг файлы лежат в каталоге ./config
. Дефолтная конфигурация в файле ./config/default.json
{
"app": {
"name": "Template", - Имя приложения
"port": 3000, - порт для api и фронта
"loglevel": "info" - уровень логов
},
"mongo": { ... }, - конфиг базы данных
}
npm start
- запустить для разработки (включая установку зависимостей)npm run dev
- запустить в dev режимеnpm run prod
- запустить в production режимеnpm run update
- обновить сборку (полезно на проде)npm run migrate -- my-migration
- создать миграциюnpm run up
- мигрировать на 1 шаг вверхnpm run down
- мигрировать на 1 шаг внизnpm run build
- сбилдить фронтnpm test
- запустить тесты бекенда