Установка и настройка Directus под продакшен с Docker

Представьте: вы развернули Directus через npx, быстро получили админку, а через месяц при росте трафика сайт лёг из-за отсутствия кэша — и медиафайлы потерялись при сбое диска. Именно такие ситуации подталкивают к продакшен-деплою с Docker, PostgreSQL и S3. В этой статье — проверенный шаблон настрой

Разработка и обслуживание любых видов сайтов:

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

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

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

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

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1414
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1285
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    982
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1241
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    982
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    994

Представьте: вы развернули Directus через npx, быстро получили админку, а через месяц при росте трафика сайт лёг из-за отсутствия кэша — и медиафайлы потерялись при сбое диска. Именно такие ситуации подталкивают к продакшен-деплою с Docker, PostgreSQL и S3. В этой статье — проверенный шаблон настройки, который мы применяем в множестве проектов, от корпоративных порталов до high-load API. Directus — headless CMS, которая даёт REST и GraphQL API на лету, без генерации. По тестам, скорость отклика API в 2–3 раза выше, чем у Strapi, благодаря отсутствию ORM-прослоек. Для production мы всегда используем Docker — это гарантирует изоляцию, воспроизводимость и простоту масштабирования.

Почему Directus стоит выбрать для продакшена?

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

Как развернуть Directus в production с 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 обязателен для production: кэш снижает нагрузку на БД на 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 день. Свяжитесь с нами для обсуждения деталей.