Узнайте, как настроить платформу блогов Ghost в качестве личного блога в среде Docker (или Docker Swarm). Все необходимые файлы включены.

Если вы читаете это, значит, вы решили создать личный блог с помощью программного обеспечения для ведения блогов Ghost и ищете способ установить его в среде Docker (или Docker Swarm). Не ищите больше, вы в правильном месте!

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

Если вы хотите увидеть пример платформы блогов Ghost, вы можете проверить мою личную часть:



Зачем использовать Призрака?

Ghost — это платформа для ведения блогов с открытым исходным кодом, которая используется для создания профессионального блога. Он был выпущен в октябре 2013 года как простая альтернатива WordPress, потому что он становился слишком сложным. Ghost работает в Node.js и написан на JavaScript.

Вот основные функции, которые предоставляет программное обеспечение для ведения блога Ghost:

  • Поделитесь частной ссылкой на любой пост. Это полезно для обзора. Кроме того, вы можете поделиться им со всеми, а не только с людьми, имеющими учетную запись на платформе статей.
  • У Ghost есть отличный редактор, который позволяет вставлять фрагменты кода (с помощью Prismjs), YouTube, Twitter, Codepen и т. д.
  • Вы можете запланировать каждую публикацию так, чтобы она была опубликована точно в выбранную вами дату.
  • Каждый пост/статью можно оптимизировать с точки зрения SEO
  • Вы можете легко добавлять и управлять авторами
  • У Ghost уже есть более сотни приложений, таких как Slack, Stripe, Shopify и т. д.
  • Есть несколько тем, которые можно настроить, и вы можете вручную ввести свой личный код на сайт и в каждую статью.
  • Пользователи могут подписаться на рассылку новостей и/или могут стать спонсорами вашего блога.

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

Предпосылка

Чтобы выполнить каждый шаг в этом руководстве и в конце иметь работающую платформу для ведения блогов Ghost, вам необходимо иметь работающую среду Docker Swarm. Для этого вам следует прочитать эту статью:



Кроме того, вам нужен балансировщик нагрузки Traefik, который используется для предоставления SSL-сертификатов Let’s encrypt и для перенаправления ваших сервисов в вашей среде Docker Swarm. Чтобы узнать об этом, вы можете прочитать первую главу этого руководства:



Кроме того, я предоставлю файлы для запуска платформы блогов Ghost на любом сервере, на котором работает Docker с балансировщиком нагрузки Traefik. Прочтите эту статью, чтобы понять, как установить Traefik в простой среде Docker:



Установить призрак

Докер Рой

Ghost будет установлен вместе с Docker Compose. Файл Compose содержит имя службы, настройки уникального URL-адреса Traefik и сертификат SSL. Кроме того, есть два промежуточных ПО, которые используются для пересылки запросов на основной сайт.

Чтобы установить Ghost в свой Docker Swarm, вы можете вставить следующий код в свой файл docker-compose.yml, который будет объяснен позже.

Строка 4: во время установки будет использоваться последняя версия Ghost v4.

Строка 6. URL-адрес основного блога будет определен как переменная среды в службе Docker.

Строка 7–12: этот раздел можно использовать для настройки конфигурации почты для отправки регистрационных писем, приглашений, сброса пароля или ссылок для входа в систему. Этот адрес электронной почты нельзя использовать для рассылки информационных бюллетеней. Для этой функции вам необходимо настроить такой сервис, как Mailgun. Об этом подробнее здесь".

Строка 13–14: содержимое веб-сайта будет сохранено как постоянный том в вашей среде Docker.

Строка 15–16: здесь будет использоваться основная сеть traefik. Это важно, поскольку в противном случае Traefik не сможет пересылать запросы службе.

Строка 18–20: служба будет развернута на узле Docker Swarm только в том случае, если метка blogs.knulst имеет значение true. Этого можно добиться, выполнив следующую команду перед развертыванием docker-compose.yml в стеке:

Замените ID_OF_NODE_TO_USE на правильный идентификатор любого рабочего/управляющего узла вашего Docker Swarm, на котором должен работать сервис.

Строка 21–31. Настройте стандартную конфигурацию службы, развернутой в Docker Swarm, с сертификатами Traefik и Let’s Encrypt. В строках 19 и 22 для этой службы зарегистрированы три URL-адреса: www.${DOMAIN}, ${DOMAIN} и blog.${DOMAIN}.

Строка 32: порт, используемый контейнером Docker для блогов Ghost. Нужно для Траефика.

Строка 33–35: создает постоянное промежуточное ПО Traefik, которое перенаправляет каждый запрос из blog.${DOMAIN} на www.${DOMAIN}.

Строка 36–38: создает постоянное промежуточное ПО Traefik, которое перенаправляет каждый запрос с ${DOMAIN} на www.${DOMAIN}.

Строка 39: активирует ранее созданное промежуточное ПО для этой службы. Это сделано потому, что я хочу иметь только один основной веб-сайт для своего блога, но несколько URL-адресов для доступа к нему.

Перед развертыванием (или повторным развертыванием) несколько переменных среды должны быть установлены с помощью (настройте их в соответствии с вашими потребностями):

export DOMAIN=knulst.de
export MAIL_HOST=smtp.your-domain.de
export MAIL_PORT=587
export [email protected]
export MAIL_PASS=unbelievablehowsecurethisis
export [email protected] 

Затем вы можете развернуть стек Docker Swarm, выполнив:

docker stack deploy -c docker-compose.yml blog

Докер

Если у вас нет запущенного Docker Swarm, вы можете скачать этот файл Compose.

В этом файле есть только два отличия от файла Docker Swarm Compose. Первый находится в строке 17, где используется новая настройка: restart: always. Эта конфигурация используется для автоматического перезапуска службы Docker, если она была прервана. Другое изменение заключается в том, что метки удаляются из ключевого слова deploy - и помещаются в более высокий порядок в файле Compose. Это сделано потому, что развертывание используется только в среде Docker Swarm, но метки также можно использовать в простой среде Docker.

Имейте в виду, что это будет работать только в том случае, если у вас есть работающий балансировщик нагрузки Traefik.

Перед запуском службы докеров необходимо установить несколько переменных среды (настройте их в соответствии с вашими потребностями):

export DOMAIN=knulst.de
export MAIL_HOST=smtp.your-domain.de
export MAIL_PORT=587
export [email protected]
export MAIL_PASS=unbelievablehowsecurethisis
export [email protected]

Затем вы можете запустить службу Docker, выполнив:

docker-compose up -d

Настроить призрак

Если вы достигли этого шага, блог Ghost уже установлен на вашем URL-адресе с темой Casper по умолчанию и будет выглядеть так:

Теперь вам нужно настроить свой экземпляр блога Ghost, открыв свой веб-сайт и добавив путь-призрак, чтобы открыть меню администратора (должен быть https://your-domain.de/ghost).

Если вы открываете меню администратора, вы должны установить заголовок, свое имя, адрес электронной почты и безопасный пароль:

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

Последним шагом будет настройка личных настроек вашего только что созданного блога. Для этого вы можете открыть настройки блога Ghost (https://your-domain.de/ghost/#/settings), которые должны выглядеть так:

Выберите Общие и настройте все под свои нужды. После этого вы должны открыть Дизайн и установить подходящую вам тему. Могу порекомендовать Либлинг Эдуардо Гомеса. Он уже имеет встроенные переводы и выглядит очень хорошо.

Кроме того, я бы посоветовал выбрать Членство, подключить свою учетную запись Stripe и включить платную регистрацию в качестве дополнительной альтернативы членству. В своем блоге я тоже сделал это, но я не предоставляю дополнительный контент только платным участникам. Он активируется только в том случае, если кто-то хочет спонсировать меня независимо от предоставленного контента.

Заключительные примечания

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

Это конец этого урока. Как только вы закончите настройку своего личного блога, поделитесь им со мной здесь или в Твиттере. Я буду рад это увидеть!

Кроме того, не стесняйтесь связаться со мной в LinkedIn, Twitter и GitHub.

Эта статья изначально была опубликована в моем блоге по адресу https://www.paulsblog.dev/how-to-self-host-ghost-blogging-platform-on-docker-docker-swarm/.