backend-bootstrap
- Express с разными middleware для CSP, логгирования, сессий, конфига.
- Postgres (knex как сборщик запросов, sequelize как ORM).
- Авторизация на Passport + социальная авторизация через Google.
Развертка на Heroku:
- Добавить репозиторий.
- Добавить Postgres, убедиться, что в Config Vars добавился DATABASE_URL.
- TESTING_MODE = TRUE добавляет доп. проверки, выводы в консоль, что всё подключилось и всё норм.
- Конфигурируем переменные окружения SESSION_SECRET (любая рандомная строка), GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET (получить тут https://console.cloud.google.com/apis/credentials через Create Credentials -> Web Client; для Authorized redirect URIs указываем сайт/api/auth/google/callback), GOOGLE_CALLBACK_URL =
{адрессайта}/api/auth/google/callback
. - Зайти и запустить файлы миграции из папки ./build/src/migrations/ по порядку (кроме build-*).
Развертка для дева:
- Склонировать, npm install.
- Скопировать configs/development.example.env в configs/development.env, добавить данные бд.
- Запустить миграции из src/migrations/
Разработка
-
npm run dev -- запускает дев.
-
npm run build -- запускает build:backend && build:frontend.
-
npm run start -- запускает собранный бэк.
Конфиг
В /config/ есть конфиги, их можно коммитить, в них разные несекретные настройки.
Секретные это db credentials, google auth id, etc, они добавляются:
- Дев: в /config/development.env.
- Prod: в переменные окружения.
Адрес БД: postgresql://[user[:password]@][netloc][:port][,...][/dbname][?param1=value1&...]