Встановлення та налаштування Ghost (Self-Hosted)
Ви запускаєте контент-проєкт і обираєте між Ghost(Pro) та self-hosted. Ghost(Pro) коштує від $199/міс для 10 000 відвідувачів, self-hosted обходиться в $50–100/міс. При 50 000 відвідувачів економія сягає 70%. Self-hosted дає повний контроль, але вимагає налаштування сервера. Ghost — це open-source CMS, побудована на Node.js (Wikipedia). Ми розгорнули Ghost для проєктів з відвідуваністю від 500 до 500 000 на місяць — розповімо, як зробити це правильно.
Проблеми, які вирішує self-hosted Ghost
Найчастіші болі клієнтів: переплата за Ghost(Pro) при зростанні трафіку, неможливість кастомізувати оточення (потрібен Node.js 18+), необхідність інтеграції з S3 для медіа та відсутність контролю над версіями. Self-hosted Ghost дешевший за Ghost(Pro) у 2–3 рази при обсязі від 10 000 відвідувачів на місяць. Крім того, ви можете налаштувати Redis кешування, Cloudflare CDN та горизонтальне масштабування.
Ghost self-hosted — це не просто CMS, а інженерне завдання: потрібно забезпечити швидкий TTFB, низький LCP та стабільний INP. Без оптимізації Ghost генерує N+1 запити до бази, що збільшує час відповіді до 2–3 секунд. Наша конфігурація дає LCP < 2.5 с та INP < 200 мс навіть при 100 000 відвідувачів.
Як вибрати хостинг для Ghost self-hosted?
Ghost невибагливий до ресурсів: мінімальні вимоги — 1 ядро CPU, 1 ГБ RAM (рекомендуємо 2 ГБ), Ubuntu LTS, Node.js 18+, MySQL 8, Nginx. Для 50 000 відвідувачів на місяць достатньо 2 vCPU та 4 ГБ RAM. Якщо очікуєте піки — додайте Redis та налаштуйте load balancing.
| Навантаження (відвідувачів/міс) | vCPU | RAM | Сховище |
|---|---|---|---|
| до 10 000 | 1 | 2 ГБ | 40 ГБ SSD |
| до 100 000 | 2 | 4 ГБ | 80 ГБ SSD |
| більше 100 000 | 4 | 8 ГБ | 160 ГБ SSD |
| Характеристика | Ghost(Pro) | Self-hosted |
|---|---|---|
| Контроль над сервером | Ні | Повний |
| Кастомізація оточення | Обмежена | Безмежна |
| Економія при 50 000 відв. | Ні | ~70% |
Процес встановлення Ghost
Ghost CLI автоматизує більшість кроків. Детальна документація зі встановлення доступна на офіційному сайті Ghost. Нижче — типові команди.
Підготовка сервера
# Оновлення системи sudo apt update && sudo apt upgrade -y # Node.js 18 через NodeSource curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - sudo apt install -y nodejs # MySQL 8 sudo apt install -y mysql-server sudo mysql_secure_installation # Nginx sudo apt install -y nginx # Ghost CLI sudo npm install -g ghost-cli@latest MySQL налаштування:
CREATE USER 'ghost'@'localhost' IDENTIFIED BY 'strongpassword'; CREATE DATABASE ghost_prod CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; GRANT ALL PRIVILEGES ON ghost_prod.* TO 'ghost'@'localhost'; FLUSH PRIVILEGES; Встановлення Ghost через CLI
sudo mkdir -p /var/www/ghost sudo chown $(whoami):$(whoami) /var/www/ghost cd /var/www/ghost ghost install \ --url https://myblog.com \ --db mysql \ --dbhost localhost \ --dbuser ghost \ --dbpass strongpassword \ --dbname ghost_prod \ --process systemd \ --mail SMTP \ --mailhost smtp.mailgun.org \ --mailport 587 \ --mailssl true \ --mailuser [email protected] \ --mailpass mailgunpassword \ --mail-from [email protected] Ghost CLI автоматично налаштує Nginx virtual host та запросить SSL через Let's Encrypt.
Що робити після встановлення Ghost?
Першим ділом перевірте статус: ghost status. Налаштуйте автоматичне оновлення (обережно — іноді мажорні версії ламають теми). Рекомендуємо увімкнути image optimization в config.production.json та налаштувати S3 для медіа, щоб не зберігати файли на сервері.
Корисні команди управління Ghost:
ghost status # стан сервісу ghost stop / start # зупинка/запуск ghost restart # рестарт ghost update # оновлення до останньої версії ghost log # перегляд логів ghost config # редагування config.production.json ghost backup # створення бекапу (zip з контентом та файлами) Як оптимізувати продуктивність Ghost?
Основні моменти: налаштування Redis для кешування, увімкнення image optimization, використання CDN (Cloudflare) та S3 для медіа. Ці заходи дозволяють досягти LCP < 2.5 с та INP < 200 мс. Без них Ghost може показувати TTFB понад 1 секунду.
Типові помилки при встановленні Ghost
Типові помилки при встановленні Ghost
- Невірний пароль MySQL — використовуйте складний пароль та перевіряйте через
mysql -u root -p - Порт 80 або 443 зайнятий іншим сервісом — відключіть Apache або змініть порт
- Проблеми з правами доступу до папки
/var/www/ghost— використовуйтеsudo chown - Відсутність swap при нестачі RAM — додайте swap-файл
Процес роботи над проєктом
- Аналітика та проєктування: визначаємо навантаження, підбираємо сервер, проєктуємо архітектуру (балансування, кешування).
- Підготовка сервера: встановлення ОС, налаштування безпеки, встановлення залежностей.
- Встановлення Ghost: через CLI або ручне налаштування конфігурації.
- Інтеграції: S3 для медіа, SMTP для пошти, SSL-сертифікат, CDN (Cloudflare).
- Оптимізація продуктивності: налаштування кешування, стиснення зображень, мікророзмітка, Core Web Vitals.
- Тестування та деплой: навантажувальне тестування, перевірка сумісності, передача проєкту.
Що входить в роботу
- Підготовка сервера: налаштування Ubuntu, Node.js 18+, MySQL 8, Nginx.
- Встановлення Ghost: через CLI з генерацією SSL, налаштуванням SMTP.
- Інтеграція S3: для зберігання медіафайлів (Amazon S3, DigitalOcean Spaces).
- Оптимізація продуктивності: кешування Redis, мініфікація, LCP < 2.5 с.
- Документація: опис конфігурації та команд управління.
- Навчання: інструкція для редакторів з роботи з CMS.
- Технічна підтримка: 2 місяці після запуску.
Кастомна конфігурація
// /var/www/ghost/config.production.json { "url": "https://myblog.com", "database": { "client": "mysql2", "connection": { "host": "localhost", "user": "ghost", "password": "...", "database": "ghost_prod" } }, "mail": { "transport": "SMTP", "options": { "host": "smtp.mailgun.org", "port": 587, "auth": { "user": "...", "pass": "..." } } }, "storage": { "active": "s3", "s3": { "accessKeyId": "...", "secretAccessKey": "...", "bucket": "myblog-media", "region": "eu-west-1", "assetHost": "https://cdn.myblog.com" } }, "imageOptimization": { "resize": true, "srcsets": true }, "privacy": { "useUpdateCheck": true, "useGravatar": false } } Чому варто довірити налаштування Ghost професіоналам?
Ghost — це не просто npm install. Без досвіду можна натрапити на N+1 запити, проблеми з Redis та нестабільність при високих навантаженнях. Ми за 10+ проєктів по Ghost напрацювали шаблони конфігурації, які дають LCP < 2.5 с та INP < 200 мс. Гарантуємо стабільну роботу під навантаженням до 100 000 відвідувачів на місяць.
Орієнтовні терміни: від 2 до 5 робочих днів. Вартість розраховується індивідуально під проєкт. Якщо потрібна допомога — зв'яжіться, ми виконаємо роботу під ключ з гарантією два місяці. Замовте налаштування Ghost у нас — отримайте стабільний сайт з гарантією.







