Docker Compose инфраструктура для локального запуска и production deploy проекта NPPWEB.
postgresredisrabbitmqminiominio-initbackend-apiprocessing-workerscraper-servicexray-proxy(если настроен локальный proxy-конфиг)frontend
Все сервисы работают в сети platform-net и обращаются друг к другу по service name.
Быстрый вариант через общий стек:
cp .env.example .env
docker compose --env-file .env -f docker-compose.yml -f docker-compose.apps.yml up -d --buildАльтернатива:
make upЕсли для государственных площадок нужен proxy-маршрут, создайте локальный файл:
cp xray-local/config.example.json xray-local/config.jsonи заполните его приватными параметрами. Этот файл не коммитится.
Для deploy-контура логика такая же: на сервере должен существовать файл xray-local/config.json. Чтобы compose поднял xray-proxy автоматически, добавьте в deploy .env значение COMPOSE_PROFILES=proxy и задайте HTTP_PROXY/HTTPS_PROXY=http://xray-proxy:8080.
Если в deploy .env указаны HTTP_PROXY/HTTPS_PROXY, но не задан COMPOSE_PROFILES=proxy, сервис xray-proxy не будет создан, и scraper-service начнёт массово получать fetch failed/connect timeout на внешних государственных площадках.
- frontend:
http://localhost:8080 - GraphQL backend:
http://localhost:3000/graphql - backend health:
http://localhost:3000/api/health - RabbitMQ management:
http://localhost:15672 - MinIO console:
http://localhost:9001
После старта backend-api автоматически прогоняет миграции и seed.
admin@admin.ru / 12345678analyst@admin.ru / 12345678user@admin.ru / 12345678
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Ожидаемо:
postgres,rabbitmq,minio,backend-api,frontendимеют статусhealthyminio-initзавершился со статусомExited (0)processing-workerиscraper-serviceнаходятся вUp
Проверки вручную:
curl http://localhost:3000/api/health
curl http://localhost:3000/api/health/ready
curl -I http://localhost:8080Поднять весь стек:
docker compose --env-file .env -f docker-compose.yml -f docker-compose.apps.yml up -d --buildПересобрать только frontend:
docker compose --env-file .env -f docker-compose.yml -f docker-compose.apps.yml up -d --build frontendОстановить стек и удалить volumes:
docker compose --env-file .env -f docker-compose.yml -f docker-compose.apps.yml down -v --remove-orphansСмотреть логи:
docker compose --env-file .env -f docker-compose.yml -f docker-compose.apps.yml logs -fpostgres,rabbitmq,minio,backend-apiимеют healthcheck'иminio-initсоздаёт bucket до стартаscraper-servicebackend-apiждёт Postgres и запускает migrations/seed перед стартомprocessing-workerждётrabbitmqиbackend-apiscraper-serviceждётrabbitmq,minioиminio-initscraper-serviceможет идти наружу черезxray-proxy, если в.envзаданыHTTP_PROXY/HTTPS_PROXY
В репозитории оставлен только CI workflow. Автоматический deploy и связанные с ним GitHub Actions удалены.