Основная и единственная цель Ghost — создание идеального блога. Если Wordpress давно перестал быть просто блогами и превратился в полноценную CMS, то Ghost – полное противопоставление Wordpress. Это просто блог.



В этой статье мы рассмотрим процесс установки Ghost в InfoboxCloud с помощью Docker.

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

Разворачивая Ghost таким образом вы имеете гораздо больший контроль над своим блогом, чем при использовании Ghost как сервиса.


Подготовка окружения


1. Создайте сервер с CentOS 7 для установки Docker в InfoboxCloud. Для работы Docker сейчас необходима именно виртуальная машина, поэтому при создании сервера обязательно установите галочку «Разрешить управление ядром ОС».

Как правильно создать сервер в InfoboxCloud для Docker
Если у вас еще нет доступа в InfoboxCloud – закажите его.

После регистрации вы получите данные для доступа к панели управления на email. Войдите в панель управления по адресу: https://panel.infobox.ru

В разделе «Облачная инфраструктура» вашей подписки нажмите «Новый сервер» (при необходимости подписка меняется в правом верхнем углу в выпадающем меню).



Задайте необходимые параметры сервера. Обязательно выделите серверу 1 публичный IP–адрес и установите галочку «Разрешить управление ядром ОС», как показано на скриншоте ниже.



В списке доступных операционных систем выберите CentOS 7 и завершите создание сервера.



После этого данные для доступа к серверу придут к вам на электронную почту.

После создания сервера с CentOS 7 подключитесь к нему по SSH.

Мы подготовили скрипт, который позволит вам установить Docker и полезные утилиты для работы с Docker на такой сервер. Необходимые настройки будут выполнены автоматически.

Выполните команду для установки Docker и Compose:
bash <(curl -s http://repository.sandbox.infoboxcloud.ru/scripts/docker/centos7/install.sh)

Docker и compose будут установлены.

Можно создать образ с установленным docker в панели управления, нажав на сервер и далее «Создать образ». После этого из образа с Docker можно будет создавать новые сервера и не выполнять этот шаг повторно.

Установка Ghost


Создайте папку, в которой будут храниться файлы блога:
mkdir -p ~/sitename/blog

, где вместо sitename можно написать адрес вашего блога.

Создайте файл ~/sitename/docker-compose.yml со следующим содержанием:
sitename:
  image: ghost:latest
  ports:
  - 80:2368
  restart: always
  volumes:
  - ./blog:/var/lib/ghost

, где вместо sitename можно также указать имя вашего сайта.

В этом файле мы указываем, что нужно построить контейнер docker из официального образа ghost последней версии, пробросить внутренний порт 2368 на публичный 80, всегда перезапускать контейнер в случае падения сервисов в нем и записывать файлы базы данных блога в папку blog (чтобы при перестройке контейнера не потерять данные).

Если перед Ghost вам необходимо поставить балансировщик — пример создания связанных контейнеров с балансировщиком можно увидеть в этой статье.

Если вы не знаете, как отредактировать файл — подробности в этой статье в разделе «Как отредактировать текстовый файл».
Если вам интересно разобраться с Docker Compose – подробности тут.


Сохраните файл ~/sitename/docker-compose.yml и выполните команду:
docker-compose up -d
для развертывания контейнера с ghost.

Теперь вы можете войти в ваш блог по адресу:
http://ip–адрес вашего сервера

Ghost был успешно установлен.



Первоначальная настройка блога


Нам потребуется выполнить еще некоторое количество настроек самого блога.

Откройте файл ~/sitename/blog/config.js на редактирование. В нем есть различные секции, нас интересует секция development. Все настройки мы будем менять только в ней, не трогая остальные.



Хотя Ghost поддерживает варианты запуска «Development» и «Production», в Docker-шаблоне по-умолчанию запускается блог в Development конфигурации. Это говорит только о том, что используется секция Development в файле config.js. Сам Ghost уже установлен в Production конфигурации без лишних зависимостей и подходит для использования в продакшне. Пусть вас не смушает, что мы редактируем секцию конфигурации development. С появлением Docker для разработки гораздо удобнее запустить отдельный контейнер, а не настраивать несколько конфигураций в самом Ghost.

Наш блог будет наверняка распологаться в каком-то домене или поддомене. В DNS направьте запись A необходимого домена (например blog.frodo.com) на публичный ip–адрес сервера, который мы создали для Docker. Публичный ip–адрес — тот, к которому вы подключались по SSH.

В файле ~/sitename/blog/config.js в секции development установите в url адрес вашего домена, который будет использоваться для блога.



Теперь нам нужно настроить возможность отправки электронной почты блогом.

Для отправки писем рекомендуется использовать Mailgun. Зарегистрируйтесь в сервисе. После этого перейдите в раздел «Domains» в панели управления Mailgun, добавьте ваш домен. Далее нужно будет добавить дополнительные записи в DNS домена, о которых сообщит сервис. После прохождения верификации домена вы получите логин и пароль от электронной почты в нем. Ее и можно использовать для блога. Раздел mail в config.js для Mailgun должен выглядеть следующим образом:
mail: {
transport: 'SMTP',
    options: {
        service: 'Mailgun',
        auth: {
            user: ' ',
            pass: ' '
        }
    }
}

На забудьте указать ваши логин и пароль от Mailgun.
Обратите внимание, что мы удалили символы комментариев // перед каждой строкой почтовой секции config.js.

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

Для просмотра всех запущенных контейнеров выполните команду:
docker ps

Вы можете увидеть id–контейнера, как показано на скриншоте ниже:



Выполните перезагрузку контейнера по id:
docker restart e3acf62e49b4

, где e3acf62e49b4 замените на id вашего контейнера.

Теперь ваш блог успешно настроен!

Используем Ghost


Войдите в панель администрирования Ghost по адресу:
http://ip–адрес-сервера/ghost

Нажмите «Create your account» для создания аккаунта в Ghost.



Введите данные для регистрации аккаунта и нажмите «LAST STEP: Invite your team».



На последнем шаге вы можете пригласить команду для редактирования блога или просто нажать «I'll do this later» под кнопкой «Invite».



Теперь можно приступать к написанию статей.



Как получить пробную версию InfoboxCloud бесплатно?


Пришлите нам ваш адрес электронной почты и ФИО, в ответ получите данные для доступа к панели управления. Вы можете тестировать новый регион облака в течение 15 дней, далее можно перейти на полную версию облака.

Если у вас есть вопросы или замечания, напишите нам и мы с радостью ответим.

Успешного использования Ghost в InfoboxCloud!

Комментарии (7)


  1. RZimin
    11.09.2015 14:33

    А превью постов в режиме реального времени на великом и могучем они уже пофиксили, или все еще «в планах»?


    1. infobox
      11.09.2015 15:06
      +1

      Превью работает в реальном времени в том числе на великом и могучем.


      1. RZimin
        11.09.2015 16:29

        image


        1. nett00n
          12.09.2015 12:08

          Я порекомендовал бы вам почитать синтаксис Markdown. Одиночный разрыв строки всеми интерпритаторами Markdown. Если Вам нужен разрыв строки в Markdown, нужно ставить два разрыва строки:

          Первая строка
          
          Вторая строка
          

          Разумеется, возможно я неправильно понял, что вы имеете в виду


          1. RZimin
            14.09.2015 08:53

            Спасибо, но я знаю Markdown. Тут немного другое.
            image


            1. nett00n
              16.09.2015 14:49

              А, шрифты. Спасибо. Так понятно.


              1. mukizu
                16.09.2015 15:06

                Причем тут шрифты?

                Для латиницы перенос в редакторе работает, для кириллицы — нет.