Files
image-list-backend/CLAUDE.md
vigdorov 9d2d30e991
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone Build is failing
migrate ci and postgress
2026-02-08 20:09:53 +03:00

2.0 KiB
Raw Permalink Blame History

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

Команды

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