Directus — headless CMS и «data platform» с открытым исходным кодом, работающая поверх любой существующей SQL-базы данных. Ключевое отличие от Strapi и других headless CMS: Directus не создаёт собственную схему хранения — он читает структуру ваших таблиц и превращает их в REST/GraphQL API. Это позволяет подключить Directus к legacy-базе данных без миграции данных.
Как работает Directus
Directus подключается к PostgreSQL, MySQL, MariaDB, SQLite, MS SQL или Oracle. Читает схему и автоматически создаёт REST и GraphQL эндпоинты для каждой таблицы: GET /items/articles, POST /items/articles. Веб-приложение Data Studio — визуальный интерфейс для управления контентом, пользователями и правами (RBAC).
Flows (Automation) — встроенная система автоматизации: триггеры на события, HTTP-запросы, условия, интеграции с внешними API. Аналог Zapier, но self-hosted.
История
Первая версия Directus создана Бенджамином Крозье (Ben Croiser) в 2004 году как PHP-интерфейс к MySQL для конкретного проекта. В 2016 году Directus опубликован с открытым кодом. Directus 8 (2018–2020) — Angular-фронтенд, REST API. Directus 9 (2021) — полная переработка на Vue 3, Node.js, TypeScript — переход от CMS к «data platform». Directus 10/11 (2022–2024) — Flows, Real-time Subscriptions, Marketplace расширений.
Directus vs Strapi vs Contentful
| Параметр | Directus | Strapi | Contentful |
|---|---|---|---|
| Существующая БД | Да (любая SQL) | Нет (своя схема) | Нет (SaaS) |
| Self-hosted | Да (MIT) | Да (MIT) | Нет |
| GraphQL | Встроен | Плагин | Встроен |
| Real-time | WebSocket subscriptions | Нет | Нет |
Хостинг Directus
Directus — Node.js-приложение. Деплой на VPS: минимум 1 ГБ RAM, Node.js 18+, PostgreSQL или MySQL. Официальный Docker-образ: directus/directus. Переменные окружения (.env) конфигурируют подключение к БД, S3 для загрузок, SMTP для писем. Directus Cloud — управляемый хостинг от разработчиков (от $15/мес). Nginx как reverse proxy перед портом 8055.
На что обращать внимание
Directus мощен для команд, уже работающих с существующей БД и желающих добавить CMS-интерфейс без рефакторинга схемы. Для нового проекта с нуля Strapi или Payload CMS дают более стандартизированный подход. Real-time Subscriptions (WebSocket) в Directus требует Redis для pub/sub при горизонтальном масштабировании. Хранилище загружаемых файлов — локальная файловая система, Amazon S3, Cloudflare R2 или любое S3-совместимое хранилище.
История Directus
Directus создан Беном Хейворстом (Ben Hayward) в 2004 году как клиентский проект для управления базами данных через веб-интерфейс. Версия 1.0 выпущена как Open Source в 2013 году. Directus 8 (2018) стал полным переписыванием на Vue.js и Node.js. Directus 9 (2021) — переход на полностью headless архитектуру, REST + GraphQL + WebSocket, MIT-лицензия. Компания Directus Inc. (США) монетизирует через Directus Cloud — managed-хостинг, и поддержку enterprise-клиентов. GitHub — более 25 000 звёзд к 2024 году.
Развёртывание Directus на VPS
Directus запускается через Docker или npm. Минимальные требования: Node.js 18+, PostgreSQL 10+/MySQL 5.7+, 512 МБ RAM. Типичный docker-compose включает контейнеры Directus, PostgreSQL и (для real-time) Redis. Переменные окружения задают подключение к БД, секрет JWT, настройки email и хранилища файлов. Панель администратора доступна по /admin. REST API — по /items/, GraphQL — по /graphql. Для production обязательно: Nginx reverse proxy с SSL, ограничение rate limit.
Directus vs Strapi vs Payload CMS
| Параметр | Directus | Strapi | Payload CMS |
|---|---|---|---|
| Существующая БД | Да (читает схему) | Нет (своя схема) | Нет (своя схема) |
| СУБД | PostgreSQL, MySQL, SQLite, MS SQL | PostgreSQL, MySQL, SQLite | MongoDB, PostgreSQL |
| TypeScript | Частичная поддержка | Нет (TS-плагин) | Полная TypeScript |
| Лицензия | MIT | MIT (core) / Корпоративная | MIT |