Установка та налаштування Directus для продакшену з Docker

Уявіть: ви розгорнули Directus через npx, швидко отримали адмінку, а через місяць при зростанні трафіку сайт ліг через відсутність кешу — і медіафайли загубилися при збої диска. Саме такі ситуації підштовхують до продакшен-деплою з Docker, PostgreSQL та S3. У цій статті — перевірений шаблон налаштув

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

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

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

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

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

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

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

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

Уявіть: ви розгорнули Directus через npx, швидко отримали адмінку, а через місяць при зростанні трафіку сайт ліг через відсутність кешу — і медіафайли загубилися при збої диска. Саме такі ситуації підштовхують до продакшен-деплою з Docker, PostgreSQL та S3. У цій статті — перевірений шаблон налаштування, який ми застосовуємо в багатьох проєктах, від корпоративних порталів до high-load API. Directus — headless CMS, яка надає REST та GraphQL API на льоту, без генерації. За тестами, швидкість відповіді API у 2–3 рази вища, ніж у Strapi, завдяки відсутності ORM-прошарків. Для продакшену ми завжди використовуємо Docker — це гарантує ізоляцію, відтворюваність і простоту масштабування.

Чому варто обрати Directus для продакшену?

Directus — не чергова CMS. Це headless-платформа, яка надає REST та GraphQL API на льоту, без генерації. Ви інтегруєте її в будь-яку існуючу базу — не потрібно мігрувати дані. Згідно з відгуками, швидкість розробки зростає вдвічі порівняно з традиційними CMS. Нещодавно ми розгортали Directus для великого інтернет-магазину з каталогом 50 000 товарів. Після міграції з WordPress на Directus час завантаження сторінки каталогу скоротився з 3 секунд до 400 мс завдяки використанню Redis-кешу та SSR на Nuxt 3. Це реальний приклад: швидкість API зросла втричі, а вартість інфраструктури знизилася через відмову від моноліту. Отримайте консультацію інженера з вибору headless CMS для вашого проєкту.

Як розгорнути Directus у продакшені з Docker?

Процес включає п'ять обов'язкових етапів:

  1. Аудит завдань — визначаємо навантаження, обсяг контенту, вимоги до API.
  2. Вибір стеку — Docker + PostgreSQL + S3 (або Cloudflare R2 для дешевого зберігання).
  3. Розгортання — пишемо docker-compose.yml, налаштовуємо Redis для кешування, підключаємо CDN.
  4. Конфігурація середовища — змінні SECRET, CORS, email, storage.
  5. Передача під ключ — документація, доступи, навчання команди.

Швидкий старт: через npx

npx create-directus-project@latest my-directus # Питання: # Database: PostgreSQL # Host: localhost # Port: 5432 # Database name: directus # Username: directus # Password: ... # Admin email: [email protected] # Admin password: ... cd my-directus npx directus start 

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

Docker-деплой (рекомендується)

Приклад готового docker-compose.yml:

version: '3' services: directus: image: directus/directus:10.latest restart: unless-stopped ports: - "8055:8055" volumes: - ./uploads:/directus/uploads - ./extensions:/directus/extensions environment: SECRET: ${SECRET} DB_CLIENT: pg DB_HOST: postgres DB_PORT: 5432 DB_DATABASE: ${DB_NAME} DB_USER: ${DB_USER} DB_PASSWORD: ${DB_PASSWORD} ADMIN_EMAIL: ${ADMIN_EMAIL} ADMIN_PASSWORD: ${ADMIN_PASSWORD} PUBLIC_URL: https://cms.example.com CORS_ENABLED: true CORS_ORIGIN: https://example.com CACHE_ENABLED: true CACHE_STORE: redis REDIS_HOST: redis REDIS_PORT: 6379 STORAGE_LOCATIONS: local STORAGE_LOCAL_DRIVER: local STORAGE_LOCAL_ROOT: /directus/uploads depends_on: postgres: condition: service_healthy postgres: image: postgres:15-alpine restart: unless-stopped environment: POSTGRES_DB: ${DB_NAME} POSTGRES_USER: ${DB_USER} POSTGRES_PASSWORD: ${DB_PASSWORD} volumes: - postgres_data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U ${DB_USER}"] interval: 10s redis: image: redis:alpine restart: unless-stopped volumes: postgres_data: 

Як налаштувати сховище та кеш?

Сховище S3

Для продакшену обов'язково використовувати зовнішнє сховище. Приклад змінних:

STORAGE_LOCATIONS=s3 STORAGE_S3_DRIVER=s3 STORAGE_S3_KEY=ACCESS_KEY STORAGE_S3_SECRET=SECRET_KEY STORAGE_S3_BUCKET=my-bucket STORAGE_S3_REGION=eu-west-1 STORAGE_S3_ENDPOINT=https://s3.amazonaws.com # Для Cloudflare R2: # STORAGE_S3_ENDPOINT=https://<account-id>.r2.cloudflarestorage.com # STORAGE_S3_REGION=auto 

Порівняння сховищ:

Сховище Ціна (за 1 ТБ/міс) Продуктивність Георозподіл
S3 ~$23 Висока Так
Cloudflare R2 ~$0 (без трафіку) Висока Так
Локальний диск безкоштовно Низька Ні

Замовте індивідуальне налаштування сховища — ми підберемо оптимальний варіант для вашого проєкту.

Кешування з Redis

Redis обов'язковий для продакшену: кеш знижує навантаження на БД на 60–80%. Налаштування вже включено в docker-compose.yml. Додатково можна задати CACHE_TTL (за замовчуванням 5 хвилин). Для підвищення продуктивності використовуйте Redis Cluster при високих навантаженнях. Для кластера потрібно налаштувати кілька вузлів — це дає горизонтальне масштабування та відмовостійкість.

Параметр Значення Опис
CACHE_TTL 300 Час життя кешу в секундах
CACHE_STORE redis Тип сховища
REDIS_HOST redis Хост Redis

Які проблеми вирішує Directus?

Directus вирішує проблему зв'язування бекенду з фронтендом, надаючи гнучке API. Він особливо корисний, коли потрібно швидко вивести продукт з кастомною структурою даних. Наприклад, для маркетплейсу з різними типами товарів не потрібно писати окремі контролери — Directus генерує ендпоінти автоматично.

Типові помилки при встановленні Directus

  • Використання npm без Docker — проблеми з масштабуванням і оновленнями.
  • Пропуск налаштування CORS — помилки CORS на фронтенді.
  • Зберігання медіа в локальній файловій системі — втрата даних при збої.
  • Відсутність кешу — повільна відповідь API при 100+ запитах на секунду.
  • Неправильна генерація SECRET — вразливість до CSRF-атак.
  • Відсутність моніторингу — проблеми з продуктивністю залишаються непоміченими.

Що входить у роботу з налаштування Directus?

У рамках послуги ви отримуєте:

  • Повністю налаштований продакшен-стек: Docker, PostgreSQL, Redis, S3.
  • Конфігурацію з урахуванням вашого навантаження (балансування, CDN).
  • Документацію з розгортання та обслуговування.
  • Доступи до адмін-панелі, API-токени.
  • Навчання команди (2 години онлайн).
  • Підтримку 2 тижні після запуску.

Цей набір покриває 90% типових проєктів. Для нетипових — індивідуальний аудит.

Строки та вартість

Базова установка з Docker, PostgreSQL, S3 та базовою конфігурацією займає від 2 до 4 годин. Складні проєкти (кастомні розширення, SSO, міграція даних) — від 1 до 5 днів. Вартість розраховується індивідуально після аудиту. Отримайте консультацію інженера — оцінимо проєкт за 1 день. Зв'яжіться з нами для обговорення деталей.