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

Подробный гайд по установке быстрой Ghost CMS на собственный VPS сервер. Разбираем требования, настройку Ubuntu, Node.js и запуск блога с нуля.

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

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

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

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

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

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

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

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

Тарифы на 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-канал!

Перейти

Читать далее

Монастырь в 80 км от Москвы, где зажигают камин и носят горячие пироги

Монастырь в 80 км от Москвы, где зажигают камин и носят горячие пироги

Если вы думаете, что все интересные места вокруг Москвы уже открыты и заезжены — Николо-Пешношский монастырь докажет обратное. XIV век, который никуда не делся Монастырь основан в 1361 году. Его заложил Мефодий — ученик Сергия Радонежского. По преданию, Мефодий в одиночку носил бревна и камни через реку — пешком, на себе. Река называлась

Успеть всё за 17 часов? Секрет старинных башенных часов в Александрове

Успеть всё за 17 часов? Секрет старинных башенных часов в Александрове

Представьте: лето, рассвет. На башне Александровской слободы, откуда временно управляет страной сбежавший из столицы Иван Грозный, тикают уникальные башенные часы XVII века. Не простые — они делят день на 17 часов! Почему не 12 или 24? Всё дело в Солнце. Неравные часы по‑солнечному В те времена сутки делили на дневные

Мошенники охотятся на владельцев доменов!

Мошенники охотятся на владельцев доменов!

Сегодня хотел предупредить об относительно новой схеме мошенничества. Точнее схема старая - фишинг. А вот жертвы на этот раз - владельцы доменов. В чем суть схемы? Мошенники подбирают домены, у которых оканчивается срок регистрации, и отправляют письмо на почтовый ящик администратора. В нем требуется срочная оплата для продления регистрации, иначе

Что посмотреть в Подмосковье? Ивантеевка

Что посмотреть в Подмосковье? Ивантеевка

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