База знаний
Strapi — open-source Headless CMS для тех, кто хочет владеть своими данными
Разбор Strapi 5 на август 2026: архитектура, API, встроенный MCP-сервер, Strapi AI, требования к серверу, тарифы и границы применимости.
СейчасЗачем вообще нужна Headless CMS
- Зачем вообще нужна Headless CMS
- Как устроена архитектура
- Content-Type Builder — конструктор моделей
- Типы контента
- Типы полей
- API из коробки: REST и GraphQL
- REST
- GraphQL
- MCP-сервер: подключение ИИ-агентов к контенту
- Плагины
- Встроенные
- Популярные сторонние
- Мультиязычность (i18n)
- Медиа-библиотека
- Роли и права доступа
- Кастомизация бэкенда
- Быстрый старт
- Деплой
- Требования к серверу (VPS)
- Софт
- Производительность: что стоит настроить
- Тарифы
- Лицензия CMS
- Хостинг Strapi Cloud
- Интеграция с фронтенд-фреймворками
- Strapi AI
- Что изменилось в Strapi 5 за 2026 год
- Безопасность и жизненный цикл версий
- Когда Strapi — правильный выбор
- Когда лучше посмотреть на альтернативы
- Ссылки
Strapi — одна из самых популярных open-source Headless CMS на Node.js. Вы разворачиваете её на своём сервере, данные хранятся в вашей базе, а контент отдаётся через REST и GraphQL API. По сути — готовый бэкенд для управления контентом, который можно подключить к любому фронтенду.
Зачем вообще нужна Headless CMS
Если коротко: Headless CMS — это когда контент хранится отдельно от фронтенда и отдаётся через API. Вы сами решаете, на чём строить сайт — Next.js, Astro, мобильное приложение или что-то ещё. CMS при этом отвечает только за хранение и редактирование контента.
Strapi — один из главных игроков в этой категории. Отличается тем, что это не облако, а софт, который вы ставите к себе. Для кого-то это преимущество (полный контроль), для кого-то — дополнительная ответственность (нужен сервер, нужны обновления).
Как устроена архитектура
Strapi состоит из двух частей:
- Backend — Node.js-приложение, которое обрабатывает запросы, управляет данными и генерирует API
- Admin Panel — React-приложение, через которое контент-менеджеры работают с материалами
flowchart LR
A["Контент-менеджер\n(Админ-панель)"] -->|CRUD| B["Strapi Backend\n(Node.js)"]
B -->|REST / GraphQL| C["Фронтенд\n(Next.js, Astro, Nuxt...)"]
B -->|SQL| D["База данных\n(PostgreSQL / MySQL)"]
B -->|Upload| E["Файлы\n(S3 / Cloudinary / Local)"]Принцип простой: вы создаёте модели контента (Content Types) — через визуальный конструктор или код. Strapi автоматически генерирует REST и GraphQL endpoints для каждой модели. Контент-менеджеры заполняют данные через админку, фронтенд забирает их по API.
Content-Type Builder — конструктор моделей
Одна из главных фишек Strapi — визуальный конструктор контент-моделей прямо в админ-панели. Не нужно писать код, чтобы создать структуру данных для блога, каталога товаров или базы знаний.
Типы контента
| Тип | Что это | Пример |
| Collection Type | Коллекция записей одного типа | Статьи, Продукты, Авторы |
| Single Type | Одна запись (синглтон) | Главная страница, Настройки сайта |
| Component | Переиспользуемый блок полей | SEO-метаданные, Блок «Герой» |
| Dynamic Zone | Зона, куда можно добавлять разные компоненты | Конструктор страниц из блоков |
Типы полей
Strapi поддерживает все базовые типы: Text, Rich Text, Number, Date, Boolean, Media (изображения, видео), Relation (связи между моделями), Enumeration, JSON, UID (slug), Email, Password. Плюс кастомные поля через плагины — Color Picker, Google Maps и другие.
API из коробки: REST и GraphQL
Strapi автоматически генерирует API для каждого Content Type. Не нужно ничего писать — создали модель «Статья», получили готовый набор endpoints.
REST
# Получить все статьи
GET /api/articles
# Получить одну статью
GET /api/articles/1
# Фильтрация
GET /api/articles?filters[title][$contains]=AI
# Сортировка + пагинация
GET /api/articles?sort=publishedAt:desc&pagination[page]=1&pagination[pageSize]=10
# Подгрузка связей (по умолчанию Strapi не грузит связанные данные)
GET /api/articles?populate=author,category
# Выборка по состоянию публикации (параметр publicationFilter, с v5.47)
GET /api/articles?publicationFilter=draftOnlyПараметр publicationFilter работает в REST, Document Service и GraphQL и помогает собрать выборки, которые не выражаются фильтром по одной колонке: например, записи, ни разу не опубликованные в этой локали, или черновики, разошедшиеся с опубликованной версией. Старый параметр hasPublishedVersion продолжает работать.
GraphQL
Доступен через плагин @strapi/plugin-graphql:
query {
articles(sort: "publishedAt:desc", pagination: { limit: 10 }) {
title
slug
content
author {
name
avatar { url }
}
}
}MCP-сервер: подключение ИИ-агентов к контенту
Главное продуктовое изменение 2026 года. MCP (Model Context Protocol) — открытый протокол, по которому ИИ-агенты вроде Claude, Cursor или Copilot обращаются к внешним системам. Встроенный MCP-сервер появился в v5.47.0 и получил статус GA в v5.49.0.
Агент читает и пишет контент прямо в работающем проекте, без самописной прослойки поверх REST.
- Для контент-типов публикуется набор инструментов:
find,create,update,publish,unpublishи другие. Какие из них увидит агент, определяют права admin-токена: токен только на чтение откроет лишь операции чтения - Сервер отключён по умолчанию (
server.mcp.enabled=false), пока вы явно его не включите - Доступ выдаётся через admin API token: у токена есть владелец, права токена не превышают прав владельца, пересчитываются при смене его ролей и отзываются при деактивации аккаунта
- Функция бесплатна и доступна в Community-версии на своём сервере
// config/server.ts — MCP выключен по умолчанию
export default ({ env }) => ({
host: env('HOST', '0.0.0.0'),
port: env.int('PORT', 1337),
mcp: {
// включайте флагом окружения, а не хардкодом
enabled: env.bool('STRAPI_MCP_ENABLED', false),
},
});Как проверить, что работает: после включения сервера и рестарта эндпоинт поднимается на http://localhost:1337/mcp. Подключите агента по MCP и попросите вывести список доступных инструментов. Если в клиенте видны инструменты вида find для ваших коллекций, соединение работает.
Плагины
У Strapi развитая экосистема. Плагины ставятся через npm.
Встроенные
- Content Manager — основной интерфейс управления контентом
- Content-Type Builder — визуальный конструктор моделей
- Media Library — управление файлами, изображениями, видео
- i18n — мультиязычность контента
- Users & Permissions — управление доступом к API
- Email — отправка email через Nodemailer
Популярные сторонние
| Плагин | Зачем | Установка |
| SEO | Meta-теги, Open Graph | npm i @strapi/plugin-seo |
| GraphQL | GraphQL API поверх REST | npm i @strapi/plugin-graphql |
| Slugify | Автогенерация slug | npm i strapi-plugin-slugify |
| Sitemap | Автогенерация sitemap.xml | npm i strapi-plugin-sitemap |
| Meilisearch | Полнотекстовый поиск | npm i strapi-plugin-meilisearch |
Полный каталог — на market.strapi.io. Можно создавать свои плагины через Plugin SDK.
Мультиязычность (i18n)
Strapi поддерживает мультиязычность из коробки:
- В Settings → Internationalization добавляете нужные локали (ru, en, de...)
- В Content-Type Builder включаете i18n для контент-типа
- Для каждого поля решаете, нужна ли локализация
- В Content Manager переключаетесь между языками и заполняете контент
# Получить контент на конкретном языке
GET /api/articles?locale=ruНа плане Growth доступны AI-переводы: при обновлении исходной версии контент автоматически переводится во все локали проекта.
Медиа-библиотека
Встроенная система управления файлами: загрузка, папки, миниатюры, поиск.
Что добавилось за 2026 год:
- Focal point (v5.35) — вы отмечаете точку, вокруг которой изображение обрезается под разные форматы, и главный объект перестаёт уезжать за край кадра
- Импорт по URL — файл можно загрузить прямо со стороннего адреса, не скачивая его локально
- Подписанные URL в Content API (v5.43) — приватные бакеты корректно работают не только в админке, но и для фронтенда
- AI-метаданные — alt-тексты и подписи генерируются для новых загрузок, а с v5.34 их можно применить и к ранее накопленной библиотеке (требуется лицензия Growth)
Где хранить файлы:
- Local — на сервере (по умолчанию; на VPS с постоянным диском файлы переживают рестарт, а в контейнере без примонтированного тома пропадут)
- AWS S3 и S3-совместимые хранилища —
@strapi/provider-upload-aws-s3(рекомендуется для продакшена). Официальный провайдер поддерживает полную конфигурацию S3-совместимых сервисов: Cloudflare R2, MinIO, Backblaze B2, DigitalOcean Spaces - Cloudinary —
@strapi/provider-upload-cloudinary
Роли и права доступа
Две системы:
Для админ-панели — Super Admin, Editor, Author + кастомные роли с гранулярным доступом на уровне Content Type и действий (create, read, update, delete, publish).
Для API — Authenticated, Public + кастомные роли. Настраиваете, какие endpoints доступны авторизованным пользователям, какие — всем.
Кастомизация бэкенда
Strapi — это Node.js-приложение, которое можно расширять на уровне кода:
- Controllers — переопределить логику обработки запросов
- Services — добавить бизнес-логику
- Middlewares — логирование, кэширование, rate limiting
- Lifecycle Hooks — хуки на создание, обновление, удаление записей (автогенерация slug, уведомления, инвалидация кэша)
strapi.entityService) официально помечен как deprecated, а с Document API (strapi.documents) снята пометка @beta. Новый код пишите на Document Service, старые вызовы постепенно переводите — редактор теперь подсказывает это сам.// Пример: автогенерация slug при создании статьи
export default {
async beforeCreate(event) {
const { data } = event.params;
if (data.title && !data.slug) {
data.slug = slugify(data.title);
}
},
};Быстрый старт
# Создать проект
npx create-strapi-app@latest my-project
# Создать проект без интерактивных вопросов (для CI и IaC)
npx create-strapi-app@latest my-project --non-interactive
# Запустить
cd my-project && npm run developОткройте http://localhost:1337/admin, создайте первого администратора — и можно работать.
Деплой
| Платформа | Сложность | Цена | Особенности |
| Strapi Cloud | Низкая | от $35 за проект/мес | Деплой из Git, managed-инфраструктура |
| Railway | Низкая | По потреблению | One-click deploy, PostgreSQL в комплекте |
| Render | Низкая | от $25/мес за инстанс с 2 ГБ | Auto-deploy из Git. Инстанс за $7 — это 512 МБ, для Strapi мало. С 23 апреля 2026 планы workspace: Hobby $0, Pro $25, Scale $499 |
| Docker (VPS) | Средняя | от $5/мес | Полный контроль, нужны DevOps-навыки |
| AWS / GCP | Высокая | Варьируется | Максимальная гибкость |
Требования к серверу (VPS)
Если разворачиваете Strapi на своём сервере — вот на что ориентироваться:
| Параметр | Минимум | Рекомендуется |
| CPU | 1 ядро | 2+ ядра |
| RAM | 2 ГБ | 4 ГБ+ |
| Диск | 8 ГБ | 32 ГБ+ (SSD/NVMe) |
Софт
- Node.js — только Active LTS или Maintenance LTS (на август 2026 это v22, v24 и v26). Нечётные версии (v23, v25) не поддерживаются
- База данных — PostgreSQL (рекомендуется 17, минимум 14), MySQL (8.4 / 8.0) или MariaDB (11.4 / 10.3) по актуальной документации. README пакета в npm до сих пор показывает старую таблицу с PostgreSQL 14 и MariaDB 10.6 — ориентируйтесь на docs. SQLite подходит только для разработки, MongoDB и другие NoSQL-базы не поддерживаются
- build-essentials — стандартный набор сборочных утилит (для Debian/Ubuntu)
- ОС — Ubuntu ≥ 18.04 LTS, Debian ≥ 9.x, CentOS/RHEL ≥ 8 или Docker
Производительность: что стоит настроить
- Reverse Proxy (Nginx) — кэширование, SSL, gzip. Обязательно в продакшене
- CDN (Cloudflare) — если аудитория глобальная
- Pagination — всегда, не загружайте всё разом
- Selective populate — загружайте только нужные связи (по умолчанию Strapi не грузит связанные данные, и это хорошо)
- Redis — кэширование API-ответов при высокой нагрузке
- Database indexes — для больших таблиц и сложных фильтров
Тарифы
Лицензия CMS и хостинг тарифицируются раздельно: сначала выбираете план CMS, затем при желании — план Strapi Cloud. Цены ниже указаны на 2 августа 2026 года, актуальные значения смотрите на strapi.io/pricing-cms и strapi.io/pricing-cloud.
Лицензия CMS
| План | Цена | Что включено |
| Community (self-hosted) | Бесплатно, MIT | REST и GraphQL, i18n, Draft & Publish, RBAC, медиабиблиотека, Blocks Editor, плагины, MCP-сервер |
| Growth | $45/мес, включено 3 места (+$15 за место) | Всё из Community плюс Strapi AI (1 000 кредитов в месяц), Live Preview, Releases, Content History с хранением 30 дней, базовая поддержка |
| Enterprise | По запросу | Всё из Growth плюс SSO, Review Workflows, Audit Logs, отчёт SOC 2, расширенная поддержка |
SSO можно докупить к Growth отдельным add-on за $150/мес (+$50 за место).
Хостинг Strapi Cloud
| План | Цена за проект | Лимиты и возможности |
| Starter | $35/мес | 100 тыс. API-запросов, 50 ГБ хранилища и трафика, CDN, кастомные домены, наблюдаемость 7 дней. Бэкапов нет, проект засыпает при простое — режим always on начинается с Pro |
| Pro | $90/мес | 1 млн запросов, 250 ГБ хранилища, 500 ГБ трафика, мультиокружения, еженедельные бэкапы, CRON |
| Business | $450/мес | 10 млн запросов, 1 000 ГБ хранилища и трафика, ежедневные бэкапы, SLA 99,9% |
При годовой оплате Strapi даёт скидку до 17%. Превышения лимитов оплачиваются сверху: +$1,50 за 25 тыс. API-запросов, +$0,60 за ГБ хранилища, +$30 за 100 ГБ трафика, дополнительное окружение — от +$60 в месяц.
Интеграция с фронтенд-фреймворками
| Фреймворк | Интеграция | Примечание |
| Next.js | REST/GraphQL + @strapi/client | SSG, SSR, ISR — все режимы |
| Astro | REST/GraphQL | Отлично для статических сайтов |
| Nuxt 3 | REST/GraphQL + @strapi/client | Nuxt Content Module совместим |
| Mobile | REST API | Любой HTTP-клиент |
Strapi AI
Strapi AI вышел из беты и доступен в общем релизе. Функции работают на плане Growth: включено 1 000 кредитов в месяц, дополнительные — $1,50 за 100 кредитов. В Enterprise на момент проверки Strapi AI ещё не открыт.
- AI Content-Type Builder — генерация структуры контента по текстовому описанию, файлу Figma или ZIP-архиву с JS-приложением, с доработкой в чате
- AI-метаданные для медиа — alt-тексты и подписи для новых загрузок и для уже накопленной библиотеки
- AI-переводы — автоматический перевод во все локали при обновлении исходной версии
Встроенный MCP-сервер к Strapi AI не относится и лицензии Growth не требует: он бесплатен и работает в Community.
Что изменилось в Strapi 5 за 2026 год
Если вы читали про Strapi год назад, вот сжатая картина обновлений по релизам v5.33–v5.50.
| Область | Что появилось |
| ИИ и агенты | Встроенный MCP-сервер (v5.47, GA в v5.49), admin API tokens с ограничением прав по владельцу |
| Редактор | Настраиваемый Blocks editor через API addRichTextBlocks (v5.46): можно добавить свои блоки или убрать лишние |
| Live preview | Предпросмотр видит изображения и видео, ассет меняется прямо в контексте без сохранения (v5.46, требуется Growth) |
| Content Manager | Колонки, фильтры и сортировка сохраняются между сессиями (v5.36); фильтр и сортировка по статусу публикации (v5.39, v5.45); настройка relationOpenMode (v5.38) |
| Запросы | Параметр publicationFilter (v5.47) для выборок поверх черновиков и опубликованных версий |
| Связи | Самоссылающиеся и скрытые обратные связи переживают публикацию и откат, порядок связей сохраняется при перепубликации |
| Медиа | Focal point, импорт по URL, подписанные URL в Content API, полноценная поддержка S3-совместимых хранилищ |
| Разработка | Entity Service помечен deprecated в пользу Document Service; флаг --non-interactive в create-strapi-app; Nodemailer v8 в email-провайдере |
Безопасность и жизненный цикл версий
13 мая 2026 года Strapi опубликовал скоординированное раскрытие пяти исправленных CVE. Две из них критические: SQL-инъекция в Content-Type Builder (CVE-2026-22599, CVSS 9.3) и утечка чувствительных данных через фильтрацию по связям (CVE-2026-27886). Остальные три — обход rate limit, отсутствие отзыва сессий при сбросе пароля и обход проверки MIME-типа в плагине Upload.
Что из этого следует практически:
- Если у вас версия ниже v5.37.0, обновляйтесь. Исправления вошли в более ранние релизы, отдельного бэкпорта не будет
- Смена пароля теперь завершает активные сессии пользователя (v5.33.3)
- Ограничения по типам загружаемых файлов больше нельзя обойти через Content API (v5.33.3)
- Обработка параметров запросов ужесточена настройками
strictParam,addQueryParamsиaddInputParams(v5.37)
Когда Strapi — правильный выбор
- Вам нужен полный контроль над данными и инфраструктурой
- В команде есть разработчик, который может поддерживать self-hosted решение
- Бюджет ограничен — Community Edition бесплатна
- Нужна кастомная бизнес-логика на бэкенде (controllers, services, hooks)
- Данные должны оставаться на вашем сервере (регуляторные требования, GDPR)
Когда лучше посмотреть на альтернативы
- Если не хотите заниматься серверами — посмотрите на Sanity (облачная CMS с бесплатным стартовым планом, лимиты уточняйте на сайте)
- Если у вас уже есть база данных и нужен API поверх неё — Directus
- Если нужен enterprise с мультиязычностью и governance из коробки — Contentful
Ссылки
- Сайт: strapi.io
- Документация: docs.strapi.io
- GitHub: github.com/strapi/strapi
- Маркетплейс плагинов: market.strapi.io
- Strapi Cloud: cloud.strapi.io
По теме
Если вы выбираете CMS для нового проекта или думаете, как перестроить контентную архитектуру на чём-то более управляемом — давайте обсудим.
Если хотите разобрать свою задачу — напишите мне Если хотите разобрать свою задачу — напишите мне.
Можно прийти с идеей, черновым контекстом или уже живой задачей. Помогу быстро понять, где реальный следующий шаг, а где лишний шум.
Обычно хватает 2–3 сообщений, чтобы понять, могу ли я здесь реально помочь и в каком формате лучше двигаться дальше.