Установка и развёртывание Ghost 1.0 на Ubuntu 18.04
Важно: руководство адаптировано для Ghost 1.0.0 и Ubuntu 18.04. Перед началом убедитесь, что у вас есть резервные копии и доступ к DNS для домена.
О чем эта инструкция
Это руководство предназначено для системных администраторов и разработчиков, которые хотят быстро и безопасно развернуть Ghost 1.0 на Ubuntu 18.04 LTS. Пошаговые команды можно выполнять в терминале сервера. Если вы планируете использовать другой дистрибутив или контейнеры — смотрите раздел «Альтернативные подходы».
Основные преимущества и что вы получите
- Простой и минималистичный движок для блога с поддержкой Markdown.
- Автоматическая настройка NGINX и HTTPS через Ghost-CLI и Let’s Encrypt.
- Поддержка MySQL/MariaDB и опция SQLite для лёгких установок.
Требования
- Домен: в примерах используется example.com.
- Сервер с Ubuntu 18.04 LTS и минимум 1 ГБ оперативной памяти. Ghost обычно требует около 300 МБ RAM во время работы, но для комфортной работы и обновлений рекомендуется ≥1 ГБ.
- Ненулевой пользователь с sudo-привилегиями (не root).
Быстрые определения
- Ghost-CLI: инструмент командной строки для установки и обновления Ghost.
- LTS: Long-Term Support — версия Node.js с длительной поддержкой.
- Let’s Encrypt: бесплатный центр сертификации для автоматизации TLS/SSL.
Начальные действия
Проверьте версию Ubuntu:
lsb_release -ds
# Ubuntu 18.04 LTSУстановите временную зону:
timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'Обновите пакеты системы:
sudo apt update && sudo apt upgrade -yУстановите базовые инструменты сборки:
sudo apt install -y build-essentialШаг 1 — установка Node.js и npm
Примечание: Ghost 1.0.0 поддерживает Node.js версии 8.9+ и 6.9+ (информация из оригинальной документации на момент выхода). Для совместимости в этом руководстве используется ветвь v8 Carbon LTS.
Установим Node.js через репозиторий NodeSource:
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt install -y nodejsnpm поставляется вместе с Node.js, но его часто обновляют отдельно. Чтобы обновить npm до последней доступной версии, выполните:
sudo npm install -g npm@latestПроверка версий:
node -v && npm -v
# v8.11.2
# 5.6.0После обновления npm:
npm -v
# 6.1.0Примечание: конкретные версии зависят от момента установки. Команды выше оставлены как в оригинале.
Шаг 2 — установка MariaDB
Ghost поддерживает MySQL/MariaDB и SQLite. В этом руководстве используется MariaDB. Если вы предпочитаете MySQL — можно заменить пакеты и репозиторий.
Добавим репозиторий MariaDB и установим сервер:
sudo apt-get install software-properties-common
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
sudo add-apt-repository 'deb [arch=amd64] https://mirrors.nxthost.com/mariadb/repo/10.3/ubuntu bionic main'
sudo apt update
sudo apt install -y mariadb-serverВо время установки вам предложат ввести пароль для пользователя root MariaDB. Выберите надёжный пароль.

Проверка версии MariaDB:
mysql --version && sudo mysqld --version
# mysql Ver 15.1 Distrib 10.3.7-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
# mysqld Ver 10.3.7-MariaDB-1:10.3.7+maria~bionic-log for debian-linux-gnu on x86_64 (mariadb.org binary distribution)Проверьте статус сервиса MariaDB:
sudo systemctl status mysql.service
sudo systemctl is-enabled mysql.serviceЗапустите утилиту для базовой настройки безопасности:
sudo mysql_secure_installationПример интерактивного ответа утилиты — удаление анонимных пользователей, запрет удалённого входа root, удаление тестовой БД и перезагрузка привилегий. Следуйте подсказкам.
Подключение к MariaDB как root:
mysql -u root -pСоздание базы данных и пользователя для Ghost (опционально — Ghost-CLI может создать их автоматически, если вы введёте root-данные при установке):
mysql> CREATE DATABASE dbname;
mysql> CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
mysql> GRANT ALL ON dbname.* TO 'username'@'localhost';
mysql> FLUSH PRIVILEGES;Выход из MariaDB:
mysql> EXIT;Шаг 3 — установка NGINX
NGINX служит обратным прокси для Ghost. В примере мы используем официальный репозиторий nginx.org и mainline-ветку, рекомендованную для большинства развёртываний.
Добавляем репозиторий и устанавливаем NGINX с модулями:
wget https://nginx.org/keys/nginx_signing.key
sudo apt-key add nginx_signing.key
rm nginx_signing.key
sudo -s
printf "deb https://nginx.org/packages/mainline/ubuntu/ $(lsb_release -sc) nginx\ndeb-src https://nginx.org/packages/mainline/ubuntu/ $(lsb_release -sc) nginx\n" >> /etc/apt/sources.list.d/nginx_mainline.list
exit
sudo apt update
sudo apt install -y nginx nginx-module-geoip nginx-module-image-filter nginx-module-njs nginx-module-perl nginx-module-xsltПроверка версии NGINX:
sudo nginx -v && sudo nginx -V
# nginx version: nginx/1.15.0Запустите и включите автозапуск NGINX:
sudo systemctl start nginx.service
sudo systemctl enable nginx.serviceСоздайте нужные директории для конфигурации, которые использует Ghost-CLI:
sudo mkdir -p /etc/nginx/{snippets,ssl,sites-available,sites-enabled}Добавьте директиву включения сайтов в nginx.conf (например include /etc/nginx/sites-enabled/*.conf;). Откройте конфигурационный файл:
sudo vim /etc/nginx/nginx.confСохраните и выйдите из редактора.

Важно: перед запуском Ghost-CLI убедитесь, что NGINX правильно перезагружается и что порт 80/443 открыт в брандмауэре.
Шаг 4 — установка Yarn (опционально)
Yarn используется как альтернативный менеджер пакетов. Ghost-CLI можно установить через npm или Yarn. Чтобы установить Yarn:
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt update && sudo apt install -y yarnПроверка версии Yarn:
yarn --version
# 1.7.0Шаг 5 — установка Ghost-CLI
Ghost-CLI автоматизирует установку Ghost: создание базы, настройку NGINX, SSL/Let’s Encrypt, systemd-сервиса и автопродлением сертификатов.
Установите Ghost-CLI глобально (npm или yarn):
sudo npm install -g ghost-cli@latest
# или с Yarn
sudo yarn global add ghost-cli@latestПроверка версии Ghost-CLI:
ghost version
# Ghost-CLI version: 1.8.1Проверьте систему на потенциальные проблемы перед установкой:
ghost doctor installШаг 6 — установка Ghost
Создайте корневую директорию сайта и установите права владельца на вашего непользователя с sudo (например, johndoe):
sudo mkdir -p /var/www/example.com
sudo chown johndoe:johndoe /var/www/example.com
sudo chmod 755 /var/www/example.comПерейдите в директорию сайта и убедитесь, что она пуста:
cd /var/www/example.com
ls -aЗапустите установку в production-режиме:
ghost installВо время установки Ghost-CLI задаст вопросы. Пример ожидаемых ответов:
? Enter your blog URL: https://example.com
? Enter your MySQL hostname: localhost
? Enter your MySQL username: root
? Enter your MySQL password: your_mysql_root_user_password_here
? Enter your Ghost database name: database_name_for_ghost
? Do you wish to set up "ghost" mysql user? yes
? Do you wish to set up Nginx? yes
? Do you wish to set up SSL? yes
? Enter your email (used for Let's Encrypt notifications) [email protected]
? Do you wish to set up Systemd? yes
? Do you want to start Ghost? yesПосле успешной установки можно посмотреть запущенные процессы Ghost:
ghost lsДля обновления в будущем достаточно в каталоге установки выполнить:
ghost updateGhost-CLI выполнит обновление, миграции и перезапуск сервисов.
Шаг 7 — завершение настройки в браузере
Откройте в браузере https://example.com/ghost и следуйте экранному мастеру.
На экране приветствия нажмите «Создайте аккаунт» и заполните поля: email, имя пользователя, пароль, название блога.

Пригласите членов команды или пропустите шаг, выбрав «Сделаю позже — перейти в блог!».

Управляйте контентом и темами из административной панели Ghost.

Поздравляем — блог запущен и доступен по HTTPS.
Рекомендации по безопасности и эксплуатации
- Регулярно обновляйте систему, Node.js и Ghost через ghost update.
- Используйте непривилегированного пользователя для файлов сайта.
- Делайте резервные копии базы данных и каталога content/ перед обновлениями.
- Следите за автоматическим продлением сертификатов Let’s Encrypt (Ghost-CLI и certbot делают это за вас, но проверяйте логи).
Важно: храните пароли и приватные ключи вне репозиториев кода.
Отладка и типичные проблемы
- NGINX не стартует — проверьте конфигурацию: sudo nginx -t.
- Ghost не стартует — посмотрите журналы systemd: sudo journalctl -u ghost_localhost (имя службы зависит от домена/имени).
- Ошибки базы данных — проверьте, доступен ли MariaDB и корректны ли учётные данные.
- Проблемы с SSL — проверьте, что порт 80 открыт и DNS указывает на сервер.
Полезные команды для диагностики:
sudo nginx -t
sudo systemctl restart nginx
sudo journalctl -u ghost_yourdomain --no-pager
mysql -u username -p -h localhost
netstat -tulpen | grep -E ":80|:443"
ss -tulwn | grep 80Дополнительная ценность — полезные материалы и проверки
Факты и числа
- Минимальная рекомендуемая память для удобной работы: 1 ГБ.
- Ghost во время работы обычно использует около 300 МБ RAM.
- Поддерживаемые ветки Node.js в оригинале: 8.9+ и 6.9+ (для Ghost 1.0.0).
Альтернативные подходы
- Docker: развёртывание Ghost в контейнере официального образа. Упрощает изоляцию и масштабирование.
- SQLite: быстрый вариант для локальных тестов или одного автора без MariaDB.
- PaaS/Managed VPS: платформы типа DigitalOcean App Platform или специализированные хостинги для Ghost могут сократить рутинные настройки.
Когда этот подход может не подходить
- Меньше 1 ГБ RAM: возможны перебои при обновлениях.
- Неправильные DNS-записи или закрытые порты 80/443 — установка SSL завершится неудачно.
- Если вы хотите лёгкую миграцию и масштабирование — рассмотрите контейнеры и оркестрацию.
Ментальные модели и эвристики
- Разделяй окружения: имеете staging для тестов и production для живого сайта.
- Минимизируй права: сервисам и БД — минимум привилегий.
- Автоматизируй бэкапы и проверяй их восстановление раз в месяц.
Чеклист ролей
- Системный администратор: подготовить сервер, открыть порты, установить Node.js, MariaDB, NGINX.
- DevOps/инженер по развёртыванию: настроить Ghost-CLI, systemd, мониторинг и бэкапы.
- Автор/редактор: зарегистрировать аккаунт, подключить тему, создать первые посты.
Шпаргалка команд (cheat sheet)
- Установка Node.js: curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
- Проверка NGINX: sudo nginx -t
- Ghost-CLI: ghost install
- Список сервисов Ghost: ghost ls
- Обновление Ghost: ghost update
План реагирования при сбое
- Проверка состояния служб: sudo systemctl status nginx mysql ghost_yourdomain.
- Просмотр логов: sudo journalctl -u
. - Проверка дискового пространства: df -h и inode.
- Откат: восстановить бэкап базы и content/ до точки перед обновлением.
Совместимость и миграция
- Если вы мигрируете с более старой версии Ghost, проверьте документированные пути миграции.
- Для перехода на более новые версии Node.js сначала проверьте совместимость всех зависимостей.
Краткое объявление проекта (для рассылки или блога)
Выпущена подробная инструкция по развёртыванию Ghost 1.0 на Ubuntu 18.04 LTS. Руководство покрывает установку Node.js, MariaDB, NGINX, Ghost-CLI и автоматическую настройку HTTPS через Let’s Encrypt. Подходит для одного автора или небольшой команды.
Заключение
Вы успешно настроили Ghost 1.0 на Ubuntu 18.04. Следуйте рекомендациям по безопасности, делайте регулярные бэкапы и планируйте тестирование обновлений на staging. Ghost хорош для авторов и небольших команд благодаря простоте интерфейса и поддержке Markdown.
Ключевые команды и проверки сохраните в закладках. Удачи с ведением блога!
Краткое резюме и рекомендации:
- Подготовьте сервер и DNS до начала установки.
- Используйте Ghost-CLI для автоматизации настроек NGINX и SSL.
- Делайте бэкапы перед обновлениями и проверяйте логи при ошибках.
Похожие материалы
RDP: полный гид по настройке и безопасности
Android как клавиатура и трекпад для Windows
Советы и приёмы для работы с PDF
Calibration в Lightroom Classic: как и когда использовать
Отключить Siri Suggestions на iPhone