Разворачиваем Ghost CMS в Docker с SSL

Нам понадобится сервер с Debian 9 вновь созданным и готовый для запуска Ghost CMS.

Установить и настроить Docker

Первое, что мы собираемся сделать, это установить Docker на нашем сервере:

wget -qO- https://get.docker.com/ | sh

И затем создаем пользователя:

adduser ghost

И мы добавляем его в группу Docker:

usermod -aG docker ghost

Установка и Настройка Nginx

Устанавливаем Nginx:

apt install nginx

Добавляем запуск Nginx при загрузке сервера:

systemctl enable nginx
systemctl start nginx

И мы создаем конфигурацию Nginx для Ghost CMS:

nano /etc/nginx/sites-available/ghost.conf

Следующего содержания:

server {
listen 80;
server_name xakinfo.ru;

location /.well-known/ {
root /var/www/html;
}

location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://127.0.0.1:2368;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

Включаем веб-сайт:

ln -s /etc/nginx/sites-available/ghost.conf /etc/nginx/sites-enabled/ghost.conf

И перезапускаем Nginx, чтобы применить новые настройки:

systemctl restart nginx

Установка SSL-сертификата

Установим с  репозитория:

apt install software-properties-common

Добавляем репозиторий и обновляем:

add-apt-repository ppa:certbot/certbot
apt update

Установим, то, что необходимо для создания сертификата:

apt install python-certbot-nginx

И, наконец, создаем сертификат:

certbot --authenticator webroot --installer nginx

Мы выбираем наш домен и потом мы будем отмечать опцию «enter a new webroot» и наш

/var/www/html

:

Select the webroot for xakinfo.ru:
--------------------------------------------------------------------
1: Enter a new webroot
--------------------------------------------------------------------
Press 1 [enter] to confirm the selection (press 'c' to cancel):/var/www/html

Развернуть образ Ghost с Docker

Прежде всего, мы должны сделать подготовку для Ghost, мы должны создать каталог, в home пользователя 

ghost

 , который мы создали ранее.

mkdir -p /home/ghost/ghost_volume

Скачайте последний образ Ghost:

docker pull ghost:latest

И, наконец, мы используем образ, и мы будем иметь в виду, что в параметре URL, мы опубликуем адрес с HTTPS:

docker run --name ghost -p 127.0.0.1:2368:2368 -e url=https://xakinfo.ru -v /home/ghost/ghost_volume/content:/var/lib/ghost/content --restart=always -d ghost:latest

И мы в Docker под SSL.

Заключение

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