Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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: about 1 month ago
JSON representation
Monorepo with document storage services on nest.js with apps: rest-api, grpc-api, worker, kafka-consumer
- Host: GitHub
- URL: https://github.com/anatoly-semenov/docs-monorepo
- Owner: Anatoly-Semenov
- Created: 2024-08-19T09:16:06.000Z (3 months ago)
- Default Branch: master
- Last Pushed: 2024-08-19T14:28:13.000Z (3 months ago)
- Last Synced: 2024-10-11T18:05:44.306Z (about 1 month ago)
- Topics: cron, docker, grpc, helm-charts, http, ioc, jest, kafka, makefile, minio, monorepo, nest, nodejs, postgresql, redis, redis-bull, s3, typeorm, winston-logger, worker
- Language: TypeScript
- Homepage: https://nestjs.com
- Size: 370 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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`