Начало работы

Установка

Локальная установка perfscale для разработки

Требования

ИнструментМинимальная версия
Node.js22
pnpm10
Docker24
Rust / cargo1.86

Клонирование и инициализация

git clone https://github.com/your-org/perfscale.git
cd perfscale

# Первоначальная настройка: устанавливает зависимости, запускает Docker-сервисы, применяет схему БД
pnpm dx:init

dx:init выполняет следующее:

  1. Копирует .env.example.env
  2. Устанавливает все JS-зависимости
  3. Устанавливает cargo-watch (горячая перезагрузка Rust)
  4. Скачивает и запускает Docker-образы (PostgreSQL + Keycloak)
  5. Ожидает готовности обоих сервисов
  6. Применяет схему базы данных

Запуск серверов разработки

После инициализации запустите всё одной командой:

pnpm dev

Параллельно запускаются:

  • Next.jshttp://localhost:3000
  • Rust BFFhttp://localhost:8090
  • Swagger UIhttp://localhost:8090/swagger-ui/

PostgreSQL и Keycloak управляются через Docker Compose и стартуют автоматически.

Загрузка демо-данных

pnpm --filter @perfscale/site db:seed

Создаёт пользователя demo@perfscale.ru с тремя машинами и примером теста.

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

Все переменные хранятся в .env в корне монорепозитория. Приложения читают их автоматически через dotenv-cli.

ПеременнаяОписание
DATABASE_URLСтрока подключения к PostgreSQL
KEYCLOAK_ISSUERURL realm Keycloak
KEYCLOAK_CLIENT_IDOIDC client ID
KEYCLOAK_CLIENT_SECRETOIDC client secret
NEXTAUTH_URLПубличный URL приложения Next.js
NEXTAUTH_SECRETСлучайный секрет для подписи JWT