Начало работы
Установка
Локальная установка perfscale для разработки
Требования
| Инструмент | Минимальная версия |
|---|---|
| Node.js | 22 |
| pnpm | 10 |
| Docker | 24 |
| Rust / cargo | 1.86 |
Клонирование и инициализация
git clone https://github.com/your-org/perfscale.git
cd perfscale
# Первоначальная настройка: устанавливает зависимости, запускает Docker-сервисы, применяет схему БД
pnpm dx:init
dx:init выполняет следующее:
- Копирует
.env.example→.env - Устанавливает все JS-зависимости
- Устанавливает
cargo-watch(горячая перезагрузка Rust) - Скачивает и запускает Docker-образы (PostgreSQL + Keycloak)
- Ожидает готовности обоих сервисов
- Применяет схему базы данных
Запуск серверов разработки
После инициализации запустите всё одной командой:
pnpm dev
Параллельно запускаются:
- Next.js →
http://localhost:3000 - Rust BFF →
http://localhost:8090 - Swagger UI →
http://localhost:8090/swagger-ui/
PostgreSQL и Keycloak управляются через Docker Compose и стартуют автоматически.
Загрузка демо-данных
pnpm --filter @perfscale/site db:seed
Создаёт пользователя demo@perfscale.ru с тремя машинами и примером теста.
Переменные окружения
Все переменные хранятся в .env в корне монорепозитория. Приложения читают их автоматически через dotenv-cli.
| Переменная | Описание |
|---|---|
DATABASE_URL | Строка подключения к PostgreSQL |
KEYCLOAK_ISSUER | URL realm Keycloak |
KEYCLOAK_CLIENT_ID | OIDC client ID |
KEYCLOAK_CLIENT_SECRET | OIDC client secret |
NEXTAUTH_URL | Публичный URL приложения Next.js |
NEXTAUTH_SECRET | Случайный секрет для подписи JWT |