Как развернуть блог Ghost с помощью Docker — CloudSavvy IT

Логотип платформы для создания контента Ghost

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

Ghost — это программное обеспечение с открытым исходным кодом, поддерживаемое официальной службой Ghost(Pro). Вы можете установить его на свой собственный сервер, добавив Node.js и используя Ghost CLI для настройки своего стека. Ghost также доступен в виде образа Docker, который объединяет все зависимости для вас.

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

Запуск контейнера-призрака

Вы можете запустить базовый сайт Ghost с помощью одной команды Docker:

docker run -d -p 2368:2368 —name simple-ghost ghost:4

Это запустит Ghost на порту по умолчанию 2368. Посетите http://localhost:2368, чтобы просмотреть свой сайт, или http://localhost:2368/ghost, чтобы получить доступ к панели администратора Ghost. Вам нужно будет указать некоторые настройки первого запуска, чтобы завершить установку Ghost и создать начальную учетную запись пользователя.

Этот подход отлично подходит для быстрых экспериментов, если вы только пробуете Ghost. Однако мы еще не настроили постоянное хранилище, поэтому ваши данные будут потеряны при остановке контейнера.

Вот более полный пример использования Docker Compose для настройки Ghost с томом Docker. Смонтируйте том в каталог /var/lib/ghost/content, чтобы хранить данные Ghost вне контейнера.

версия: «3» сервисы: призрак: образ: призрак:4 порты: — 8080:2368 среда: URL: https://ghost.example.com тома: — призрак:/var/lib/ghost/content перезапуск: если- остановленные тома

Этот файл Compose демонстрирует несколько других изменений в конфигурации контейнера. Порт 2368, предоставляемый контейнером, сопоставляется с портом 8080 на вашем хосте, что позволяет использовать localhost:8080 для доступа к Ghost. Политика перезапуска изменена на «если не остановлен», чтобы ваш сайт автоматически открывался после перезагрузки хоста.

Теперь используйте Compose, чтобы открыть свой сайт:

docker-compose up -d

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

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

Файлы конфигурации Ghost используют вложенные объекты JSON для хранения значений. Вы можете преобразовать ключи JSON в их аналоги переменных среды, заменив каждый уровень дерева символами __ (двойное подчеркивание):

# в конфигурационном файле JSON { «mail»: { «transport»: «SMTP» } } # в качестве переменной окружения mail__transport=SMTP

Используйте поле среды в вашем файле docker-compose.yml, чтобы передать эти параметры вашему контейнеру Ghost:

версия: «3» службы: призрак: среда: mail__transport: SMTP

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

Параметр URL особенно важен, так как он требуется для рабочих сайтов. Это определяет URL-адрес, который внешние посетители будут использовать для доступа к вашему сайту. Установите это на доменное имя вашего сайта в файле docker-compose.yml:

среда: URL-адрес: https://ghost.example.com

Использование внешней базы данных

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

services: ghost: # … environment: database__client: mysql database__connection__host: ghost_mysql database__connection_user: root database__connection__password: databasePw database_connection__database: ghost ghost_mysql: image: mysql:5.7 expose: — 3306 environment: MYSQL_DATABASE: ghost MYSQL_ROOT_PASSWORD: databasePw volumes: — mysql:/ перезапуск var/lib/mysql: если не остановлены тома: mysql:

Этот файл Compose включает другую службу, которая запускает MySQL в дополнительном контейнере. Переменные среды устанавливаются в службе Ghost для предоставления сведений о соединении с MySQL. Для сохранения файлов хранилища базы данных создается отдельный том mysql.

Compose автоматически связывает сервисы с сетью Docker. Ghost может получить доступ к контейнеру ghost_mysql, используя имя службы в качестве имени хоста. Если вы хотите использовать существующую базу данных MySQL без Dockerized, вы можете удалить определение службы ghost_mysql и вместо этого указать IP-адрес вашего сервера MySQL, имя схемы базы данных и учетные данные пользователя.

Проксирование трафика в ваш контейнер

Теперь ваш сайт Ghost должен работать, но он по-прежнему доступен через порт 8080. Если вы не будете запускать что-либо еще на своем хосте, вы можете вместо этого привязать порт 80 или 443, чтобы сделать его напрямую доступным через доменное имя вашего сервера. В других ситуациях используйте обратный прокси-сервер, например NGINX, для перенаправления трафика из Интернета в контейнер Ghost.

Добавьте NGINX на свой хост:

sudo apt update sudo apt install nginx # Разрешить трафик HTTP/HTTPS через брандмауэр sudo ufw allow 80 sudo ufw allow 443

Определите хост NGINX для вашего сайта в /etc/nginx/sites-available/ghost.example.com:

сервер { имя_сервера ghost.example.com; индекс index.html; access_log /var/log/nginx/ghost_access.log error_log /var/log/nginx/ghost_error.log ошибка; местоположение / { proxy_pass http://127.0.0.1:8080; прокси_перенаправление выключено; proxy_set_header Хост $http_host; proxy_set_header X-Исходный IP-адрес $remote_addr; } }

Этот файл настраивает NGINX для перенаправления трафика на ghost.example.com через порт 8080 на локальном хосте, который ранее был привязан к вашему контейнеру Ghost. Включите новый файл конфигурации, связав его с каталогом с поддержкой сайтов NGINX:

sudo ln -s /etc/nginx/sites-available/ghost.example.com /etc/nginx/sites-enabled/ghost.example.com

Перезапустите NGINX, чтобы изменения вступили в силу:

перезапуск службы sudo nginx

Теперь вы можете настроить SSL с помощью бесплатного сервиса Let’s Encrypt. Добавьте Certbot от Let’s Encrypt для автоматизации выпуска и обновления сертификатов:

sudo apt установить certbot

Используйте Certbot для получения сертификатов для вашего сайта NGINX:

sudo certbot —nginx

Certbot прочитает ваши сайты NGINX и сгенерирует сертификаты для их полей конфигурации имя_сервера. Он автоматически перенастроит NGINX для обслуживания сертификата на вашем сайте. Теперь вы сможете получить доступ к своему блогу Ghost, посетив свое доменное имя через HTTPS.

Хотя в этой статье мы сосредоточились на NGINX, существуют и другие варианты проксирования веб-трафика через ваш контейнер Ghost. Traefik — ведущий претендент, получивший первоклассную поддержку Docker. Развертывание экземпляра Traefik позволит вам настроить маршрутизацию и автоматический SSL с помощью меток Docker, которые вы установили в своем контейнере Ghost.

Управление обновлениями Ghost

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

Если вы помечаете основную версию образа в файле docker-compose.yml, например, ghost:4, вы можете выполнить обновление до последней дополнительной версии, запустив docker-compose up с флагом —pull:

docker-compose up -d —pull

Это указывает Compose проверять наличие изменений в теге изображения и извлекать обновленную версию, когда она доступна. Он заменит ваши контейнеры новыми экземплярами, используя последнюю версию образа, соответствующую тегу.

Если вы хотите изменить используемый тег, обновите ссылку на изображение в файле docker-compose.yml. Повторите команду docker-compose up -d, чтобы получить образ и запустить новые контейнеры. Например, если Ghost v5 выйдет в будущем, вы можете изменить файл docker-compose.yml на image: ghost:5, чтобы перейти на новую основную версию.

Docker позволяет легко получать обновления Ghost, загружая последний образ и заменяя ваши контейнеры. Тем не менее, вы все равно должны обращать внимание на изменения, которые вы применяете. Проконсультируйтесь с журналом изменений Ghost, прежде чем приступать к серьезному обновлению, если вам нужно предпринять дополнительные шаги для завершения миграции.

Использование Ghost-Cli

ghost-cli доступен в образе Ghost Docker. Эта утилита используется для настройки и обслуживания Ghost, когда он установлен в традиционных неконтейнерных средах.

Вы можете получить доступ к ghost-cli через Docker, используя команду ghost с docker exec. Вот пример, который использует подкоманду версии, чтобы показать версию Ghost, которую вы используете:

docker exec -это призрачная версия моего призрачного контейнера

Хотя многие компоненты ghost-cli будут работать, некоторые из них не поддерживаются в Dockerized средах. Такие команды, как установка, настройка, обновление и удаление, либо неработоспособны, либо бессмысленны, либо противоречат рекомендациям при использовании образа Ghost Docker. Ghost и все его зависимости встроены в образ, и их не нужно «устанавливать». обновления следует применять, запуская новый контейнер, как показано выше.

Резюме

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

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

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован.