Ghost — простой блоговый движок на Node.js

Кратко: Ghost — это минималистичный движок для ведения блогов, созданный на Node.js; акцент на простоте, Markdown-редакторе и быстрой работе. Подходит для тех, кто хочет чистый блог без лишних функций CMS.
TL;DR
Ghost — это не замена полнофункциональной CMS: это инструмент для чистого блогинга. Установка возможна на собственный сервер (например, Raspberry Pi) или на готовый хостинг в будущем; на момент тестирования требовался self-host. Если вам нужен лёгкий, быстрый и современный редактор с drag-and-drop для изображений — попробуйте Ghost.
Основные функции
Ghost вырос из краудфандинга и позиционирует себя как платформа только для блогов. В ходе кампании было собрано около 200 000 фунтов стерлингов (~320 000 долларов США) на развитие проекта как open source.
Ключевые идеи и возможности:
- Простой Markdown-редактор с двумя панелями: слева — редактирование в Markdown, справа — превью. Это обеспечивает быстрый рабочий процесс без визуальных надстроек.
- Drag-and-drop загрузка изображений прямо в редактор.
- Адаптивный интерфейс, спроектированный с нуля для планшетов и мобильных устройств.
- Панель статистики и дашборд (на момент обзора некоторые элементы дашборда ещё планировались к выпуску).
Важно: Ghost не включает встроенную систему комментариев и изначально не рассчитан на превращение в маркетплейс, доску вакансий или полноценный eCommerce. Это осознанное ограничение в пользу простоты.
Хостинг: готовый сервис или собственный сервер
На момент обзора Ghost был доступен только в варианте self-host — то есть вам нужен собственный сервер, VPS или устройство вроде Raspberry Pi. Платный хостинг со стороны разработчиков планировался и должен был предлагать удобные бета-аккаунты (аналогично Wordpress.com), но на ранних этапах это было недоступно.
Примечания:
- Ghost требует прав root и возможности конфигурировать сервер — он не подходит для классического shared-хостинга без доступа к настройкам ОС.
- Для тестов подходят Raspberry Pi, бесплатные инстансы AWS (в рамках free tier) или готовые виртуальные образы BitNami.
Подготовка и общие рекомендации перед установкой
Перед началом убедитесь:
- У вас есть учётная запись на ghost.org для скачивания zip-архива платформы.
- Сервер обновлён и у вас есть доступ по SSH с правами sudo/root.
- Понимаете, что Node.js и Ghost в ранних версиях могут потребовать компиляции и ручной настройки зависимостей.
Рекомендации по выбору платформы:
- Raspberry Pi — отличный вариант для тестовой среды и разработчиков, желающих минимальные затраты.
- VPS на современном дистрибутиве (Debian/Ubuntu) — лучший выбор для продакшен-развёртывания.
- BitNami-образ — быстрый путь к тестовой установке без ручной сборки.
Пошаговая установка (пример с Raspberry Pi / Debian-подобной системой)
SSH и базовое обновление (как в исходном материале):
ssh pi@10.0.1.10 (or your RPi IP address)
sudo su
apt-get update
apt-get upgrade
Установка Node.js (в примере использована версия, актуальная на момент обзора — 0.10.20):
Примечание: проверяйте актуальную версию Node.js на официальном сайте перед загрузкой.
curl -O www.nodejs.org/dist/v0.10.20/node-v0.10.20.tar.gz
tar -zxvf node-v0.10.20.tar.gz
cd node-v0.10.20
./configure
make
make install
Осторожно: команда make может выполняться долго на маломощных устройствах.
Установка SQLite и NPM (пример из обзора):
apt-get install sqlite3
git clone git://github.com/isaacs/npm.git
cd npm/scripts
chmod +x install.sh
./install.sh
Загрузка и распаковка архива Ghost (автозаполнение имени файла в Bash помогает):
unzip -d ghost ghost-[press tab]
Установка зависимостей Ghost и запуск:
cd ghost
npm install
Если NPM не обнаружен — попробуйте создать симлинк (как в исходном материале):
ln -s /usr/local/bin/npm /usr/bin/npm
npm install

Далее копируем пример конфига и редактируем:
cp config.example.js config.js
nano config.js
Внутри config.js нужно заменить host: ‘127.0.0.1’ на ваш IP-адрес и порт: ‘2368’ на 80 (если хотите стандартный HTTP-порт). Сохраните файл (CTRL-X, Y).

Запуск Ghost:
npm start
После этого вы сможете открыть панель администратора по адресу http://10.0.1.10/ghost (замените IP на свой).

Если всё запущено корректно, вы увидите раздачу ресурсов с вашего Raspberry Pi в отладочных логах браузера:

Обратите внимание: создание первой учётной записи может идти медленнее (порядка минуты) — дальше производительность обычно очень высокая благодаря Node.js.
Редактор и рабочий процесс контента
Редактор Ghost предлагает пример поста и краткое руководство по Markdown. Если вы не знакомы с Markdown, вначале будет небольшой порог вхождения, но как только вы выучите базовый синтаксис, работа станет быстрее и чище. Возможность оставлять плейсхолдеры для изображений и потом просто перетаскивать файлы прямо в редактор — большая удобная деталь.

Тема по умолчанию достаточно простая, но для Ghost уже существует рынок тем, и вы можете поставить стороннюю тему или разработать свою.
Преимущества и ограничения
Плюсы:
- Быстрое создание и публикация постов.
- Чистый рабочий процесс без лишних функций.
- Нативная работа с Markdown и drag-and-drop изображениями.
Ограничения:
- Нет встроенных комментариев и многих расширений, ожидаемых от CMS.
- На момент ранних версий — ограниченная экосистема плагинов и тем.
- Требует доступа к серверу и навыков администрирования при self-hosting.
Когда Ghost не подойдёт:
- Если вам нужны сложные функции eCommerce, многопользовательская платформа с ролями и правами, или интеграция с большим количеством плагинов «из коробки».
Альтернативы:
- Wordpress — больше возможностей и огромная экосистема плагинов.
- Static site generators (Hugo, Jekyll) — если нужна статическая публикация и высокая безопасность.
Что делать при ошибках установки
Быстрый чек-лист для отладки:
- Проверьте версии Node.js и npm: node -v, npm -v.
- Убедитесь, что все зависимости установлены: npm install завершился без ошибок.
- Проверьте права на файлы и симлинки NPM, если bin-утилиты не видны.
- Посмотрите логи сервера при запуске npm start — там обычно видно, чего не хватает.
- Если сборка занимает слишком много времени на Raspberry Pi, попробуйте использовать кросс-компиляцию или готовый образ.
Чек-лист ролей
Разработчик/интегратор:
- Убедиться в совместимости Node.js и ОС.
- Настроить reverse-proxy (nginx/Apache) для продакшена.
- Настроить SSL (Let’s Encrypt) для публичного сайта.
Системный администратор:
- Настроить мониторинг и автоматический перезапуск процесса (systemd, PM2).
- Настроить бекапы базы данных и папки с контентом.
Автор контента:
- Освоить базовый Markdown (заголовки, списки, ссылки, изображения).
- Проверять превью публикаций перед публикацией.
Критерии приёмки
Чтобы считать установку Ghost успешной, проверьте:
- Админ-панель доступна по ожидаемому URL (/ghost) и позволяет создать учётную запись.
- Посты сохраняются и отображаются на публичной части сайта.
- Загрузка изображений работает через drag-and-drop.
- Наличие возможности задать production host и порт в config.js.
Модель принятия решения
Если вы не уверены, подходит ли вам Ghost, используйте этот простой алгоритм:
flowchart TD
A[Нужен ли вам только блог?] -->|Да| B[Требуется ли быстрая и простая админка?]
A -->|Нет| C[Используйте полнофункциональную CMS]
B -->|Да| D[Ghost — хороший выбор]
B -->|Нет| CБезопасность и эксплуатация
Рекомендации по безопасности и устойчивости:
- Разворачивайте Ghost за reverse-proxy (nginx) и ставьте HTTPS.
- Используйте менеджер процессов (PM2, systemd) для автоперезапуска.
- Регулярно делайте бэкап папки content и базы данных (если используете SQLite — копируйте файл базы).
- Ограничьте доступ к SSH и используйте ключи вместо паролей.
Миграция и совместимость
- Миграция из Wordpress требует экспорта контента и, возможно, конвертации форматов (HTML → Markdown).
- Ghost ориентирован на статичный поток контента; если у вас много пользовательских типов контента и плагинов, подготовьте план миграции.
Короткий глоссарий
- Markdown — простой синтаксис для разметки текста, удобен для блогов.
- Reverse-proxy — фронт-сервер (например, nginx), принимающий внешние запросы и перенаправляющий их внутрь.
- PM2 — менеджер процессов для Node.js.
Тесты и приёмка функциональности
Ключевые тесты после установки:
- Создать и опубликовать пост — он должен появиться на публичной части.
- Загрузить изображение drag-and-drop — изображение должно вставиться в тело поста.
- Отключить и включить сервис через PM2/systemd — сервис должен корректно рестартоваться.
Итоговые впечатления
Ghost — это замечательный инструмент для тех, кто хочет вернуться к сути блогинга: быстрое создание контента, продуманный редактор и современная архитектура на Node.js. Для продакшена потребуются навыки системного администрирования, но при правильной настройке Ghost даёт приятный и быстрый опыт работы с контентом.
Если вы ищете лёгкий и современный блоговый движок, Ghost стоит попробовать. Если же вам нужны расширенные возможности CMS «из коробки», стоит рассмотреть Wordpress или другие платформы.
Резюме:
- Ghost хорош для простых блогов и авторов, ценящих чистый рабочий процесс.
- Для продакшена потребуется настройка сервера, reverse-proxy и резервное копирование.
- На ранних версиях возможны шероховатости, но концепция остаётся привлекательной.
Важно: если вы уже пробовали Ghost, поделитесь своим опытом — слишком простой он для ваших задач или идеально подходит под поток публикаций?