Directus headless CMS на офшорном NVMe VPS
Directus - headless CMS, которая работает поверх существующей SQL-базы: вы создаёте таблицы напрямую в PostgreSQL или MySQL, а Directus генерирует admin-интерфейс, REST API и GraphQL API автоматически. Это противоположный подход относительно Strapi: в Strapi схема создаётся через admin-панель и хранится в коде, в Directus схема живёт в базе и Directus её визуализирует. Для проектов с существующей базой Directus - самый быстрый способ получить CMS без миграции данных.
Need this done for your project?
We implement, you ship. Async, documented, done in days.
Database-first архитектура Directus
Принципиальное отличие Directus от других headless CMS - source of truth находится в самой базе данных. Если вы добавляете колонку через миграцию SQL или через pgAdmin, Directus её сразу подхватывает и показывает в admin-интерфейсе. Если меняете тип данных в базе, Directus обновляет поле в коллекции. Это удобно для команд, где DBA работает с базой напрямую, а контент-менеджеры через UI Directus.
Поддерживаются PostgreSQL 12+, MySQL 5.7+, MariaDB, SQLite, OracleDB, MS SQL Server, CockroachDB. Рекомендованная база для production - PostgreSQL 15 или 16 на той же машине, что и Directus, либо на отдельном VPS с приватной сетью. На NVMe SSD PostgreSQL обслуживает 10 000+ запросов в секунду для типичных CMS-нагрузок.
Directus сам по себе - stateless Node.js-приложение, его можно горизонтально масштабировать за reverse proxy, при условии что все инстансы смотрят на одну базу и общий Redis для сессий. Для большинства проектов хватает одного инстанса на VPS Medium (4 vCPU, 8 GB RAM).
Real-time подписки через WebSockets
Directus поддерживает real-time подписки через WebSockets из коробки - подключившись к /websocket эндпоинту, клиент получает события create, update, delete для отслеживаемых коллекций. Это превращает Directus в backend для real-time-приложений: чаты, дашборды, кооперативные редакторы документов, push-уведомления о новых заказах.
WebSockets требуют поддержки long-lived соединений на уровне Nginx (proxy_set_header Upgrade $http_upgrade, proxy_http_version 1.1) и достаточного количества файловых дескрипторов в системе (ulimit -n 65536). На офшорном VPS эти параметры настраиваются root-доступом без участия провайдера, в отличие от shared-хостинга, где WebSockets часто заблокированы или сильно ограничены.
Для масштабирования WebSockets за несколькими инстансами Directus используется Redis pub/sub - события публикуются в Redis, все Directus-инстансы получают и передают подключённым клиентам. Эта схема обслуживает десятки тысяч одновременных WebSocket-соединений на одном VPS Large.
Flows и автоматизация без кода
Directus включает Flows - визуальный конструктор автоматизаций по событиям в данных. Триггер срабатывает на создание, обновление, удаление записи или по cron-расписанию, далее выполняется цепочка операций: отправка email, вебхук во внешний сервис, изменение других записей, генерация PDF, вызов AI-API. Это альтернатива Zapier или n8n внутри самой CMS.
Типичные сценарии: при создании заказа отправить уведомление в Telegram, при загрузке нового медиа автоматически прогнать через AI-генератор alt-текста, при изменении статуса задачи обновить связанные записи и отправить webhook в Slack или Mattermost. На офшорном VPS эти автоматизации работают локально, без зависимости от облачных тарифов внешних SaaS-инструментов.
Для сложной логики, которая выходит за рамки Flows, пишутся custom hooks и endpoints на TypeScript - они подключаются как extensions в директорию extensions/ и подхватываются Directus при старте. Это даёт полную свободу расширения функциональности без форка основного кода Directus.
Похожие услуги
Privacy & anti-censorship guides
Why Anubiz Host
Ready to get started?
Skip the research. Tell us what you need, and we'll scope it, implement it, and hand it back — fully documented and production-ready.