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.