Быстрый старт
Этот раздел нужен, чтобы быстро поднять рабочий контур NPPWEB локально и проверить не только “всё ли стартует”, но и “ходит ли поток данных end-to-end”.
Что входит в платформу
| Репозиторий | Роль |
|---|---|
infra | Docker Compose-контур со всеми базовыми сервисами и приложениями |
contracts | общие GraphQL и event-схемы |
npp-backend | NestJS + GraphQL API, auth, ingest и предметная модель |
npp-web | Nuxt 3 frontend для пользователей платформы |
scrape-helper | сбор данных из внешних источников |
processing-worker | нормализация событий и отправка ingest в API |
Что нужно заранее
- Docker и Docker Compose plugin;
- Node.js
20+; - свободные порты
3000,8080,15672,9001; - доступ к внешним источникам напрямую или через proxy-контур.
Базовый запуск всего стека
bash
cd infra
cp .env.example .env
docker compose --env-file .env -f docker-compose.yml -f docker-compose.apps.yml up -d --buildАльтернатива через Make:
bash
make upКакие сервисы должны подняться
postgresredisrabbitmqminiominio-initbackend-apiprocessing-workerscraper-servicefrontend
Опционально:
xray-proxy, если включён профильproxy
Smoke-check после старта
1. Проверка инфраструктуры
bash
cd infra
docker compose --env-file .env -f docker-compose.yml -f docker-compose.apps.yml ps2. Проверка backend
bash
curl http://localhost:3000/api/health
curl http://localhost:3000/api/health/ready3. Проверка frontend
bash
curl -I http://localhost:80804. Проверка RabbitMQ и MinIO
- RabbitMQ UI:
http://localhost:15672 - MinIO Console:
http://localhost:9001
Локальные учётные записи
После seed обычно доступны:
admin@admin.ru / 12345678analyst@admin.ru / 12345678user@admin.ru / 12345678
Как убедиться, что конвейер работает end-to-end
Минимальный сценарий
- Открыть frontend на
http://localhost:8080. - Войти под аналитиком или администратором.
- Проверить, что
dashboardиanalyticsоткрываются без GraphQL ошибок. - Проверить, что в
jobsили административном контуре видны запуски источников. - Проверить, что в backend появляются
SourceRunи закупки.
Диагностика через compose logs
bash
docker compose --env-file .env -f docker-compose.yml -f docker-compose.apps.yml logs backend-api processing-worker scraper-service frontendЛокальный запуск по сервисам
Backend
bash
cd npp-backend
npm install
npm run db:setup
npm run start:devFrontend
bash
cd npp-web
npm install
npm run devScraper
bash
cd scrape-helper
npm install
npm run start:devWorker
bash
cd processing-worker
npm install
npm run start:devКогда нужен proxy
Для части государственных площадок прямой доступ может быть нестабилен или заблокирован.
В этом случае нужно:
- создать
infra/xray-local/config.jsonна основеconfig.example.json; - включить
COMPOSE_PROFILES=proxy; - указать
HTTP_PROXYиHTTPS_PROXY=http://xray-proxy:8080; - не забыть про корректный
NO_PROXYдля внутренних сервисов.
Что проверить, если что-то не работает
| Симптом | Что смотреть первым |
|---|---|
| frontend не открывается | frontend container, NUXT_PUBLIC_GRAPHQL_ENDPOINT, health backend |
| GraphQL даёт ошибки | backend-api logs, миграции, seed, auth |
| нет новых закупок | scraper-service, processing-worker, RabbitMQ, ingest token |
источник запускается, но публикует 0 | внешний сайт, фильтрация, analytics/dashboard по source runs |
| артефакты не прикрепляются | MinIO, minio-init, S3_* env, права bucket |