Стек технологий
Frontend
| Технология | Версия | Назначение |
|---|---|---|
| Next.js | 15 (App Router) | Основной фреймворк, Server Components, Server Actions |
| React | 18 | UI-рендеринг |
| TypeScript | Latest | Строгая типизация |
| AI SDK | 5.0 | Единый API для LLM-интеграции и streaming |
| Zustand | Latest | Клиентский state management |
| TanStack Query | v5+ | Server state management, кэширование |
| Tailwind CSS | Latest | Утилитарная стилизация |
| shadcn/ui | Latest | Доступные UI-компоненты |
| Radix UI | Latest | Примитивы для dropdown, modal, tabs |
| Framer Motion | Latest | Анимации |
| NextAuth.js | v5 | Аутентификация и сессии |
| Playwright | 1.57+ | E2E тестирование |
| Storybook | Latest | Документирование компонентов (@coral/ui) |
| pnpm | 10.10+ | Пакетный менеджер, monorepo workspace |
| Lerna | Latest | Версионирование monorepo (@coral) |
Backend
| Технология | Версия | Назначение |
|---|---|---|
| Python | 3.13 / 3.14 | Основной язык всех backend-сервисов. Sprut — 3.14, остальные — 3.13 |
| FastAPI | Latest | Web-фреймворк (REST API) для всех микросервисов |
| uvicorn | Latest | ASGI-сервер |
| SQLAlchemy | 2.0+ | Async ORM для работы с PostgreSQL |
| Alembic | 1.11+ | Управление миграциями БД |
| Pydantic | v2+ | Валидация данных и настроек |
| asyncio | stdlib | Асинхронная обработка |
| uv | Latest | Modern Python package manager |
AI / ML
| Технология | Версия | Назначение |
|---|---|---|
| LangGraph | Latest | Мультиагентная оркестрация в Amigofish: coordinator, rag_agent, web_agent, document_agent, analyst, synthesis — граф с условной маршрутизацией, fan-out и циклами |
| LlamaIndex | Latest | Индексирование документов (в Anglerfish) |
OpenAI gpt-5.2 | — | Основная LLM-модель для inference (идентификатор модели на момент сбора данных, нестандартное публичное название; hard-coded в OpenAI.__init__ и Sentry set_data). Контекстное окно: 400K токенов, пороги: 0.7 (stop adding), 0.8 (critical) |
| text-embedding-3-small | Latest | Модель эмбеддингов для RAG (Milvus hybrid search: dense + BM25 sparse, RRFRanker(60), top_k=8) |
| PyTorch | Latest | Inference ML-моделей (Sealayers — классификатор запросов) |
| Marker API | Latest | Извлечение текста из PDF с ИИ |
| Tavily API | Latest | Web-поиск с проверкой источников (search_depth="advanced") |
| Wolfram Alpha API | Latest | Точные математические вычисления |
Базы данных и хранилища
| Технология | Версия | Порт | Назначение |
|---|---|---|---|
| PostgreSQL | 17 | 5432 | Основная OLTP БД: пользователи, чаты, транзакции, документы |
| Milvus | 2.5.14 | 19530 | Векторная БД с гибридным поиском (BM25 + dense + RRF) |
| Redis | 8.2.1 | 6379 | Application cache (aiocache), cooperative cancellation |
| MinIO | Latest | 9000 | S3-совместимое объектное хранилище файлов |
| etcd | 3.5.18 | — | Distributed config (для Milvus) |
| NATS JetStream | 2.11.8 | 4222 | Message broker с persistent streams, task queue + AI-стриминг |
| Yandex Object Storage | — | — | Хранение пользовательских файлов |
Messaging
| Технология | Назначение |
|---|---|
| NATS JetStream | Асинхронное взаимодействие между сервисами, task queue, AI-стриминг |
| orker (собственная) | Python async worker framework поверх NATS: retry, durable consumers, DB integration |
Infrastructure
| Технология | Версия | Назначение |
|---|---|---|
| Kubernetes | — | Оркестрация контейнеров (Selectel MKS) |
| ArgoCD | 8.3.0 | GitOps CD — мониторит devops/environments, автосинк |
| Helm 3 | — | Package manager для K8s, чарты для каждого сервиса |
| Docker | — | Контейнеризация с multi-stage builds |
| Docker BuildKit | — | Параллельная сборка образов, кэширование |
| HashiCorp Vault | — | Хранение секретов, K8s-интеграция через External Secrets |
| Ansible | — | Управление конфигурацией (20+ ролей: PostgreSQL, NATS, Redis, Milvus, MinIO, MLflow) |
| Terraform | — | IaC для облака (Selectel MKS) |
| Let's Encrypt + Cert Manager | — | Автоматизация SSL/TLS |
| BIND | — | Внутренний DNS с RPZ |
CI/CD
| Технология | Назначение |
|---|---|
| GitLab CI | Основная CI/CD система, shared workflow templates |
| SAST | Статический анализ безопасности (GitLab native) |
| Sentry | Error tracking, sourcemaps, release management |
| Nexus | Приватный registry для npm (@coral) и PyPI |
| cr.selcloud.ru | Docker container registry (Selectel) — образы production-сервисов |
| cr.monsterscorp.ru:5000 | Внутренний Docker registry — базовые образы (python, pythongpu, node и т.д.), используется в Dockerfile-ах сервисов (в т.ч. Stonefish) |
| Allure TestOps | Test reporting (Diver) |
Базовые Docker-образы
Репозиторий dot.mind/devops/images собирает и публикует базовые образы в cr.monsterscorp.ru:5000. README пуст; информация получена из images-tree.md и images-ci.md.
| Образ | Dockerfile | Назначение |
|---|---|---|
python | docker/base/Dockerfile_python | Python-сервисы (Python 3.x) |
python3.13 | docker/base/Dockerfile_python_3.13 | Python 3.13 |
pythongpu | docker/base/Dockerfile_pythongpu | Python с GPU-поддержкой (ML-сервисы) |
node | docker/base/Dockerfile_node | Node.js для фронтенд-сервисов |
node22-nextjs | docker/base/Dockerfile_node22_nextjs | Node.js 22 + Next.js (Seadragon) |
docker | docker/infra/Dockerfile_docker | Docker CLI |
dind | docker/infra/Dockerfile_dind | Docker-in-Docker (CI) |
buildkit | docker/infra/Dockerfile_buildkit | BuildKit builder (CI) |
runner | docker/infra/Dockerfile_runner | GitLab Runner |
helm | docker/infra/Dockerfile_helm | Helm 3 |
kubectl | docker/infra/Dockerfile_kubectl | kubectl |
nats | docker/infra/Dockerfile_nats | NATS |
postgres | docker/infra/Dockerfile_postgres | PostgreSQL |
ubuntu | docker/infra/Dockerfile_ubuntu | Ubuntu base |
sentry | docker/infra/Dockerfile_sentry | Sentry CLI |
pythontest | docker/infra/Dockerfile_pythontest | Python + test tools |
Сборка образов через Docker BuildKit (max-parallelism=8) с registry-кэшированием (cache-from/cache-to). Триггер: коммит тега или изменение Dockerfile.
Мониторинг
| Технология | Назначение |
|---|---|
| Sentry | Error tracking и crash reporting для всех сервисов (FE + BE) |
| Grafana | Внутренние дашборды (включая дашборды для маркетологов) |
| VictoriaMetrics | Time-series метрики |
| VictoriaLogs | Долгосрочное хранилище логов |
| Fluent Bit | Log collection на edge |
| Yandex Metrica | Веб-аналитика, интегрирована во фронтенд |
Package Managers
| Менеджер | Язык | Назначение |
|---|---|---|
| uv | Python | Modern Python package manager (замена pip/poetry) |
| pnpm | TypeScript | Node.js package manager, monorepo workspace |
Code Quality
| Инструмент | Назначение |
|---|---|
| black | Python code formatting |
| isort | Python import sorting |
| mypy | Python static type checking |
| flake8 | Python linting |
| ruff | Fast Python linter |
| Biome | JavaScript/TypeScript formatting и linting |
| pytest | Python unit/integration тестирование |
| Playwright | E2E browser тестирование |
| Artillery + Playwright | Нагрузочное тестирование — репозиторий Tsunami (dot.mind/dev/tsunami). Конфигурируется через artillery.yml (параметры arrivalCount, duration); результаты публикуются через Artillery Cloud или генерируются как HTML-отчёт |
Внешние интеграции
| Сервис | Назначение |
|---|---|
| Keycloak | SSO-аутентификация (OIDC) |
| Tinkoff Payment | Обработка платежей (карты, SBP) |
| Yandex Object Storage | Хранение пользовательских файлов |
| Yandex API | Интеграция Yandex Диск (импорт файлов) |
| Unisender | Email-маркетинг и уведомления |
| Bitrix24 | CRM-интеграция |
| Stonefish | Генерация бинарных документов (PDF, DOCX, XLSX, PPTX). FastAPI-сервис, вызывается из document_agent через HTTP (таймаут 900 сек). Использует Claude API (services/claude.py). Helm chart: tools/charts/stonefish/. Базовый образ: cr.monsterscorp.ru:5000/python:latest |
| Selectel | Облачная инфраструктура (MKS, CR, SSD storage) |
| MLflow | ML experiment tracking |