Skip to content

Настройка и разработка

Предварительные требования

  • Node.js 22+
  • pnpm (включить через Corepack: corepack enable && corepack prepare pnpm@latest --activate)
  • Docker Desktop (для PostgreSQL и других сервисов)
  • Git

Быстрый старт

bash
# 1. Клонировать и установить
git clone <repo-url> planner
cd planner
pnpm install

# 2. Запустить инфраструктуру (PostgreSQL)
docker compose up -d db

# 3. Настроить окружение
cp .env.example .env
# Отредактировать .env при необходимости (значения по умолчанию подходят для локального Docker)

# 4. Применить схему базы данных
cd apps/backend
npx prisma db push      # для локальной разработки
cd ../..

# 5. Запустить все приложения в режиме разработки
pnpm dev

Это запускает:

Переменные окружения

Корневой .env (загружается всеми приложениями)

env
# См. .env.example для полного списка с описаниями
POSTGRES_USER=planner
POSTGRES_PASSWORD=planner
POSTGRES_DB=planner
DATABASE_URL=postgresql://planner:planner@localhost:5432/planner
JWT_SECRET=change-me
REDIS_PASSWORD=planner_redis

Безопасность: Никогда не коммитьте .env файлы в систему контроля версий. Используйте надёжные случайные значения для секретов в продакшне (openssl rand -base64 32).

Запуск отдельных приложений

bash
# Только бэкенд
pnpm --filter @planner/backend dev

# Только фронтенд
pnpm --filter @planner/frontend dev

# Только сайт
pnpm --filter @planner/website dev

# Только документацию
pnpm --filter @planner/docs dev

Полезные команды

bash
# Проверка типов
pnpm --filter @planner/backend typecheck
pnpm --filter @planner/frontend typecheck
pnpm --filter @planner/website build  # на сайте typecheck встроен в build

# Тестирование
pnpm --filter @planner/backend test    # 290 юнит-тестов

# Сборка
pnpm --filter @planner/backend build
pnpm --filter @planner/frontend build
pnpm --filter @planner/website build
pnpm --filter @planner/docs build

# Линтинг (весь монорепозиторий)
pnpm lint

# Изменения схемы базы данных
cd apps/backend
npx prisma db push      # Применить схему к БД разработки
npx prisma generate     # Перегенерировать Prisma клиент
npx prisma migrate dev  # Создать миграцию (для продакшна)
npx prisma migrate deploy  # Применить миграции в продакшне

Docker для разработки

bash
# Запустить все сервисы
docker compose up -d

# Пересобрать конкретный сервис
docker compose build --no-cache backend

# Просмотр логов
docker compose logs -f backend frontend

# Остановить всё
docker compose down

Скрипты проекта

СкриптОписание
pnpm devЗапустить все приложения в режиме разработки
pnpm buildСобрать все приложения
pnpm lintЗапустить линтер во всём монорепозитории
pnpm formatФорматировать код через Prettier