Подготовка Vendure к production: установка, настройка и деплой
Мы — команда с 8-летним опытом в Node.js и 20+ запущенными e-commerce проектами. Один из клиентов пришёл с MVP на Express: при нагрузке 200 RPS GraphQL-запрос падает с 501. Таблицы не индексированы, N+1 запросы по каскаду. Нужен production-букварь: правильная установка Vendure с нуля, который выдержит 10 000 заказов в день без тормозов. Наш подход гарантирует стабильность и нулевой downtime при деплое. Заказав у нас установку, вы получаете магазин на NestJS, готовый к высоким нагрузкам.
Ключевые проблемы, которые мы решаем
Первая типичная проблема — hydration mismatch при SSR магазина на Next.js из-за неправильного кэширования. Vendure использует Apollo Client, но без Redis кэш слетает при первом рендере. Вторая — N+1 запросы в GraphQL: если не настроить DataLoader и индексы в TypeORM, каждая выборка коллекции товаров порождает 50+ запросов к БД. Третья — миграции вручную: при отсутствии TypeORM CLI и CI/CD команды забывают накатить миграции, и продакшен падает после деплоя. Мы решаем эти проблемы на этапе проектирования.
Как мы настраиваем Vendure под ключ?
Развёрнутый кейс: интернет-магазин косметики (20 000 SKU). Требовалось: интеграция с четырьмя платёжными шлюзами, доставка через Boxberry и собственная корзина с кастомными полями. Выбрали ручную установку в монорепозиторий. Стек: Node.js 20 LTS, PostgreSQL 14, Redis 7, Docker Compose + Nginx.
Конфигурация TypeORM:
// src/vendure-config.ts export const config: VendureConfig = { apiConfig: { hostname: '0.0.0.0', port: 3000, adminApiPath: 'admin-api', shopApiPath: 'shop-api', }, dbConnectionOptions: { type: 'postgres', synchronize: false, logging: process.env.APP_ENV === 'development', entities: [ Customer, Order, Product, ProductVariant, // ... custom entities ], }, paymentOptions: { paymentMethods: [ StripePaymentMethod.init(), MolliePaymentMethod.init(), ], }, }; Вместо стандартного CLI-генератора пришлось создать свой плагин для синхронизации товаров из 1С по CommerceML. Результат — скорость загрузки каталога выросла на 60% по сравнению с прежним решением на WooCommerce. За счёт такой кастомизации вы экономите на инфраструктуре и получаете магазин на NestJS, полностью под ваши задачи. Закажите подобное решение для вашего бизнеса.
Процесс работы
- Аналитика — аудит текущего API и БД, выявление узких мест (N+1, отсутствие индексов).
- Проектирование — схема GraphQL, плагины для платёжек и доставки, architecture decision record.
- Реализация — написание конфигов и кастомных модулей (NestJS + TypeORM).
- Тестирование — нагрузочное тестирование с k6 до 5000 RPS, проверка Core Web Vitals (LCP < 2.5 с).
- Деплой — CI/CD через Docker Compose, бекапы, мониторинг.
| Этап | Длительность | Что входит |
|---|---|---|
| Аналитика | 1–2 дня | Аудит кода, профилирование, нагрузочные тесты |
| Проектирование | 1–2 дня | Выбор плагинов, схема данных, ADR |
| Разработка | 3–5 дней | Конфиги, миграции, custom resolver, плагины |
| Тестирование | 1–2 дня | E2E на Cypress, unit-тесты, интеграционное тестирование |
| Деплой | 1 день | Docker + CI/CD (GitHub Actions), мониторинг |
Что входит в работу?
- Настройка Vendure с нуля или миграция с другого e-commerce.
- Полная документация по архитектуре и эндпоинтам.
- Доступы к admin UI и логам.
- Обучение команды (2 сессии по 2 часа).
- Гарантия стабильной работы и поддержка 2 недели после деплоя.
Почему установка руками лучше CLI?
CLI-генератор @vendure/create подходит для прототипов, но для продакшена он навязывает лишние плагины и структуру. Ручная установка даёт полный контроль над версиями и конфигурацией. Наши клиенты экономят до 15% затрат на инфраструктуре за счёт кастомизации. Получите консультацию по вашему проекту.
Как гарантируется стабильность после деплоя?
Мы настраиваем мониторинг (Prometheus + Grafana), регулярные бекапы и health checks. В случае сбоя — автоматический перезапуск через Docker Compose. Все изменения проходят CI/CD с тестами и ручным код-ревью. Гарантия распространяется на 2 недели после деплоя.
Чек-лист после установки (проверяем каждый пункт)
| Критерий | Описание |
|---|---|
| БД и миграции | Создана БД, накачены миграции, synchronize = false |
| Admin UI | Доступен по /admin, работает CRUD для товаров |
| Shop API | Ответ на /shop-api существует в виде GraphQL схемы |
| Assets | Директория существует и доступна для записи |
| SMTP | Проверена отправка письма при создании заказа |
| Worker | Job queue работает, Redis подключён |
| SSL | Nginx настроен на HTTPS, HSTS включён |
Установка занимает от 1 до 3 дней в зависимости от сложности интеграций. Стоимость рассчитывается индивидуально — свяжитесь с нами, и мы оценим ваш проект за 24 часа.







