Полная инструкция по созданию сайта на CMS Ghost. Часть 1. Установка и настройка на VPS сервере.

Полная инструкция по созданию сайта на CMS Ghost.  Часть 1. Установка и настройка на VPS сервере.

В сети, для создания своего блога или корпоративного медиа сайта, огромной популярностью пользуется Wordpress, но это далеко не единственная система по управлению контентом сайта (CMS) и сейчас я расскажу о существовании очень шустрой CMS Ghost (в создании которой, к слову, поучаствовали разработчики Wordpress) . И именно этот сайт сделан на CMS Ghost.

Данная инструкция по установке и настройке блога на Ghost, будет разбита на две части:

  • 1 часть - расскажу, как установить сайт на VPS сервер.
  • 2 часть - покажу, как  настроить внешний вид твоего блога.

Содержание 1 части:

  • Чем хорош GHOST?
  • Устанавливаем GHOST за 30 минут

Чем хорош GHOST?

Ghost - это не просто блог. Это полноценное медиа издание, в котором можно сделать закрытый клуб ваших подписчиков с месячной и годовой подпиской. (аналог этого - Patreon).

Сравнение платных подписок с популярными платформами медиа изданий
Пример того, как может выглядеть страница подписки. (Можешь посмотреть тут)

Ghost подойдёт всем тем, кто создаёт контент (причем неважно какой это контент - это может быть видео, аудио, текстовой формат... всё что угодно), а именно:

  • Блогерам и контент-креэйторам;
  • Предпринимателям, кому есть что рассказать;
  • Некоммерческим организациям;
  • Крупным медиа-изданиям.

Перечислю несколько преимуществ данной CMS:

  • Бесплатная;
  • Быстрая установка и минимальное количество предварительных настроек;
  • Имеет оптимизацию в SEO (уже настроены AMP и Турбо-страницы);
  • Быстрая скорость загрузки страницы в отличии от других CMS;
  • Простота в использовании;
  • Имеет огромное количество интеграций с другими сервисами.

Как видно с графика - Ghost не так популярен, как Wordpress, но удачно используется там, где огромный поток трафика на сайт.

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

Список компаний явно внушающий доверие.

В этом гайде, мы самостоятельно и бесплатно установим Ghost CMS на VPS сервер

Устанавливаем GHOST за 30 минут

Ghost написана на Node.js и требует небольших настроек MySQL и Nginx сервера, но этот процесс, как вы убедитесь, не такой сложный

Создание VPS сервера

Для начала нужно будет выбрать VPS сервер.

🔥
В качестве VPS сервера я выбрал Beget - дешёвые и отказоустойчивые сервера.

Для наших целей подойдёт самый дешёвый тариф, но в дальнейшем, если вам нужна будет большая производительность, то 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';
🔥
Если запрос будет ругаться на отсутствие пользователя root, вместо ALTER введи CREATE

Пароль установлен, выходи из MySQL

exit

Далее необходимо будет установить поддерживаемую версию Node в масштабах всей системы способом, описанным ниже

curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash
sudo apt-get install -y nodejs

Теперь, установим Ghost-CLI - это инструмент командной строки, который поможет быстро и легко установить и настроить Ghost для использования.

Создадим новую директорию для сайта.

🔥
Устанавливать ghost в каталоги пользователей, например /root или /home/user нельзя, поскольку это приводит к нарушению настройки.
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. Изменение и настройка шаблона сайта

Как создать сайт Ghost. Часть 2. Изменение и настройка шаблона сайта.
Эта часть статьи расскажет, где скачивать шаблоны сайта Ghost, как их изменять и как настроить почтовый сервер.
Вторая часть статьи доступна по этой ссылке