eco Начальный Туториал

Установка и настройка Ghost CMS на VPS: пошаговое руководство по развертыванию профессионального блога

calendar_month Май 16, 2026 schedule 9 мин. чтения visibility 32 просмотров
Установка и настройка Ghost CMS на VPS: пошаговое руководство по развертыванию профессионального блога
info

Нужен сервер для этого гайда? Мы предлагаем выделенные серверы и VPS в 50+ странах с мгновенной настройкой.

Нужен сервер для этого гайда?

Разверните VPS или выделенный сервер за минуты.

Установка и настройка Ghost CMS на VPS: пошаговое руководство по развертыванию профессионального блога

1. TL;DR

Данное руководство описывает процесс развертывания Ghost CMS — самой быстрой и современной платформы для профессионального блогинга и медиа-бизнеса — на собственном виртуальном сервере (VPS) под управлением Ubuntu 26.04 LTS. Мы пройдем путь от выбора "железа" и базовой защиты сервера до тонкой настройки Node.js, MySQL 8.4 и автоматизации бэкапов, что позволит вам получить полный контроль над своим контентом и данными без ежемесячных платежей за SaaS-подписки.

  • Стек технологий: Ubuntu 26.04, Node.js 24/26 (LTS), MySQL 8.4 LTS, Nginx, Systemd.
  • Сложность: Средняя (требуются базовые навыки работы с терминалом).
  • Время выполнения: 30–45 минут.
  • Результат: Полностью готовый к работе блог с поддержкой SSL (HTTPS), рассылок и высокой производительностью.
  • Главное преимущество: Полная приватность и масштабируемость при минимальных затратах на хостинг.

3. Что мы настраиваем и зачем: Ghost CMS против конкурентов

Схема: 3. Что мы настраиваем и зачем: Ghost CMS против конкурентов
Схема: 3. Что мы настраиваем и зачем: Ghost CMS против конкурентов

Ghost CMS — это не просто "еще один движок для сайта". Это узкоспециализированная издательская платформа, написанная на Node.js, которая радикально отличается от тяжеловесного WordPress или конструкторов вроде Wix. Ghost был создан бывшими разработчиками WordPress, которые устали от избыточности кода и решили сфокусироваться исключительно на профессиональной журналистике и контент-маркетинге.

Почему стоит выбрать Self-hosted установку на VPS вместо облачной версии Ghost Pro?

  • Экономия: Официальный хостинг Ghost Pro начинается от $9-25 в месяц с жесткими ограничениями по просмотрам и количеству подписчиков. На собственном VPS вы платите только за ресурсы сервера и можете обслуживать сотни тысяч посетителей за те же деньги.
  • Контроль данных: Все ваши медиафайлы, база данных подписчиков и настройки хранятся у вас. Это критично в эпоху цифровой цензуры и изменений правил платформ.
  • Гибкость: Вы можете устанавливать любые кастомные темы, интегрировать свои скрипты аналитики и настраивать серверный кэш так, как нужно именно вашему проекту.

В рамках этого туториала мы развернем Ghost в его нативной среде. Хотя существуют Docker-образы, официальный метод установки через ghost-cli считается золотым стандартом для продакшн-решений, так как он обеспечивает лучшую производительность и упрощает процесс обновления ядра системы.

4. Какой VPS-конфиг нужен под Ghost CMS

Схема: 4. Какой VPS-конфиг нужен под Ghost CMS
Схема: 4. Какой VPS-конфиг нужен под Ghost CMS

Ghost CMS — достаточно эффективная система, но она требовательна к оперативной памяти из-за использования Node.js. В 2026 году требования к ресурсам стали выше, так как современные версии MySQL и Node.js потребляют больше RAM для кэширования и быстрой обработки запросов.

Характеристика Минимально Рекомендуемо (для трафика)
Процессор (CPU) 1 Core (Shared) 2 Cores (Dedicated)
Оперативная память (RAM) 1 GB (с включенным SWAP) 2 GB или 4 GB
Диск (Storage) 20 GB SSD 50 GB+ NVMe SSD
ОС Ubuntu 24.04 LTS Ubuntu 26.04 LTS

Для стабильной работы небольшого личного блога или корпоративного сайта вполне достаточно начальной конфигурации. Однако, если вы планируете активно использовать встроенную систему рассылок Ghost (которая может генерировать нагрузку при массовой отправке), лучше ориентироваться на 2 ГБ оперативной памяти. Для проектов с высокой посещаемостью (от 500 000 уникальных посетителей в месяц) стоит рассмотреть переход на выделенные серверы для базы данных.

Если вы только начинаете, лучше всего будет взять VPS с 2 ГБ оперативной памяти и NVMe-накопителем. Это обеспечит мгновенную загрузку страниц и быструю работу панели администратора даже при загрузке тяжелых изображений.

Локация сервера: Выбирайте дата-центр максимально близко к вашей целевой аудитории. Для Ghost это особенно важно, так как время отклика (TTFB) напрямую влияет на SEO-показатели Core Web Vitals.

5. Подготовка сервера: безопасность и базовые утилиты

Схема: 5. Подготовка сервера: безопасность и базовые утилиты
Схема: 5. Подготовка сервера: безопасность и базовые утилиты

После того как вы получили доступ к чистому серверу по SSH, первым делом необходимо обеспечить его безопасность. Использовать root для повседневных задач и работы CMS — плохая практика.

Обновление системы

Сначала обновим индекс пакетов и сами пакеты до актуальных версий 2026 года:


sudo apt update && sudo apt upgrade -y

Создание системного пользователя

Ghost требует наличия обычного пользователя с правами sudo. Назовем его ghostadmin:


# Создаем пользователя
adduser ghostadmin

# Добавляем его в группу sudo
usermod -aG sudo ghostadmin

# Переключаемся на нового пользователя
su - ghostadmin

Настройка брандмауэра (UFW)

Нам нужно открыть порты для SSH, HTTP и HTTPS:


sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'
sudo ufw enable

Установка Fail2Ban

Для защиты от брутфорс-атак на SSH установим утилиту Fail2Ban:


sudo apt install fail2ban -y
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

6. Установка программного стека: Node.js, MySQL и Nginx

Схема: 6. Установка программного стека: Node.js, MySQL и Nginx
Схема: 6. Установка программного стека: Node.js, MySQL и Nginx

Ghost официально поддерживает только определенные версии ПО. В 2026 году мы ориентируемся на Node.js 24 или 26 LTS и MySQL 8.4.

Установка Nginx

Nginx будет выступать в роли реверс-прокси, принимая запросы из интернета и передавая их локально запущенному приложению Ghost.


sudo apt install nginx -y
sudo systemctl enable nginx

Установка MySQL 8.4 LTS

Ghost использует MySQL для хранения контента и данных пользователей. Мы установим актуальную LTS версию:


sudo apt install mysql-server -y

# Запускаем скрипт безопасности
sudo mysql_secure_installation

В процессе выполнения mysql_secure_installation рекомендуется включить плагин валидации паролей и удалить анонимных пользователей.

Установка Node.js

Для установки Node.js лучше всего использовать официальный репозиторий NodeSource, чтобы получить конкретную LTS-версию:


curl -fsSL https://deb.nodesource.com/setup_24.x | sudo -E bash -
sudo apt install -y nodejs

Проверьте корректность установки:


node -v # Должно быть v24.x.x или выше
npm -v

7. Установка и конфигурация Ghost через Ghost-CLI

Схема: 7. Установка и конфигурация Ghost через Ghost-CLI
Схема: 7. Установка и конфигурация Ghost через Ghost-CLI

Ghost-CLI — это основной инструмент для установки и управления Ghost. Он автоматизирует создание конфигов Nginx, настройку Systemd и получение SSL-сертификатов.

Установка Ghost-CLI


sudo npm install -g ghost-cli@latest

Подготовка директории

По правилам Linux, сторонние веб-приложения лучше размещать в /var/www/:


# Создаем папку (замените my-blog на ваше название)
sudo mkdir -p /var/www/ghost

# Назначаем владельцем нашего пользователя
sudo chown ghostadmin:ghostadmin /var/www/ghost
sudo chmod 775 /var/www/ghost

# Переходим в папку
cd /var/www/ghost

Запуск процесса установки

Теперь запускаем мастер установки. Убедитесь, что ваш домен уже направлен (A-запись) на IP вашего VPS.


ghost install

В процессе установки Ghost-CLI задаст несколько важных вопросов:

  • Blog URL: Введите ваш домен (например, https://example.com). Обязательно с https.
  • MySQL hostname: Оставьте localhost.
  • MySQL username / password: Введите данные пользователя root или созданного заранее пользователя БД.
  • Ghost database name: Можно оставить по умолчанию.
  • Set up a ghost MySQL user? Рекомендуется ответить "Yes".
  • Set up Nginx? Обязательно "Yes".
  • Set up SSL? Обязательно "Yes" (потребуется email для Let's Encrypt).
  • Set up systemd? Да, это позволит Ghost автоматически запускаться при старте сервера.
  • Start Ghost? Да.

После завершения вы увидите ссылку на панель администратора: https://example.com/ghost/. Зайдите туда немедленно, чтобы создать аккаунт администратора, иначе это может сделать кто-то другой.

8. Тонкая настройка производительности и HTTPS

Схема: 8. Тонкая настройка производительности и HTTPS
Схема: 8. Тонкая настройка производительности и HTTPS

Стандартная установка хороша, но для профессионального блога требуется дополнительная оптимизация.

Настройка кэширования в Nginx

Ghost отдает контент быстро, но статические файлы (картинки, JS, CSS) лучше кэшировать на стороне Nginx. Отредактируйте конфиг вашего сайта в /etc/nginx/sites-available/, добавив заголовки Cache-Control для статики.

Оптимизация изображений

Ghost умеет автоматически ресайзить изображения. Убедитесь, что в файле config.production.json включена обработка медиафайлов:


"imageOptimization": {
    "resize": true
}

Настройка почты (Mailgun)

Для работы рассылок и восстановления паролей Ghost требует SMTP-провайдера. Официально рекомендуется Mailgun, так как Ghost имеет с ним глубокую интеграцию через API для массовых рассылок. Данные вносятся в тот же config.production.json:


"mail": {
  "transport": "SMTP",
  "options": {
    "service": "Mailgun",
    "host": "smtp.eu.mailgun.org",
    "port": 587,
    "auth": {
      "user": "[email protected]",
      "pass": "your_password"
    }
  }
}

После изменения конфига всегда делайте ghost restart.

9. Бэкапы и обслуживание: стратегия выживания данных

Схема: 9. Бэкапы и обслуживание: стратегия выживания данных
Схема: 9. Бэкапы и обслуживание: стратегия выживания данных

Работа с Self-hosted решением накладывает ответственность за сохранность данных. В Ghost нужно бэкапить три вещи: базу данных, папку content (изображения и темы) и файл конфигурации.

Простой скрипт бэкапа

Создадим скрипт backup.sh, который будет архивировать данные и отправлять их в удаленное хранилище:


#!/bin/bash
BACKUP_PATH="/home/ghostadmin/backups"
GHOST_ROOT="/var/www/ghost"
DATE=$(date +%Y-%m-%d)

# Создаем папку бэкапа
mkdir -p $BACKUP_PATH

# Экспорт базы данных
sudo mysqldump ghost_production > $BACKUP_PATH/db_$DATE.sql

# Архивация контента
tar -czf $BACKUP_PATH/content_$DATE.tar.gz $GHOST_ROOT/content/

# Удаление старых бэкапов (старше 30 дней)
find $BACKUP_PATH -type f -mtime +30 -delete

Использование Restic для S3

Для более надежного хранения рекомендуется использовать restic или rclone для синхронизации бэкапов с S3-совместимым хранилищем (например, внешним объектным хранилищем). Это гарантирует, что даже при полной гибели VPS ваш контент останется в безопасности.

Обновление Ghost

Ghost обновляется очень часто. Процесс максимально упрощен:


cd /var/www/ghost
ghost update

Перед обновлением Ghost-CLI всегда проверяет совместимость версий Node.js и наличие бэкапа.

10. Troubleshooting + FAQ: решение типичных проблем

Ошибка: "Ghost-CLI needs to be updated"

Если вы давно не заходили на сервер, сначала обновите сам CLI: sudo npm install -g ghost-cli@latest, а затем запускайте обновление блога.

Ошибка 502 Bad Gateway

Это означает, что Nginx запущен, а Node.js процесс Ghost — нет. Проверьте статус: ghost ls или ghost run для просмотра логов в реальном времени. Часто причина кроется в нехватке оперативной памяти (OOM Killer убил процесс).

Как добавить SWAP, если мало RAM?

Если ваш VPS имеет только 1 ГБ RAM, обязательно добавьте файл подкачки:


sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

Какой VPS-конфиг минимально подойдёт?

Для запуска Ghost достаточно 1 ядра и 1 ГБ оперативной памяти. Однако для комфортной работы панели управления и быстрой сборки тем при обновлении мы настоятельно рекомендуем 2 ГБ RAM. Это предотвратит зависания MySQL в моменты пиковой нагрузки.

Что выбрать — VPS или dedicated для этой задачи?

В 99% случаев для Ghost CMS достаточно VPS. Выделенный сервер (dedicated) может потребоваться только в двух случаях: если у вас огромная база медиафайлов (терабайты изображений) или если ваш блог превратился в медиа-гигант с миллионами подписчиков и вы хотите вынести базу данных на отдельное физическое железо для максимальной безопасности.

Не приходят письма (рассылка)

Проверьте настройки портов. Многие VPS-провайдеры блокируют порт 25 по умолчанию. Используйте порт 587 (TLS) и убедитесь, что в Mailgun верифицированы все DNS-записи (SPF, DKIM, CNAME).

Как изменить лимит загрузки файлов в Nginx?

По умолчанию Nginx ограничивает загрузку файлов 1 МБ. Чтобы загружать большие картинки, добавьте client_max_body_size 50M; в блок http или server конфига Nginx.

11. Выводы и следующие шаги

Схема: 11. Выводы и следующие шаги
Схема: 11. Выводы и следующие шаги

Поздравляем! Вы развернули собственную профессиональную издательскую платформу на базе Ghost CMS. Теперь у вас есть быстрый, безопасный и полностью контролируемый инструмент для создания контента, который превосходит большинство коммерческих решений по скорости и удобству работы.

Ваши следующие шаги для развития проекта:

  • Выбор темы: Посетите маркетплейс Ghost или создайте свою тему на движке Handlebars. Ghost очень дружелюбен к разработчикам тем.
  • Настройка аналитики: Вместо тяжелого Google Analytics попробуйте легковесные и приватные альтернативы, такие как Plausible или Umami.
  • Монетизация: Настройте интеграцию со Stripe прямо в панели Ghost, чтобы начать продавать платные подписки на ваш контент.
  • SEO: Ghost уже оптимизирован для поисковиков "из коробки" (автоматические sitemaps, мета-теги, JSON-LD), но не забудьте настроить редиректы, если вы переезжаете с другой платформы.

Регулярно проверяйте обновления и следите за логами сервера. Собственный сервер — это не только свобода, но и ответственность за техническое состояние вашего цифрового дома.

Поделиться этой записью:

установка и настройка ghost cms на vps: пошаговое руководство по развертыванию профессионального блога
support_agent
Valebyte Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.