Налаштування Strapi під ключ: від локалу до продакшену

Налаштування Strapi під ключ: від локалу до продакшену

Розробка та обслуговування будь-яких видів сайтів:

Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 2062 послуг
Налаштування Strapi під ключ: від локалу до продакшену
Простий
~1 день

Наші компетенції:

Часті запитання

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1467
  • Розробка веб-додатків для компанії FEEDME
    Розробка веб-додатків для компанії FEEDME
    1317
  • Розробка веб-сайту для компанії БЕЛФІНГРУП
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1014
  • Розробка інтернет магазину для компанії FURNORO
    Розробка інтернет магазину для компанії FURNORO
    1276
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1019
  • Розробка веб-сайту для компанії ФІКСПЕР
    Розробка веб-сайту для компанії ФІКСПЕР
    1019

Налаштування Strapi під ключ: від локалу до продакшену

При перенесенні Strapi на production часто виникають помилки CORS, неправильна конфігурація бази даних та витік API токенів. Особливо гостро проблема постає, коли фронтенд на Next.js намагається відправити запити до API на іншому домені — браузер блокує CORS, і клієнт бачить порожні сторінки. Типовий проєкт включає від 5 до 10 content types, і кожна помилка може коштувати кількох годин налагодження. Ми вирішуємо ці проблеми системно: налаштовуємо все з урахуванням безпеки та продуктивності. У цій статті — готовий рецепт встановлення та налаштування Strapi під ключ, перевірений на 30+ проєктах. Завдяки нашій методиці ви економите до 40% часу на дебагінгу та до 30% витрат на хостинг за рахунок оптимізації.

Згідно з офіційною документацією Strapi, ця гнучка headless CMS дозволяє швидко створювати API, але налаштування продакшену потребує уваги до безпеки. У типовому проєкті прискорення TTFB після оптимізації сягає 30-40%, а кількість помилок CORS знижується до нуля при правильній конфігурації.

Вимоги до сервера та база даних

Перед початком переконайтеся, що сервер відповідає мінімальним вимогам:

  • Node.js 18 або 20 (LTS)
  • npm 6+ / yarn 1.22+ / pnpm 6+
  • PostgreSQL / MySQL / SQLite
  • 2 ГБ ОЗУ та 20 ГБ SSD для середнього проєкту

Ініціалізуйте проєкт з PostgreSQL однією командою:

npx create-strapi-app@latest my-strapi --dbclient=postgres cd my-strapi npm run develop # later for production: NODE_ENV=production npm run build NODE_ENV=production npm start 

При першому запуску створюється адміністратор. У development-режимі доступний Content-Type Builder для швидкого прототипування.

Як налаштувати CORS та безпеку?

Політика CORS — одна з найчастіших причин помилок при інтеграції Strapi з фронтендом. Якщо не вказати явний origin, браузер блокує запити. У консолі ви побачите Access-Control-Allow-Origin — типова помилка. Налаштування через strapi::cors зі змінною FRONTEND_URL вирішує проблему. Додатково налаштовуємо security-заголовки — це запобігає XSS та впровадженню скриптів.

// config/middlewares.js module.exports = [ 'strapi::logger', 'strapi::errors', { name: 'strapi::security', config: { contentSecurityPolicy: { useDefaults: true, directives: { 'img-src': ["'self'", 'data:', 'blob:', 'res.cloudinary.com'], }, }, }, }, { name: 'strapi::cors', config: { origin: [process.env.FRONTEND_URL] } }, 'strapi::poweredBy', 'strapi::query', 'strapi::body', 'strapi::session', 'strapi::favicon', 'strapi::public', ] 

Конфігурація бази даних та сервера

Об'єднаємо налаштування бази та сервера в один блок:

// config/database.js module.exports = ({ env }) => ({ connection: { client: 'postgres', connection: { connectionString: env('DATABASE_URL'), ssl: env.bool('DATABASE_SSL', false) ? { rejectUnauthorized: false } : false, }, pool: { min: 2, max: 10 }, }, }) // config/server.js module.exports = ({ env }) => ({ host: env('HOST', '0.0.0.0'), port: env.int('PORT', 1337), url: env('PUBLIC_URL', 'http://localhost:1337'), }) 

Порівняння продуктивності: PostgreSQL vs SQLite

Критерій PostgreSQL SQLite
Підтримка конкурентних запитів Так, до сотень з'єднань Обмежена, один писатель
Типи даних Розширені (JSON, масиви) Базові
Продуктивність JOIN-запитів В 2-3 рази швидше Повільніше при великих даних
Рекомендація для продакшену Так Тільки для розробки

PostgreSQL краще за SQLite в 2-3 рази на складних JOIN-запитах, що критично для продакшену з десятками тисяч записів.

Чому важливий правильний пул з'єднань?

Пул з'єднань (min:2, max:10) запобігає вичерпанню підключень до бази при пікових навантаженнях. У production-середовищі з PostgreSQL пул критичний: без нього кожне звернення відкриває нове з'єднання, що збільшує час відгуку до 200-300 мс. Налаштування пулу знижує затримки до 10-20 мс — це в 15-20 разів швидше. Економія ресурсів сервера сягає 40% за рахунок перевикористання з'єднань.

Для додаткового захисту налаштуйте заголовки X-Frame-Options (захист від clickjacking) та X-Content-Type-Options (запобігання MIME-sniffing). Для цього використовуйте middleware strapi::security з відповідними директивами. Також рекомендується увімкнути rate limiting через koa-rate-limit для захисту від бруту.

Управління API токенами та деплой

Створіть токен у панелі адміністратора: Settings → API Tokens → Create new API Token. Виберіть права (Read-only для публічних запитів) та скопіюйте токен — він показується один раз. Додайте змінні оточення в .env фронтенду:

STRAPI_URL=http://localhost:1337 STRAPI_API_TOKEN=your-api-token-here 

Для надійного управління процесом використовуємо PM2:

// ecosystem.config.js module.exports = { apps: [{ name: 'strapi', script: 'npm', args: 'start', env: { NODE_ENV: 'production', DATABASE_URL: 'postgresql://...', APP_KEYS: '...', API_TOKEN_SALT: '...', JWT_SECRET: '...', }, }], } 

Порівняння способів деплою:

Метод Управління процесами Масштабування Складність
PM2 Просте, авторестарт Кластеризація Низька
Docker Контейнеризація Оркестрація Середня
Heroku Платформа Автомасштабування Низька

PM2 простіше в управлінні, ніж Docker, завдяки вбудованому авторестарту та кластеризації — для типових проєктів це найкращий вибір за співвідношенням швидкість/надійність.

Як оптимізувати TTFB?

Основні фактори: використання пулу з'єднань (вже розглянули), кешування запитів за допомогою Redis або Varnish, увімкнення HTTP/2 на сервері. У Strapi можна підключити плагін @strapi/plugin-redis для кешування відповідей. Це знижує TTFB на 30-40% без зміни коду.

Типові помилки при переході на production

  • Забувають вказати PUBLIC_URL — посилання в адмінці ламаються.
  • Не налаштовують SSL для бази — з'єднання відхиляється.
  • Залишають development-ключі — витік даних.
  • Не обмежують CORS — доступ з будь-яких доменів.
  • Не задають ADMIN_JWT_SECRET — ризик підробки сесій.

Що входить у налаштування Strapi під ключ

  • Ініціалізація проєкту та підключення PostgreSQL
  • Конфігурація CORS, Security, SSL
  • Створення API токена та налаштування .env
  • Деплой з PM2 та моніторинг
  • Документація по endpoints
  • Підтримка після запуску (до місяця)

На всі роботи надаємо гарантію 30 днів — виправимо будь-які несправності безкоштовно.

Процес роботи та строки

  1. Аналіз вимог та вибір хостингу
  2. Встановлення та конфігурація Strapi
  3. Налаштування бази даних та middleware
  4. Створення API токенів та інтеграція з фронтендом
  5. Деплой у продакшен та моніторинг

Базова установка з PostgreSQL, налаштуванням CORS та першим content type займає від 2 до 4 годин. Повне налаштування під продакшен — від 1 дня. Вартість базової конфігурації — від 200$, повна — від 500$. Економія на хостингу завдяки оптимізації досягає 30% щомісяця. Зв'яжіться з нами для детального обговорення. Замовте налаштування Strapi під ключ — наші сертифіковані інженери з 5-річним досвідом допоможуть розібратися з конфігурацією.