Установка и настройка 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 у нас — получите стабильный сайт с гарантией.







