Strapi — CMS с открытым исходным кодом и отделённым от сайта фронтендом (headless CMS) на Node.js. Она хранит контент отдельно от сайта и предоставляет его через REST или GraphQL API. Strapi можно развернуть на своём сервере, подключить к собственной базе данных и расширять кодом.
Содержание
- Как устроена Strapi
- Модели и управление контентом
- REST, GraphQL и MCP
- Медиа, локализация и права
- Быстрый старт и проверка
- Деплой и производительность
- Тарифы Strapi Cloud
- Обновления и безопасность
- Полезные сценарии
- Когда выбирать Strapi
Как устроена Strapi
Strapi состоит из двух основных частей:
- Серверная часть (Backend) — приложение, которое работает с данными, правами и API.
- Админ-панель (Admin Panel) — интерфейс для редакторов и администраторов.
flowchart LR
A[Контент-менеджер] -->|CRUD| B[Strapi Backend]
B -->|REST или GraphQL| C[Сайт или приложение]
B -->|SQL| D[База данных]
B -->|Файлы| E[S3, Cloudinary или диск]Разработчик задаёт модели контента, а редакторы заполняют их через Content Manager — панель управления контентом. Фронтенд получает опубликованные данные по API. Такой подход подходит для сайтов на Next.js, Astro, Nuxt, мобильных приложений и других HTTP-клиентов.
Модели и управление контентом
Content-Type Builder позволяет создавать структуру данных визуально. Основные элементы:
| Тип | Назначение | Пример |
| Collection Type | Набор однотипных записей | Статьи, товары, авторы |
| Single Type | Единственная запись | Главная страница, настройки |
| Component | Переиспользуемая группа полей | SEO, карточка героя |
| Dynamic Zone | Упорядоченный набор разных компонентов | Страница из блоков |
Доступны текстовые, числовые, логические, календарные, медийные, реляционные, JSON, UID, email и другие поля. Компоненты бывают одиночными и повторяемыми.
В Content Manager можно создавать, редактировать, публиковать и удалять записи. Для collection types доступны список и отдельная форма редактирования; у single types есть только форма одной записи.
Если включён Draft & Publish, записи можно фильтровать по состояниям:
- черновик, который ещё не публиковался;
- опубликованная запись;
- опубликованная запись с несохранёнными в публикации изменениями;
- опубликованная запись без новых изменений.
Настройки колонок, поиска, фильтров, сортировки и количества строк сохраняются отдельно для каждого типа контента. Для связей можно выбрать открытие записи в модальном окне, на отдельной странице или в новой вкладке.
Dynamic Zones полезны для управляемого конструктора страниц: разработчик определяет допустимые блоки, а редактор меняет их состав и порядок. Начиная с v5.51.2 компоненту можно задать изображение предпросмотра через ключ preview в блоке info файла schema.json; оно появится в выборе компонентов.
REST, GraphQL и MCP
REST API
После создания collection type Strapi формирует стандартные API-маршруты.
# Получить статьи
GET /api/articles
# Фильтрация
GET /api/articles?filters[title][$contains]=AI
# Сортировка и пагинация
GET /api/articles?sort=publishedAt:desc&pagination[page]=1&pagination[pageSize]=10
# Загрузить выбранные связи
GET /api/articles?populate=author,categoryСвязанные сущности по умолчанию не подгружаются, поэтому populate лучше задавать явно и только для нужных полей. Это уменьшает размер ответа и нагрузку на базу.
GraphQL
GraphQL подключается плагином @strapi/plugin-graphql и удобен, когда клиенту нужно получить несколько связанных сущностей с точно заданным набором полей.
npm install @strapi/plugin-graphqlREST обычно проще для стандартных CRUD-сценариев и HTTP-кэширования. GraphQL полезен для сложных связанных выборок.
MCP для ИИ-агентов
MCP-сервер Strapi получил статус GA и позволяет совместимому ИИ-клиенту управлять контентом через инструменты Strapi. Доступ к операциям записи ограничивайте правами admin API token. Сервер выключен по умолчанию.
// config/server.ts
export default ({ env }) => ({
host: env('HOST', '0.0.0.0'),
port: env.int('PORT', 1337),
mcp: {
enabled: env.bool('STRAPI_MCP_ENABLED', false),
},
});После включения и перезапуска MCP endpoint доступен по адресу:
http://localhost:1337/mcpВ v5.49 появились типизированные средства ai.mcp.defineTool, defineResource и definePrompt для расширения MCP из плагинов. С v5.52.0 операции записи агента через MCP попадают в audit logs, если журнал аудита доступен в выбранной редакции Strapi.
Медиа, локализация и права
Медиабиблиотека
Файлы можно хранить локально либо передавать внешнему провайдеру, например AWS S3 или Cloudinary.
В обновлениях v5.49–v5.52.2 исправлены замена файлов за CDN, проверка лимита размера при замене и работа S3 с обновляемыми краткосрочными credentials. Начиная с v5.52.2 новая медиабиблиотека доступна как beta: в ней появились дерево папок, поиск, фильтры, редактирование focal point и фоновая очередь загрузок.
// config/features.js
module.exports = {
future: {
betaMediaLibrary: true,
},
};По официальному плану GA новой медиабиблиотеки назначен на 16 сентября 2026 года. До этой даты интерфейс остаётся beta, а прежняя медиабиблиотека используется по умолчанию.
Локализация
Плагин i18n позволяет включать локализацию отдельно для контент-типа и его полей. Локаль передаётся в запросе:
GET /api/articles?locale=ruРоли и доступ
Strapi разделяет права админ-панели и Content API. Для администраторов настраиваются действия над типами контента, а для API — разрешения публичных и авторизованных пользователей.
Публичной роли выдавайте только действительно необходимые операции. Загрузка файлов, создание записей и доступ к приватным полям не должны становиться публичными случайно.
Быстрый старт и проверка
Для разработки понадобится поддерживаемая LTS-версия Node.js и база данных. Перед развёртыванием сверяйте точные версии Node.js и СУБД с актуальной страницей установки Strapi.
npx create-strapi-app@latest my-project
cd my-project
npm run developДля автоматизированного создания проекта:
npx create-strapi-app@latest my-project --non-interactiveПосле запуска:
- Откройте
http://localhost:1337/admin. - Создайте первого администратора.
- Добавьте тестовый collection type и запись.
- Настройте разрешение
findдля нужной API-роли. - Выполните запрос к созданному endpoint.
Наблюдаемый результат — ответ API с тестовой записью. Если приходит 403, проверьте права роли; если связь отсутствует в ответе, добавьте явный populate.
Деплой и производительность
Strapi можно разместить в Strapi Cloud, на PaaS-платформе или собственном VPS. Для self-hosted-варианта обычно нужны:
- база данных, совместимая с выбранным релизом Strapi;
- постоянное файловое либо объектное хранилище;
- обратный прокси (reverse proxy) с TLS;
- резервное копирование базы и файлов;
- контролируемое обновление пакетов Strapi.
Ресурсы сервера выбирайте по числу моделей, плагинов, параллельных запросов и процессу сборки. Перед продакшеном проверьте сборку и работу админ-панели на своей нагрузке.
Базовые меры производительности:
- используйте пагинацию;
- выбирайте только нужные поля и связи;
- добавляйте индексы для часто используемых фильтров;
- кэшируйте подходящие публичные ответы на reverse proxy или CDN;
- измеряйте запросы к базе до подключения дополнительного кэша.
Тарифы Strapi Cloud
Цены и лимиты проверены 10 сентября 2026 года по официальной странице Strapi Cloud. Цены указаны без возможных местных налогов.
| План | Цена в месяц | API-запросы | Хранилище / трафик | Резервные копии |
| Starter | $35 за проект | 100 тыс. | 50 / 50 ГБ | Нет |
| Pro | $90 за проект | 1 млн | 250 / 500 ГБ | Еженедельные |
| Business | $450 за проект | 10 млн | 1 000 / 1 000 ГБ | Ежедневные |
Starter засыпает при простое; Pro и Business работают в режиме always on. Business включает два окружения и SLA 99,9%. При годовой оплате заявлена скидка до 17%.
Дополнительное потребление оплачивается отдельно:
- $1,50 за 25 тыс. API-запросов;
- $0,60 за 1 ГБ хранилища;
- $30 за 100 ГБ трафика;
- дополнительное окружение Pro — $60 в месяц;
- дополнительное окружение Business — $300 в месяц.
Актуальные значения перед покупкой проверяйте на официальной странице Strapi Cloud.
Обновления и безопасность
В мае 2026 года Strapi раскрыл пять исправленных уязвимостей. Среди них были две критические: SQL-инъекция в Content-Type Builder и утечка чувствительных данных через фильтрацию по связям. Подробности и минимальные исправленные версии приведены в официальном уведомлении о безопасности.
После v5.49 появились и другие изменения безопасности и поведения:
- v5.50.0 добавила просмотр и отзыв активных сессий;
- v5.51.0 ограничила срок действия admin password-reset token одним часом по умолчанию;
- v5.51.2 начала воспринимать
%и_в строковых фильтрах буквально; - v5.52.2 применяет лимит размера и при замене загруженного файла;
- новые проекты v5.52.2 по умолчанию запрещают SVG-загрузки.
Последнее правило не применяется автоматически к старым проектам. Проверьте собственные allowedTypes и deniedTypes, особенно если файлы отдаются с того же origin, что и админ-панель.
Strapi 4 завершена как ветка разработки: v4.26.2 стала финальным релизом. Действующие проекты следует переносить на v5 по официальному руководству.
Полезные сценарии
Контентный сайт с независимым фронтендом
Задача: редакторам нужна админ-панель, а разработчикам — свобода выбрать Next.js, Astro или другой клиент.
Создайте модели статей, авторов и рубрик, настройте Draft & Publish, выдайте фронтенду доступ только для чтения и получайте опубликованные записи через REST или GraphQL. Результат проверяется запросом к Content API и отображением тестовой записи на фронтенде.
Сценарий требует отдельной инфраструктуры и дисциплины обновлений. Если команда не готова обслуживать сервер, вариант в Strapi Cloud может быть проще.
Каталог или база знаний из компонентов
Задача: собирать разные страницы из согласованного набора блоков.
Опишите компоненты для текста, медиа, характеристик и CTA, затем объедините их в Dynamic Zone. Редактор сможет менять порядок блоков, не изменяя код модели. Проверьте результат через preview фронтенда и API-ответ с ожидаемым порядком компонентов.
Dynamic Zone не заменяет дизайн-систему: слишком большое число похожих компонентов усложняет редактору выбор и поддержку схемы.
Управление контентом через ИИ-агента
Задача: разрешить агенту искать, создавать или публиковать записи без собственной REST-прослойки.
Включите MCP, создайте admin API token с минимальными правами и подключите совместимый клиент к /mcp. Сначала используйте роль только для чтения. Успешное подключение подтверждается появлением инструментов для разрешённых типов контента; операции записи через MCP можно отслеживать в audit logs при наличии этой возможности.
Такой доступ не подходит для неконтролируемого публичного агента. Операции записи требуют ограниченной роли, отзываемого токена и журналирования.
Когда выбирать Strapi
Strapi подходит, если:
- данные и инфраструктура должны оставаться под вашим контролем;
- в команде есть разработчик для поддержки Node.js-приложения;
- нужна собственная бизнес-логика, плагины или функции жизненного цикла;
- одному контентному слою предстоит обслуживать несколько клиентов.
Другой вариант разумнее, если команда не хочет обслуживать сервер, обновления и резервные копии. При выборе сравнивайте полную стоимость владения: лицензию, хостинг, базу, хранилище, наблюдаемость и рабочее время команды.
Официальные ссылки
- Сайт Strapi
- Документация Strapi 5
- Content Manager
- Обзор релизов за июнь–август 2026
- Уведомление о пяти уязвимостях
- GitHub
- Маркетплейс плагинов
- Тарифы Strapi Cloud
Следующий шаг
База знаний: EmDash — open-source CMS от Cloudflare на базе Astro
Если вы выбираете CMS или проектируете контентную архитектуру, полезно заранее сопоставить требования к данным, редакционному процессу и поддержке инфраструктуры.
Если захотите обсудить, как это применить у себя или в команде — пишите в Telegram @pimenov

