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.
Related Services
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.