Skip to content

Инфраструктура решения ​

Организация кода ​

Код организован как монорепозиторий на базе pnpm workspaces. Внутренние пакеты переиспользуются напрямую, без публикации и версионирования. Зависимости хранятся в общем хранилище pnpm, поэтому не дублируются на диске.

Воркспейсы:

  • packages/types, packages/contracts, packages/assessment-engine
  • apps/web, apps/api, apps/mock
  • apps/ranking в pnpm-workspace не входит

Сервисы и развертывание ​

Благодаря используемой нами контейнеризации, все сервисы запускаются через Docker Compose, и решение разворачивается одной командой на сервере (https://hire.eegov.net):

bash
docker compose --env-file infra/dev/.env -f infra/dev/docker-compose.yml up -d

Заполните .env (для примера локально есть infra/dev/.env.example).

СервисНазначениеПорт
postgresДанные кабинета5432
redisСессии, попытка теста, кэш ФСП6379
mailpitПисьма в dev: SMTP и ящик1025 / 8025
rankingРанжирование, POST /rank8000
mockРеестр ФСП3001

Веб-сервер ​

Используем Caddy: минимальный конфиг (Caddyfile) и автоматическая выдача и продление SSL-сертификатов. Достаточно указать домен. Caddy отдаёт SPA, /api проксирует на api:3000, $FSP_DOMAIN целиком на mock:3001.

Стенд · GitHub