psj-notes
~/home ~/series ~/archive

09. Grav CMS: установка блога

19.07.2026 Серия: Настройка VDS сервера с VPN "grav" "cms" "blog"

Почему Grav

Grav — это flat-file CMS без базы данных. Все страницы хранятся в Markdown-файлах, а изображения — в папках на диске. Это значит:

  • Не нужен MySQL или PostgreSQL
  • Резервное копирование — просто копируем папку
  • Высокая скорость работы
  • Всё под версиями в Git

Для личного блога Grav — идеальный выбор.

Установка Grav

Идём в корневую директорию веб-сервера:

cd /var/www/vds.example.com

Скачиваем Grav:

sudo rm -rf ./*
sudo wget https://getgrav.org/download/core/grav-admin/latest -O grav.zip
sudo unzip grav.zip
sudo mv grav-admin/* ./
sudo mv grav-admin/.* ./
sudo rm -rf grav-admin grav.zip

Права доступа

Grav пишет кэш и пользовательские файлы. Выставляем правильные права:

sudo chown -R www-data:www-data /var/www/vds.example.com
sudo chmod -R 755 /var/www/vds.example.com
sudo chmod -R 775 /var/www/vds.example.com/cache
sudo chmod -R 775 /var/www/vds.example.com/images
sudo chmod -R 775 /var/www/vds.example.com/user
sudo chmod -R 775 /var/www/vds.example.com/backup

Можно сделать проще — добавить пользователя в группу www-data:

sudo usermod -a -G www-data $USER

После этого нужно выйти и зайти снова (exec sudo -u $USER -l), чтобы группа применилась.

Настройка Nginx для Grav

Конфиг из предыдущей части уже подходит, но добавим пару правил для кэша Grav. Редактируем /etc/nginx/sites-available/vds.example.com:

location / {
    try_files $uri $uri/ /index.php?$query_string;
}

location ~* /(\.git|cache|bin|logs)/ {
    deny all;
    return 403;
}

location ~* /(system|vendor)/ {
    deny all;
    return 403;
}

Проверяем и перезагружаем:

sudo nginx -t
sudo systemctl reload nginx

Установка админ-панели

Откройте браузер и перейдите по адресу https://vds.example.com/admin.

Grav предложит создать администратора. Заполните поля:

  • Username — логин (не root и не admin для безопасности)
  • Password — надёжный пароль
  • Email — ваш адрес

На следующем шаге Grav установит админ-плагин и несколько расширений. Дождитесь завершения.

Базовая конфигурация

После входа в панель управления:

  1. Site → Configuration — укажите название сайта, описание, язык по умолчанию
  2. Themes — выберите тему (можно скачать новые через админку)
  3. Pages — создайте первую запись (Homepage, Blog, About)

Grav использует Markdown-файлы. Каждая страница — это .md файл с YAML-заголовком. Пример:

---
title: "Моя первая запись"
date: 2026-07-19T12:00:00Z
taxonomy:
    tag: [настройка, grav]
---
## Привет, мир!

Это моя первая запись в блоге на Grav. Весь контент хранится прямо на диске — никакой базы данных.

Включение кэширования

В админке: Configuration → System → Caching. Включите:

  • Caching — On
  • Cache Timeout — 3600 (1 час)
  • Enable CSS/JS Pipeline — On (для продакшена)

Это ускорит загрузку страниц в разы.

Полезные плагины

Через админ-панель (Plugins → Add) рекомендую установить:

  • TNT Search — полнотекстовый поиск по сайту без БД
  • Sitemap — генерация sitemap.xml для Google
  • Feed — RSS/Atom лента
  • Shortcode Core — расширенный синтаксис для Markdown
  • Git Sync — синхронизация контента с Git-репозиторием

Итог

Grav установлен и готов к наполнению. Вы можете писать статьи прямо в браузере через админ-панель или в Markdown-файлах на сервере. В следующей части развернём VPN-туннель на x-ui + Xray.

Комментарии

Комментарии пока не подключены.