Как установить Ghost CMS на свой VPS: пошаговая инструкция

Антон Белицкий
14 минут чтения

Все началось с того, что я в очередной раз подзабросил свои соцсети, блог и каналы. Блог на WordPress требовал значительной доработки. Telegram — вложений в привлечение подписчиков. Хотелось пространства, где я не ограничен лимитами по знакам, которые не попадут завтра под очередные блокировки. Поиски привели меня к ранее неизвестному Ghost.

Простой и понятный интерфейс, ничего лишнего, возможность установить на собственный сервер и ни от кого не зависеть. Выбор был очевиден.

Что такое Ghost CMS и почему не WordPress?

Ghost — это движок для блогов и медиа, заточенный под одно: писать и публиковать тексты. Никаких 50 тысяч плагинов, конструкторов страниц и магазинов на JavaScript. Открыл редактор — пишешь. Встроены подписки, рассылки, платный контент. Всё, что нужно автору, и почти ничего сверху.

WordPress пытается быть всем сразу: блог, интернет-магазин, лендинг, форум, корпоративный сайт. Из-за этого он медленный, требует постоянного обслуживания и обрастает плагинами, которые конфликтуют друг с другом. Ghost — это осознанный отказ от универсальности в пользу скорости и простоты.

Что нужно для установки

Для установки понадобится не так уж и много — виртуальный сервер (VPS). Я выбрал Beget. Причем для старта хватит самой простой конфигурации за 330₽ в месяц.

Скриншот тарифов на VPS хостинг Beget для установки Ghost CMS
Тарифы на VPS Beget

Операционную систему выбрал Ubuntu 24.04 LTS, как наиболее совместимую.

Так же понадобится доменное имя. Зарегистрировать его можно все на том же Beget.

Когда сервер уже куплен, необходимо зайти в панель управлеия DNS и направить A-запись вашего домена (например, `blog.domain.ru`) на IP-адрес нового сервера. Без этого Ghost не сможет выпустить бесплатный SSL-сертификат при установке.

Первичная настройка сервера

Подключаемся к серверу через терминал от имени root:
ssh root@IP_СЕРВЕРА

Так как на сервере 1 Гб оперативной памяти, установка может зависнуть. Создаем файл подкачки (Swap) на 2 ГБ. Вводим команды по очереди:

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

Ghost категорически запрещает установку от имени пользователя root ради безопасности. Создаем нового пользователя:

# Обновляем систему
apt update && apt upgrade -y

# Создаем пользователя ghostadmin (придумайте пароль, остальные поля пропустите через Enter)
adduser ghostadmin

# Даем ему права администратора
usermod -aG sudo ghostadmin

# Переключаемся на этого пользователя (ВСЕ ДАЛЬНЕЙШИЕ ШАГИ ДЕЛАЕМ ОТ НЕГО!)
su - ghostadmin

Установка необходимых компонентов

Выполняем команды от имени ghostadmin. В процессе система может запросить пароль пользователя ghostadmin.

# Устанавливаем NGINX и MySQL
sudo apt install nginx -y
sudo apt install mysql-server -y

# Задаем пароль для базы данных 
# В примере ниже пароль: YOUR_PASSWORD
sudo mysql -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'YOUR_PASSWORD'; FLUSH PRIVILEGES;"

# Устанавливаем Node.js (Для новых версий Ghost СТРОГО версия 22.x)
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt install -y nodejs

Установка Ghost-CLI и подготовка директории

Устанавливаем официальную утилиту и создаем папку для блога.

# Устанавливаем Ghost-CLI
sudo npm install ghost-cli@latest -g

# Создаем папку и выдаем права
sudo mkdir -p /var/www/ghost
sudo chown ghostadmin:ghostadmin /var/www/ghost
sudo chmod 775 /var/www/ghost

# ПЕРЕХОДИМ В ПАПКУ (Обязательно перед установкой!)
cd /var/www/ghost

Находясь внутри папки /var/www/ghost, запускаем установку:

ghost install

Установщик задаст несколько вопросов (отвечайте внимательно):

  1. Blog URL: Введите домен с https (например: https://blog.domain.ru)
  2. MySQL hostname: Нажмите Enter (оставит localhost)
  3. MySQL username: Введите root
  4. MySQL password: Введите пароль из Шага 3 (например: YOUR_PASSWORD)
  5. Ghost database name: Нажмите Enter
  6. Set up a ghost MySQL user? Y
  7. Set up NGINX? Y
  8. Set up SSL? Y (попросит ваш email, нужнен для сертификата)
  9. Set up systemd? Y
  10. Start Ghost? Y

Установка завершена! Админка доступна по адресу: https://вашдомен.ru/ghost

Вместо заключения

Эту статью вы читаете как раз на моей новой площадке. Впереди еще немало работы. Нужно подключить почтовый сервер, а так же сделать множество настроек, но об этом в других статьях.

Подписывайтесь так же на мой Telegram-канал!


Перейти


Больше на Антон Белицкий

Подпишитесь, чтобы получать последние записи по электронной почте.

Метки: