В сети, для создания своего блога или корпоративного медиа сайта, огромной популярностью пользуется Wordpress, но это далеко не единственная система по управлению контентом сайта (CMS) и сейчас я расскажу о существовании очень шустрой CMS Ghost (в создании которой, к слову, поучаствовали разработчики Wordpress) . И именно этот сайт сделан на CMS Ghost.
Данная инструкция по установке и настройке блога на Ghost, будет разбита на две части:
- 1 часть - расскажу, как установить сайт на VPS сервер.
- 2 часть - покажу, как настроить внешний вид твоего блога.
Содержание 1 части:
- Чем хорош GHOST?
- Устанавливаем GHOST за 30 минут
Чем хорош GHOST?
Ghost - это не просто блог. Это полноценное медиа издание, в котором можно сделать закрытый клуб ваших подписчиков с месячной и годовой подпиской. (аналог этого - Patreon).


Ghost подойдёт всем тем, кто создаёт контент (причем неважно какой это контент - это может быть видео, аудио, текстовой формат... всё что угодно), а именно:
- Блогерам и контент-креэйторам;
- Предпринимателям, кому есть что рассказать;
- Некоммерческим организациям;
- Крупным медиа-изданиям.
Перечислю несколько преимуществ данной CMS:
- Бесплатная;
- Быстрая установка и минимальное количество предварительных настроек;
- Имеет оптимизацию в SEO (уже настроены AMP и Турбо-страницы);
- Быстрая скорость загрузки страницы в отличии от других CMS;
- Простота в использовании;
- Имеет огромное количество интеграций с другими сервисами.

Крупные компании используют Ghost для своих корпоративных медиа и среди таких компаний есть NASA, Apple, Mozilla и др.

В этом гайде, мы самостоятельно и бесплатно установим Ghost CMS на VPS сервер
Устанавливаем GHOST за 30 минут
Ghost написана на Node.js и требует небольших настроек MySQL и Nginx сервера, но этот процесс, как вы убедитесь, не такой сложный
Создание VPS сервера
Для начала нужно будет выбрать VPS сервер.
Для наших целей подойдёт самый дешёвый тариф, но в дальнейшем, если вам нужна будет большая производительность, то Beget позволяет в пару кликов увеличить конфигурацию VPS сервера.

Операционную систему выберем Ubuntu 22.04.
Конфигурировать систему будем через терминал, поэтому нам понадобится SSH ключ.
Если он у вас уже есть, можно добавить публичный SSH ключ:

Если у вас нет SSH ключа, то пока остановитесь на этом шаге - сейчас я покажу, как вам создать SSH ключ.
Создание SSH ключа на Windows
Для этого скачай и установи PuTTY (актуально для Windows. Если у тебя другая система, используй любую другую аналогичную программу).
После установки, тебе нужно будет сгенерировать приватный ключ SSH - для этого открой PuTTY Key Generator и жми "Generate" (для генерации ключа, нужно поводить мышкой по экрану 😀).


Затем заполни "Key passphrase" (любой пароль, на твоё усмотрение).

Выдели и скопируй весь публичный ключ (учти, что поле большое и нужно ещё немного проскролить вниз) - этот ключ нужно будет вставить в окно "Добавление SSH ключа" вашего VPS сервера на Beget.
Перед закрытием PuTTY, не забудь обязательно сохранить приватный и публичный ключ на свой диск: Save Private Key и Save Public Key.

После создания VPS сервера, откроется дашборд, где ты сможешь увидеть IP адресс сервера (Внешний IP). Скопируй его - он понадобится для подключения по SSH.

Настроим соединение в самом PuTTY.
В PuTTY, в поле Host Name - вставляй IP (тот, который скопирол выше. На фото PuTTY IP другой и показан только для примера). Port оставь тайкой же: 22.




Потом в PuTTY переходи на вкладку SSH - Auth и в поле "Private key file...", открой сохраненный приватный ключ (который ты генерировал ранее, сверху по тексту).
Во вкладке "Connection" - "Data" , в поле Auto-login username - укажи root (чтобы каждый раз не вводить логин).
Вот ты и закончил настройку PuTTY, но чтобы не приходилось заново повторять всё вновь, не забудь сохранить эту сессию - зайди на вкладку "Session", в поле Saved Sessions пиши имя и жми Save и Open
Откроется заветный терминал и попросит ввести фразу-пароль (её ты вводил при генерации приватного ключа).
Создание SSH ключа на Linux
На Linux этот процесс куда быстрее.
По умолчанию в корневой директории пользователя находится директория .ssh, если по какой то причине её нет, то создаём её командой
mkdir ~/.ssh
1) Cоздаем открытый и закрытый ключ
ssh-keygen -t rsa -q -N '' -f ~/.ssh/id_rsa
Подробнее о ключах можете посмотреть с помощью команды
ssh-keygen --help
2) Выводим и копируем публичный ключ
cat ~/.ssh/id_rsa.pub
Вставляем этот ключ в Beget

И создаём виртуальный сервер
3) Авторизуемся на удаленном сервере
ssh root@<IP адресс твоего VPS сервера>
Установка Ghost
Прежде чем приступить к работе, вы должны настроить рабочую DNS A-запись вашего домена, указывающую на IP-адрес сервера. Это должно быть сделано заранее, чтобы можно было настроить SSL во время установки.
Сделать это можно из "Управление доменами и поддоменами" в Beget.
Если домена ещё нет, его можно зарегистрировать там же.


Подключаемся к удалённому серверу
ssh root@<IP адресс твоего VPS сервера>
Когда подключение к удалённому серверу выполнено, переходим к самому главному.
Для начала нужно добавить нового пользователя от имени которого и будет производиться вся настройка.
Вместо <user> введи своё значение
adduser <user>
Не используй в качестве имени пользователя имя ghost, это вызовет конфликты при дальнейшей установке
Добавьте пользователя в группу суперпользователей, чтобы разблокировать права администратора
usermod -aG sudo <user>
Затем войди в систему как новый пользователь
su - <user>
Убедись, что списки пакетов и установленные пакеты обновлены.
sudo apt-get update
sudo apt-get upgrade
Ghost использует сервер NGINX, а для настройки SSL требуется NGINX 1.9.5 или выше.
Установим NGINX
sudo apt-get install nginx
Если ufw
был активирован, брандмауэр разрешает HTTP и HTTPS-соединения.
Открыть брандмауэр
sudo ufw allow 'Nginx Full'
Далее необходимо установить MySQL для использования в качестве рабочей базы данных.
sudo apt-get install mysql-server
Поскольку мы используем Ubuntu, нужно установить пароль на пользователя базы данных для обеспечения совместимости с ghost-cli
sudo mysql
Откроется shell управления mysql.
Установим пароль для пользователя root. Вместо password введи свой пароль
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
Пароль установлен, выходи из MySQL
exit
Далее необходимо будет установить поддерживаемую версию Node в масштабах всей системы способом, описанным ниже
curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash
sudo apt-get install -y nodejs
Теперь, установим Ghost-CLI - это инструмент командной строки, который поможет быстро и легко установить и настроить Ghost для использования.
Создадим новую директорию для сайта.
sudo mkdir -p /var/www/sitename
Вместо sitename введи своё название
Установи владельца каталога: Замените <user> именем вашего пользователя
sudo chown <user>:<user> /var/www/sitename
Установи правильные разрешения
sudo chmod 775 /var/www/sitename
И перейди в нужный каталог
cd /var/www/sitename
Теперь устанавливаем Ghost с помощью одной последней команды
ghost install
Во время установки CLI задаст ряд вопросов для настройки сайта.
URL блога
Введите точный URL-адрес, по которому будет доступна ваша публикация, и укажите протокол HTTP или HTTPS. Например, https://example.com
. Если вы используете HTTPS, Ghost-CLI предложит настроить SSL для вас. Использование IP-адресов приведет к ошибкам.
Имя хоста MySQL
Это определяет, откуда можно получить доступ к вашей базе данных MySQL, используйте localhost
(нажмите Enter, чтобы использовать значение по умолчанию).
Имя пользователя / пароль MySQL
Введите root
. Затем введите пароль для вашего пользователя (его вы прописывали при установке MySQL)
Имя базы данных Ghost
Нажимаем Enter, соглашаясь с именем по-умолчанию.
Настроить пользователя ghost MySQL? (Рекомендуется)
Соглашаемся, пусть создастся отдельный пользователь с доступом только в БД Ghost.
Настроить NGINX? (Рекомендуется)
Соглашаемся с автоматической настройкой сервера nginx.
Настроить SSL? (Рекомендуется)
Если вы использовали https
URL-адрес блога и уже указали свой домен в нужное место, Ghost-CLI может автоматически настроить SSL для вас с помощью Let's Encrypt . В качестве альтернативы вы можете сделать это позже, запустив ghost setup ssl
в любое время.
Для настройки сертификации SSL требуется адрес электронной почты, чтобы вы могли быть в курсе, если возникнут какие-либо проблемы с вашим сертификатом, в том числе во время обновления.
Настроить systemd? (Рекомендуется)
systemd
это рекомендуемый инструмент диспетчера процессов для бесперебойной работы Ghost. Мы рекомендуем выбиратьyes
, но можно настроить собственное управление процессами.
Запустить Ghost?
Выбор yes
запускает Ghost и заставляет ваш сайт работать.
Заходим на готовый сайт!
Вот так выглядит стандартная тема Ghost:

Переходи в админ панель сайта (расположен https://*твой домен*/ghost). Там тебя будет ждать приветственный экран по созданию аккаунта - там всё стандартно. Последний третий экран можно просто пропустить, а можно сразу добавить дополнительных автором в блог.
На этом первая часть завершена - сайт полностью установлен и готов к работе!
Во второй части этой инструкции, обсудим возможность кастомизации - найдём и поменяем тему сайта, а также настроим её под себя.
Часть 2. Изменение и настройка шаблона сайта
