heyqbnk / mini-apps-backend-template

Backend template made with Node, TypeScript and Apollo GraphQL

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

mini-apps-backend-template

Шаблон для написания своего backend-сервиса на платформе VK Mini Apps.

Шаблон можно также использовать для написания backend-сервиса с кастомной авторизацией. Необходимо лишь убрать код, связанный непосредственно с VK.

Переменные окружения

Примеры значений для указанных типов данных

Название типа Пример значения
boolean 0 или 1
number 77361829
string some-string
AppCredentials 66731827:my-secret-key,553261324:another-secret

Для запуска проекта необходимо создать файл .env в котором передать указанные переменные:

Описание необходимых переменных окружения

Название Тип Обязательный Значение по умолчанию Описание
APP_ENV local, staging, production да Среда запуска приложения
ENABLE_CORS boolean нет 0 Включить CORS
GQL_PUBLIC_HTTP_ENDPOINT string нет /gql Путь GraphQL для доступа к пользовательским запросам
GQL_PUBLIC_WS_ENDPOINT string нет Путь GraphQL для доступа к пользовательскому веб-сокет подключению
GQL_ADMIN_HTTP_ENDPOINT string нет /gql-adm Путь GraphQL для доступа к админским запросам
GQL_ADMIN_WS_ENDPOINT string нет Путь GraphQL для доступа к пользовательскому веб-сокет подключению
MAX_THREADS_COUNT number нет 1 Максимальное количество поток, в которое можно запустить сервер
PORT number да Номер порта сервера
SENTRY_DSN string Обязателен при APP_ENV равном staging или production Sentry DSN для логирования ошибок
SENTRY_DEPLOY_TOKEN string Обязателен при APP_ENV равном staging или production Токен Sentry используемый при деплое артефактов
VK_APP_API_ACCESS_TOKEN string да Ключ доступа приложения
VK_APP_API_RPS number нет 3 Максимальный RPS для инстанса VKAPI на основе ключа приложения
VK_APP_CREDENTIALS AppCredentials да Список приложений с их секретными ключами у которых есть доступ в API
VK_APP_ID number да Идентификатор приложения VK Mini Apps
VK_LAUNCH_PARAMS_EXPIRATION number нет 86400 (1 день) Время в секундах, после которого параметры запуска признаются истекшими

Скрипты

Общие

Скрипт Описание
yarn dev Запускает сервер в режиме разработки. Перезапускает сервер в случае изменений файлов
yarn build Собирает проект
yarn start Запускает собранную версию сервера
yarn tunnel {port} Запускает туннель Ngrok по указанному порту

Разработка

Скрипт Описание
git add -A Указать Git'у добавить все измененные файлы для последующего коммита
yarn commit Создать коммит при помощи commitizen. Необходимо корректно указывать все поля, предлагаемые им
git push Отправить свои изменения

Запуск

  1. Установить зависимости - yarn install
  2. Создать .env файл в корне файла и указать все необходимые переменные окружения
  3. Собрать проект - yarn build
  4. Запустить проект - yarn start

Сборка проекта

Для сборки проекта используется task manager gulp. Конечным результатом его работы должно быть создание папки, в которой находится уже собранный проект. Сборка происходит таким образом, чтобы собранный проект можно было запустить как локально, так и в docker-контейнере.

About

Backend template made with Node, TypeScript and Apollo GraphQL


Languages

Language:TypeScript 93.8%Language:JavaScript 6.2%