Ghost CMS можно разместить на собственном VPS с помощью готового шаблона Unihost в Portainer. Откройте Templates, выберите Ghost CMS, укажите параметры базы данных и разверните стек. Затем настройте публичный адрес сайта, HTTPS через обратный прокси и SMTP для отправки писем. Перед обновлением обязательно создавайте резервные копии базы данных и содержимого Ghost.
Совместимость: Ghost CMS в Docker и Portainer на Linux. Поддержка базы данных зависит от версии Ghost.
Требования
Перед установкой подготовьте:
- VPS с Linux, Docker и Portainer.
- Базу данных, доступную контейнеру Ghost. В исходном шаблоне Unihost используется MariaDB, а официальная производственная конфигурация современных Ghost поддерживает MySQL 8.
- Домен и доступ к настройкам DNS.
- Nginx Proxy Manager или Traefik для HTTPS.
- Место для контента и резервных копий.
Для базовой установки Ghost указывается минимум 1 ГБ RAM, но для Docker-стека с базой данных и прокси потребуются дополнительные ресурсы. Учитывайте нагрузку сайта.
Шаги
Шаг 1. Выберите шаблон Ghost CMS
В Portainer откройте Templates → Application → Ghost CMS. Выберите шаблон Unihost и заполните параметры. Если вы впервые используете Portainer, ознакомьтесь с вводной статьёй. Что такое Portainer.

Шаг 2. Настройте базу данных и адрес сайта
В исходном шаблоне указываются хост базы данных, имя базы, пользователь и пароль. При совместимой конфигурации база создаётся при развёртывании. Проверьте поддержку выбранной СУБД установленной версией Ghost.

Для официального контейнера Ghost используются переменные:
url=https://blog.example.com database__client=mysql database__connection__host=db database__connection__user=ghost database__connection__password=REPLACE_WITH_STRONG_PASSWORD database__connection__database=ghost
Значение url должно точно совпадать с публичным HTTPS-доменом сайта. Не публикуйте пароли базы данных в репозиториях и клиентском коде.
Шаг 3. Разверните Ghost и настройте HTTPS
После развёртывания Ghost опубликуйте сайт через Nginx Proxy Manager (NPM):
- Создайте DNS-запись A для blog.example.com, направленную на IP VPS.
- Откройте NPM → Hosts → Proxy Hosts → Add Proxy Host.
- Укажите blog.example.com в Domain Names и Scheme: http.
- В Forward Hostname / IP укажите имя сервиса Ghost, доступное из NPM, а в Forward Port установите 2368.
- На вкладке SSL запросите сертификат Let’s Encrypt, включите Force SSL и сохраните настройки.
Убедитесь, что NPM подключается к Ghost по Docker-сети. Установите для Ghost url значение https://blog.example.com. Панель управления доступна по адресу https://blog.example.com/ghost.
Инструкция по установке Nginx Proxy Manager и настройке HTTPS
Traefik через Portainer можно использовать как альтернативу.
blog.example.com -> SERVER_IP

На скриншоте показана исходная настройка HTTP-прокси. Для публичного сайта используйте HTTPS и тот же домен с https:// в переменной url.


Откройте сайт, затем перейдите на /ghost для создания учётной записи администратора.
https://blog.example.com/ghost

Шаг 4. Настройте SMTP
SMTP необходим для служебных писем Ghost, в том числе приглашений и восстановления пароля. Добавьте в стек Portainer параметры своего почтового провайдера:
mail__transport=SMTP mail__from=blog@example.com mail__options__host=smtp.example.com mail__options__port=587 mail__options__secure=false mail__options__auth__user=SMTP_USERNAME mail__options__auth__pass=SMTP_PASSWORD
Для порта 587 обычно используется STARTTLS, для 465 – TLS при подключении и mail__options__secure=true. Для массовых рассылок может потребоваться отдельная интеграция, например Mailgun.
Шаг 5. Создайте резервные копии
Сохраняйте базу данных и постоянный том /var/lib/ghost/content. Для MySQL используйте mysqldump, а для исходного шаблона с MariaDB – mariadb-dump. Выполните подходящую команду на Docker-хосте:
docker exec DB_CONTAINER sh -c 'exec mysqldump -u root -p"$MYSQL_ROOT_PASSWORD" ghost' > ghost-db-backup.sql
docker exec DB_CONTAINER sh -c 'exec mariadb-dump -u root -p"$MARIADB_ROOT_PASSWORD" ghost' > ghost-db-backup.sql
docker exec GHOST_CONTAINER tar -czf - -C /var/lib/ghost content > ghost-content-backup.tar.gz
Используйте фактическое имя контейнера и способ авторизации. Дополнительно сохраняйте контент и конфигурацию Ghost, храните копии отдельно от сервера и проверяйте восстановление.
Шаг 6. Обновите образ Ghost
В Portainer сначала сохраните данные и изучите требования нового релиза Ghost к базе и темам. Затем измените тег образа на совместимый и пересоздайте контейнер без удаления томов. Обновления между основными версиями требуют отдельной проверки.
Проверка
Убедитесь, что Ghost и база данных запущены, сайт открывается через HTTPS, панель /ghost доступна, почта отправляется и резервные копии базы и контента существуют. При ошибках проверьте журналы:
docker ps docker logs --tail 50 GHOST_CONTAINER
Устранение проблем
Ghost не подключается к базе данных
Проверьте database__connection__host, пользователя, пароль, имя базы и Docker-сеть. Официально поддерживаемая производственная база Ghost – MySQL 8.
Ошибки HTTPS или перенаправления
Проверьте DNS, reverse proxy, TLS-сертификат и url. Прокси должен передавать исходную схему HTTPS.
Не отправляются письма
Проверьте SMTP-сервер, порт, пароль, режим TLS и журналы Ghost.
FAQ
Можно ли бесплатно использовать self-hosted Ghost?
Да. Ghost распространяется с открытым исходным кодом, но сервер и дополнительные почтовые сервисы оплачиваются отдельно.
Как настроить отправку писем в Ghost?
Добавьте mail__transport=SMTP и параметры mail__options__* своего провайдера, пересоздайте контейнер и проверьте отправку.
Как обновить Ghost в Docker?
Создайте резервные копии базы и контента, выберите совместимый тег образа в Portainer и обновите контейнер с сохранением томов.
Сколько оперативной памяти нужно Ghost?
Для базовой установки Ghost указывается минимум 1 ГБ RAM. Docker-стек с MySQL и прокси потребует больше памяти в зависимости от нагрузки.
Связанные статьи
- Что такое Portainer
- Установка Traefik через Portainer
- Установка MariaDB через Portainer
- Nginx Proxy Manager
- Установка Nginx Proxy Manager
Ghost(Pro) или self-hosted?
| Ghost(Pro) | Self-hosted Ghost |
| Управляемый хостинг | Собственный VPS или сервер |
| Обновления провайдера | Самостоятельные обновления и копии |
| Подписка | Оплата инфраструктуры и сервисов |
Ghost CMS на серверах Unihost
Разворачивайте Ghost и другие приложения на собственной инфраструктуре через шаблоны Portainer.