infra
infra — это репозиторий запуска и окружения платформы. Он нужен не только для локального старта, но и как source of truth по runtime-конфигурации всех сервисов.
За что отвечает
docker-compose.ymlи дополнительные compose-файлы;- шаблон
.env.example; - health-зависимости сервисов;
- proxy-контур через
xray-proxy; - стандартный способ локального запуска;
- deploy-конфигурация.
Что здесь живёт
| Файл | Назначение |
|---|---|
docker-compose.yml | базовая инфраструктура |
docker-compose.apps.yml | локальный контур приложений |
docker-compose.deploy.yml | deploy-контур |
.env.example | основной шаблон env |
Makefile | удобные алиасы для запуска |
xray-local/config.example.json | пример proxy-конфига |
Какие сервисы поднимаются
postgresredisrabbitmqminiominio-initbackend-apiprocessing-workerscraper-servicefrontendxray-proxyпри включённом профилеproxy
Почему этот репозиторий важен
Во многих командах infra воспринимается как вторичный слой, но для NPPWEB это не так.
Именно здесь находятся:
- реальные env-дефолты;
- лимиты источников;
- proxy-поведение;
- зависимости запуска;
- сеть между сервисами;
- healthcheck-политика.
Если что-то “вроде бы работает локально, но не в deploy” — очень часто причина именно здесь.
Базовый запуск
bash
cp .env.example .env
docker compose --env-file .env -f docker-compose.yml -f docker-compose.apps.yml up -d --buildЧто важно помнить
backend-apiсам запускает миграции и seed;minio-initготовит bucket доscraper-service;processing-workerзависит отrabbitmqиbackend-api;scraper-serviceзависит отrabbitmq,minio,minio-init;- при необходимости внешнего маршрута должен быть правильно включён proxy-контур.
Proxy-контур
Если внешние площадки доступны только через proxy, нужно:
- создать
xray-local/config.json; - задать
HTTP_PROXYиHTTPS_PROXY; - указать корректный
NO_PROXY; - в deploy-контуре включить
COMPOSE_PROFILES=proxy.
Отдельно важно: если proxy env задан, а сам профиль proxy не поднят, scraper-service начнёт массово получать таймауты и сетевые ошибки.
Проверка состояния
bash
docker compose --env-file .env -f docker-compose.yml -f docker-compose.apps.yml ps
docker compose --env-file .env -f docker-compose.yml -f docker-compose.apps.yml logs backend-api processing-worker scraper-service frontendГде это чаще всего ломается
Типичные классы проблем:
- не поднялся
xray-proxy, но proxy env уже включён; - сломаны env-дефолты по лимитам сбора;
- неправильно указан
S3_ENDPOINTили bucket; - сервисы ждут друг друга не в том порядке;
- локальный
.envсильно разошёлся с.env.example.
Когда менять именно этот репозиторий
Если нужно:
- добавить новый runtime-service;
- изменить compose-зависимости;
- скорректировать env-дефолты;
- поднять лимиты источников по умолчанию;
- изменить proxy-маршрут;
- настроить deploy-контур;
то почти наверняка начинать нужно с infra.