Настройка и разработка
Предварительные требования
- 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Это запускает:
- Бэкенд на http://localhost:4000
- Фронтенд на http://localhost:3000
- Сайт на http://localhost:8080
- Документацию на http://localhost:8081
Переменные окружения
Корневой .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 |