58 lines
2.0 KiB
Markdown
58 lines
2.0 KiB
Markdown
# Simple Storage
|
|
|
|
Учебный backend-проект для обучения студентов основам NestJS.
|
|
|
|
## Назначение
|
|
|
|
Простой REST API сервис для хранения данных. Используется как демонстрационный проект в рамках обучения backend-разработке.
|
|
|
|
## Стек
|
|
|
|
- **Framework:** NestJS 11
|
|
- **Language:** TypeScript
|
|
- **Runtime:** Node.js
|
|
- **Database:** PostgreSQL (shared-db) + TypeORM
|
|
- **CI/CD:** Drone CI + ci-templates
|
|
|
|
## Структура
|
|
|
|
```
|
|
src/
|
|
├── main.ts # Точка входа
|
|
├── app.module.ts # Корневой модуль (ConfigModule + TypeORM)
|
|
├── app.controller.ts # REST контроллер
|
|
├── app.service.ts # Бизнес-логика (TypeORM Repository)
|
|
├── entities/
|
|
│ ├── user.entity.ts # Entity: users
|
|
│ └── storage.entity.ts # Entity: storages
|
|
├── health/
|
|
│ ├── health.module.ts # Health check модуль
|
|
│ └── health.controller.ts # GET /health
|
|
├── schemas.ts # Swagger DTO
|
|
├── types.ts # TypeScript типы
|
|
├── consts.ts # Константы
|
|
└── api.responses.ts # Форматы ответов API
|
|
```
|
|
|
|
## Команды
|
|
|
|
```bash
|
|
npm install # Установка зависимостей
|
|
npm run start:dev # Запуск в dev режиме
|
|
npm run build # Сборка
|
|
npm run start:prod # Production запуск
|
|
```
|
|
|
|
## Деплой
|
|
|
|
- **CI/CD:** Drone CI через ci-templates (service.yaml + .drone.yml)
|
|
- **Namespace:** backend-for-learning
|
|
- **URL:** https://simple-storage.vigdorov.ru
|
|
- **Health:** GET /health
|
|
|
|
## Локальная разработка
|
|
|
|
Переменные окружения в `.env.local`:
|
|
- `DATABASE_HOST` — хост PostgreSQL (localhost для dev через NodePort :30432)
|
|
- `DATABASE_PORT`, `DATABASE_USER`, `DATABASE_PASSWORD`, `DATABASE_NAME`
|