Grav — это современная бесплатная CMS с открытым исходным кодом, написанная на чистом PHP и работающая без базы данных (Flat-File). Вся информация, настройки и контент хранятся в виде обычных текстовых файлов и Markdown-документов. Это обеспечивает максимальную скорость отдачи страниц, ничтожное потребление оперативной памяти и моментальное резервное копирование простым архивированием папки сайта.
Основная ценность Grav для гибридных проектов — встроенная в ядро мультиязычность и полная свобода в верстке: для главной страницы можно задать изолированный HTML5/CSS3 шаблон со своим Native JS, а остальные страницы использовать как структурированную Wiki.
Важный нюанс: по правилам лицензии Grav Premium, одна лицензия = один сайт. Но для локальной разработки и тестов ты можешь использовать одну лицензию, а вторую докупить только когда решишь выкатывать второй сайт в паблик, если тебе всё понравится
Grav Core: Только ядро системы, CLI-инструмент (утилита gpm), базовый шаблон. Для разработчиков, которые управляют контентом через IDE (например, Cursor), синхронизируют файлы по FTP/SSH или используют Git. Контент пишется в .md файлах на диске.
Grav + Admin Plugin для тех, кому нужен визуальный интерфейс для создания страниц, управления плагинами, обновлениями и настройками мультиязычности через браузер.
Версия Grav + Admin удобнее для быстрого старта, так как позволяет настраивать языковые пространства имен в кликабельном интерфейсе, но под капотом она создает точно такие же текстовые конфигурационные файлы, как и Core.
Установка Grav сводится к банальной распаковке архива. Ему не нужны компиляторы или сложные системные зависимости. Подключитесь к VPS по SSH, перейдите в корневую директорию веб-сервера и скачайте актуальную версию (в примере берем вариант с админ-панелью):
cd /var/www/ wget https://getgrav.org/download/core/grav-admin/latest unzip latest
Что нужно сделать прямо сейчас (Первый запуск):
Суть бага: В мультиязычном режиме на стеке PHP 8.3 + Nginx/PHP-FPM встроенный веб-редактор (Admin Panel) критически сбоит при попытке перевести страницу на новый язык, файла которого еще физически нет на диске. Вместо генерации нового языкового файла (например, default.pt-br.md), админка паникует, выдает ворнинг Falling back to English language и перезаписывает содержимое мастер-файла (default.md) новым переводом.
Решение: Полный отказ от забагованной панели Admin Panel для мультиязычных pSEO-проектов. Управление контентом напрямую через текстовые файлы Markdown (default.md, default.ru.md, default.pt-br.md) силами ядра Grav Core работает как швейцарские часы и полностью исключает риск перезаписи данных.
Безопасный алгоритм работы:
cd user/pages/имя-папки touch default.ru.md default.uk.md default.pt-br.md
Всё делается в пару кликов:
В DokuWiki это работает через синтаксис
[[Название страницы]]
. В голом Markdown (и в Hugo) тебе нужно вручную прописывать относительные пути:
[Текст](../folder/page.md)
, что ужасно неудобно.
Как это работает в Grav + Editor Pro? Здесь перелинковка решена на уровне современного визуального редактора (TipTap):
Ты выделяешь слово в визуальном редакторе.
Если URL страницы позже изменится, Grav умеет обрабатывать редиректы, либо внутренние роуты сами подстроятся. Это гораздо удобнее, чем в DokuWiki, потому что тебе не нужно помнить точный URL, редактор ищет по заголовкам.
Тема для Grav достаточно много, их можно посмотреть по этой ссылке https://getgrav.org/downloads/themes. Достойны внимания такие темы:
https://github.com/getgrav/grav-theme-quark2 Максимально стабильная, обновляется вместе с ядром Grav. Quark 2 в качестве темы по умолчанию: Blades CSS, Font Awesome 7, автоматический/светлый/темный режимы с сохранением выбора в localStorage, локальное размещение шрифтов Cal Sans и Inter, а также доработанная дизайн-система.
Встроенная поддержка мультиязычности (языковой переключатель готов из коробки).
Чтобы сделать её строго одноколоночной, достаточно убрать вызовы сайдбара в шаблоне base.html.twig и использовать шаблон default без боковых панелей.
Helios изначально спроектирована как Technical Documentation Theme (Документация и Базы знаний).
Обновление без админки: вручную не придётся. В проекте есть менеджер пакетов Grav (GPM, bin/gpm), он работает из командной строки в корне проекта:
Обновлять часто не нужно: достаточно при исправлениях безопасности или когда нужна новая функция. Перед обновлением сделайте коммит, потому что команды меняют много файлов.