Monorepo with document storage services on nest.js with apps: rest-api, grpc-api, worker, kafka-consumer
Структура директорий проекта с описанием:
.
├── Makefile - Файл директив Make
├── README.md - Этот документ
├── .env - Файл окружения инфраструктуры проекта
├── app.env - Файл окружения исполнения логики проекта
├── docker-compose.yaml - Файл-конфигурация Docker Compose
├── env.d - Директория файлов инфраструктурного обеспечения проекта
│ ├── charts.d - Директория Helm-чартов
│ ├── conf.d - Директория различных файлов конфигурации
│ ├── docker.d - Директория конфигурации Docker и сопутствующих файлов
│ ├── dotenv.d - Директория файлов Dotenv
│ └── mk.d - Директория фалов-компонент директив Make
├── nest-cli.json - Файл конфигурации Nest CLI
├── node_modules - Директория пакетов NPM
├── package.json - Файл-описание Node-проекта
├── src - Исходный код проекта
│ ├── bootstrap - Конфигурирование проекта
│ ├── common - Общие модули для доменов (авторизация, конфиг и тп.)
│ ├── domains - Домены (в доменах могут быть еще домены)
│ │ ├── domain_name - Название домена
│ │ │ ├── controllers - Контроллеры
│ │ │ ├── dto - Data Transfer Object
│ │ │ │ └── v1 - Версия интерфейса
│ │ │ └── services - Бизнес логика
│ ├── providers - Провайдеры модулей
│ └── shared - Константы, декораторы, интерфейсы, схемы БД
├── test - Unit и интеграционные тесты
├── tsconfig.build.json - Файл-расширение параметров сборки Typescript
├── tsconfig.json - Основной файл конфигурации Typescript
└── yarn.lock - Файл-журнал версий установленных зависимостей
Окружение запуска должно быть *nix
-совместимым
(т.е. должно обладать терминалом и *nix
-окружением).
Нативными окружениями являются любые Linux-дистрибутивы и macOS.
На Windows, необходимо установить WSL и работать в окружении WSL.
Локально, проект конфигурируется двумя файлами в нотации Dotenv - инфраструктурным и проектным. Для запуска проекта, необходимо скопировать шаблоны файлов в корень проекта, и заполнить значения внутри:
make prepare_project
Далее, необходимо открыть файлы app.env
и .env
, и
вставить полученные значения кредов в пустые значения
(пустые после знака =
).
Далее, следует произвести сборку образов проекта:
make build_clean
По результатам сборки, в консоли не должно быть ни одной красной или желтой строки (т.е. не должно быть ошибок и предупреждений сборки)
После сборки, остаётся лишь запустить проект:
make up
После выполнения команды, в консоли будут зеленые строки-статус запуска,
а в интерфейсе Docker for Desktop будут отображаться все контейнеры проекта,
описанные в docker-compose.yaml