Directus как контентный хаб: единая база для мультисайта и ИИ-агентов
Контент в пяти разных системах — это не масштаб, а техдолг. Когда тексты, медиа и метаданные живут в разных CMS, базах и даже Google-таблицах, каждый новый сайт или канал превращается в ручную миграцию. Автор этого материала столкнулся ровно с такой ситуацией и в апреле поставил себе Directus в роли единого контентного хаба. За несколько месяцев система вышла на версию 12, и появилось достаточно новых возможностей, чтобы пересмотреть подход к организации контента для мультисайтовых проектов. Разберём, что изменилось, как это работает на практике и когда стоит попробовать.
Что такое Directus и почему он стал контентным хабом
Directus — это headless CMS с открытым исходным кодом, которая берёт любую реляционную базу данных и превращает её в API-платформу с админкой. В отличие от классических CMS вроде WordPress, здесь нет привязки к конкретному фронтенду: контент хранится в базе, а отдаётся через REST или GraphQL куда угодно — на сайт, в мобильное приложение, в Telegram-бот или ИИ-агенту.
Автор использует Directus как единый контентный хаб: одна база, к которой подключаются несколько сайтов, ИИ-агенты и сам автор для управления материалами. Идея простая — перестать держать контент в пяти местах и начать работать с одним источником правды.
Ключевые характеристики Directus:
| Параметр | Значение |
|---|---|
| Тип | Headless CMS, open source |
| Лицензия | BSD 3-Clause |
| Базы данных | PostgreSQL, MySQL, SQLite, MS SQL, Oracle, CockroachDB |
| API | REST + GraphQL |
| Админка | SPA на Vue.js, доступна из коробки |
| Деплой | Docker, облако, собственный VPS |
| Авторизация | Ролевая модель, OAuth 2.0, SSO |
Что нового в Directus 12: черновики, переводы и OAuth для агентов
Версия 12 принесла несколько изменений, которые сместили фокус с разработчиков на команду в целом. Вот что автор выделяет как наиболее значимое.
Черновики и публикация из коробки. Раньше для организации workflow с черновиками и ревью приходилось городить кастомную логику. Теперь статусы публикации — черновик, на ревью, опубликовано — встроены в систему. Это особенно полезно, когда в контент-процессе участвуют не только разработчики, но и редакторы, маркетологи или внешние авторы.
Перевод контента силами ИИ. Directus 12 добавил интеграцию с ИИ-переводчиками. Для мультисайтовых проектов с контентом на нескольких языках это означает, что перевод можно запускать прямо из админки, не выгружая данные в сторонние сервисы.
Фильтры по JSON в API. Для команд, которые работают через API, появилась возможность фильтровать данные по JSON-полям. Это расширяет гибкость запросов без необходимости менять структуру базы.
OAuth для ИИ-агентов. Автор называет это самым важным изменением для своего сценария. Раньше агенты подключались через статические токены — вечные, непривязанные к конкретному пользователю. Теперь агент работает через OAuth от имени конкретного пользователя и с его правами. Это решает сразу две проблемы: безопасность (токен можно отозвать) и аудит (видно, кто именно внёс изменение).
Directus vs Strapi vs Sanity: когда что выбрать
Выбор headless CMS зависит от того, кто будет работать с системой и какие ограничения у проекта. Автор сравнивает три популярных варианта.
Directus подходит, когда нужен полный контроль над данными и инфраструктурой. Система работает поверх существующей базы данных, не навязывает свою структуру. Хорошо масштабируется для мультисайтовых проектов, где контент нужно раздавать в несколько точек. Минус — требует самостоятельного хостинга и минимального понимания серверной инфраструктуры.
Strapi — более дружелюбен к разработчикам, которые хотят быстро собрать API. Админка проще в настройке, но при масштабировании на несколько сайтов могут возникнуть сложности с организацией ролей и прав. Лицензия двойная: ядро open source, но часть функций — проприетарная.
Sanity — облачное решение с мощным редактором контента (Portable Text). Удобен для редакционных команд, но зависит от облачного провайдера и может быть дороже при большом объёме данных. Менше подходит для сценариев, где нужен полный контроль над инфраструктурой.
Если проект предполагает несколько сайтов, подключение ИИ-агентов и работу с собственной базой данных, Directus выглядит наиболее логичным выбором.
Как раздать доступы людям и агентам
Одна из ключевых задач при развёртывании контентного хаба — настроить права так, чтобы каждый участник видел и редактировал только то, что ему положено.
Для людей. Directus использует ролевую модель доступа. Можно создать роли «Редактор», «Автор», «Модератор» и настроить для каждой права на чтение, создание, редактирование и удаление конкретных коллекций. Например, автор блога видит только свои черновики, редактор — все материалы на ревью, администратор — всё.
Для ИИ-агентов. С версии 12 агенты подключаются через OAuth 2.0. Агент получает токен от имени конкретного пользователя и работает в рамках его прав. Это значит, что агент-переводчик может иметь доступ только к коллекции переводов, а агент-публикатор — только к статусам публикации. Если агента нужно отключить, достаточно отозвать его токен.
Практический чеклист настройки доступов:
- Определите роли: кто пишет, кто редактирует, кто публикует, кто только читает
- Создайте роли в Directus и назначьте права на коллекции
- Для агентов заведите отдельных служебных пользователей с минимальными правами
- Подключите агентов через OAuth, а не через статические токены
- Проверьте, что агент не может выйти за рамки своей роли
- Настройте логирование действий для аудита изменений
Как поднять Directus на своём VPS: пошаговый план
Автор подготовил подробное руководство по развёртыванию Directus на собственном сервере. Вот сжатая версия для тех, кто хочет попробовать.
- Подготовьте VPS. Минимальные требования: 1 ГБ RAM, 1 vCPU, 20 ГБ диска. Подойдёт любой облачный провайдер с Ubuntu 22.04 или новее.
- Установите Docker и Docker Compose. Directus официально рекомендуется запускать через Docker — это упрощает обновления и откат.
- Создайте базу данных. Directus поддерживает PostgreSQL, MySQL и другие. Для продакшена рекомендуется PostgreSQL.
- Настройте docker-compose.yml. Официальный репозиторий Directus содержит готовый шаблон. Нужно указать переменные окружения: ключи базы, секрет админки, настройки почты.
- Запустите контейнеры и выполните первоначальную настройка. При первом запуске Directus предложит создать администратора.
- Настройте роли и коллекции. Определите структуру контента: какие коллекции нужны, какие поля, какие связи между ними.
- Подключите фронтенды и агенты. Используйте REST или GraphQL API. Для фронтендов — статические токены с ограниченными правами, для агентов — OAuth.
- Настройте бэкапы. Регулярные дампы базы данных и томов Docker — обязательны для продакшена.
Когда Directus как контентный хаб — правильное решение
Подход с единым контентным хабом имеет смысл в нескольких сценариях. Если у вас один сайт и один автор, Directus будет избыточным. Но если хотя бы два из следующих условий совпадают — стоит рассмотреть.
- Контент используется на нескольких сайтах или платформах
- В процессе участвуют несколько авторов с разными ролями
- Нужно подключить ИИ-агентов для автоматизации (перевод, публикация, модерация)
- Важна независимость от облачных провайдеров и полный контроль над данными
- Требуется гибкая ролевая модель с гранулярными правами
Если же проект небольшой, команда из одного-двух человек, а контент живёт на одном сайте — проще начать с более лёгкого решения и переехать позже, когда сложность вырастет.