Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/anatoly-semenov/docs-monorepo

Monorepo with document storage services on nest.js with apps: rest-api, grpc-api, worker, kafka-consumer
https://github.com/anatoly-semenov/docs-monorepo

cron docker grpc helm-charts http ioc jest kafka makefile minio monorepo nest nodejs postgresql redis redis-bull s3 typeorm winston-logger worker

Last synced: 2 months ago
JSON representation

Monorepo with document storage services on nest.js with apps: rest-api, grpc-api, worker, kafka-consumer

Awesome Lists containing this project

README

        

# Docs-monorepo

Структура директорий проекта с описанием:

```text
.
├── 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 - Файл-журнал версий установленных зависимостей

```

## 1. Подготовка к запуску

Окружение запуска должно быть `*nix`-совместимым
(т.е. должно обладать терминалом и `*nix`-окружением).

Нативными окружениями являются любые Linux-дистрибутивы и macOS.

На Windows, необходимо установить WSL и работать в окружении WSL.

### 1.1. Dotenv

Локально, проект конфигурируется двумя файлами
в нотации Dotenv - инфраструктурным и проектным.
Для запуска проекта, необходимо скопировать шаблоны
файлов в корень проекта, и заполнить значения внутри:

```bash
make prepare_project
```

Далее, необходимо открыть файлы `app.env` и `.env`, и
вставить полученные значения кредов в пустые значения
(пустые после знака `=`).

# 2. Сборка

Далее, следует произвести сборку образов проекта:

```bash
make build_clean
```

По результатам сборки, в консоли не должно быть ни одной красной или
желтой строки (т.е. не должно быть ошибок и предупреждений сборки)

# 3. Запуск

После сборки, остаётся лишь запустить проект:

```bash
make up
```

После выполнения команды, в консоли будут зеленые строки-статус запуска,
а в интерфейсе Docker for Desktop будут отображаться все контейнеры проекта,
описанные в `docker-compose.yaml`