Підготовка 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 години.







