Состоит из
./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-orgsudo service mongod start && sudo systemctl enable mongod.service && mongo databasedb.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- запустить тесты бекенда