# Image List Backend Учебный backend-проект — упрощенный Instagram для обучения студентов. ## Назначение REST API для работы с изображениями. Используется как практический проект при обучении backend-разработке на NestJS. ## Стек - **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/ │ ├── author.entity.ts # Entity: authors │ └── image.entity.ts # Entity: images ├── 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://image-list.vigdorov.ru - **Health:** GET /health ## Локальная разработка Переменные окружения в `.env.local`: - `DATABASE_HOST` — хост PostgreSQL (localhost для dev через NodePort :30432) - `DATABASE_PORT`, `DATABASE_USER`, `DATABASE_PASSWORD`, `DATABASE_NAME`