Современная разработка программного обеспечения во многом зависит от сторонних библиотек. Однако выбор правильной зависимости представляет серьёзную проблему: уязвимости, конфликты лицензий и риски поддержки.
StackScout — это комплексная платформа для управления программными активами (Software Asset Management). Она автоматизирует сбор, анализ и мониторинг open-source библиотек, предоставляя оценку их «здоровья» и юридической чистоты.
| Категория | Технологии | Версия / Детали |
|---|---|---|
| Backend | Java, Spring Boot, Spring Security, Spring Data JPA | Java 21, Spring Boot 3.5 |
| База данных | PostgreSQL, Redis, RabbitMQ | PostgreSQL 16, Redis 7+ |
| Frontend | Next.js, React, Material UI, TypeScript | Next.js 16, React 19, MUI 7 |
| Инфраструктура | Docker, Docker Compose, GitHub Actions | — |
| Мониторинг | Prometheus, Grafana | — |
flowchart LR
subgraph Client["Клиент"]
User["Пользователь /\nАдминистратор"]
end
subgraph FE["Frontend (Next.js)"]
App["Next.js App"]
end
subgraph BE["Backend (Spring Boot)"]
API["REST API v1"]
Services["Services /\nBusiness Logic"]
Queries["Selectors /\nQueries"]
API --> Services
API --> Queries
end
subgraph Storage["Storage"]
DB[("PostgreSQL")]
Cache[("Redis")]
Queue["RabbitMQ"]
end
subgraph DS["Источники данных"]
PyPI["PyPI API"]
Docker["Docker Hub"]
Npm["npm Registry"]
Maven["Maven Central"]
NuGet["NuGet"]
GitHub["GitHub API"]
GitLab["GitLab API"]
end
User --> App
App --> API
Services --> DB
Queries --> DB
Services <--> Cache
Services <--> Queue
DS --> Services
| Компонент | Минимум | Рекомендуется |
|---|---|---|
| Java | 21+ | 21 |
| Node.js | 18.18+ | 20+ |
| pnpm | 8+ | Latest |
| Docker | 24+ | Latest |
| Docker Compose | 2.20+ | Latest |
git clone https://github.com/Zero-Logic-Education/StackScout.git
cd stackscout- PostgreSQL:
localhost:5433/postgres/postgres - Redis:
localhost:6379 - RabbitMQ:
localhost:5672/guest/guest - Backend API:
http://localhost:8081
# Сборка и запуск
docker compose up -d --build
# Статус
docker compose ps# Сборка проекта
cd backend && ./gradlew build
# Запуск в режиме разработки
cd backend && ./gradlew bootRun
# Запуск тестов
cd backend && ./gradlew test
# Сборка без тестов
cd backend && ./gradlew build -x test
# Очистка артефактов сборки
cd backend && ./gradlew clean# Установка зависимостей
cd frontend && pnpm install
# Запуск dev-сервера (http://localhost:3000)
cd frontend && pnpm dev
# Сборка для production
cd frontend && pnpm build
# Запуск production-сборки
cd frontend && pnpm start
# Линтинг
cd frontend && pnpm lint# Запустить все сервисы инфраструктуры
docker compose up -d
# Остановить все сервисы
docker compose down
# Пересобрать образы и запустить
docker compose up -d --build
# Логи конкретного сервиса
docker compose logs -f postgres
docker compose logs -f redis
# Полная очистка (включая volumes)
docker compose down -v# Сборка docker-образов
pnpm docker:build
# Запуск контейнеров
pnpm docker:up
# Пересобрать и запустить
pnpm docker:up:build
# Остановить контейнеры
pnpm docker:down
# Логи (передайте имя сервиса после --)
pnpm docker:logs -- frontend
pnpm docker:logs -- appStackScout находится в рабочем состоянии и включает:
- CI/CD через GitHub Actions;
- backend и frontend тесты;
- нагрузочное тестирование через
k6; - мониторинг через Prometheus и Grafana;
- Docker Compose для локального запуска;
- русскоязычный отчет по нагрузочному тестированию в load-tests/report.md.
# Нагрузочный тест API
npm run load:api
# Нагрузочный тест поиска
npm run load:search
# Нагрузочный тест admin/scraper endpoint'ов
npm run load:scraperStackScout включает полноценную систему мониторинга на базе Prometheus и Grafana:
- Prometheus: http://localhost:9090 - сбор метрик
- Grafana: http://localhost:3001 (admin/admin) - визуализация
- Метрики приложения: http://localhost:8081/actuator/prometheus
- Backend API (request rate, response time, errors)
- JVM (memory, GC, threads)
- PostgreSQL (connections, transactions, performance)
- Redis (clients, operations, cache hit rate)
- RabbitMQ (queues, messages, consumers)
После входа в Grafana перейдите в Dashboards → StackScout → StackScout System Overview
Подробная документация: infrastructure/monitoring/README.md