Гид по технологиям

Установка и развёртывание Ghost 1.0 на Ubuntu 18.04

7 min read Развёртывание Обновлено 22 Nov 2025
Как установить Ghost 1.0 на Ubuntu 18.04
Как установить 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 nodejs

npm поставляется вместе с 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 базы данных

Проверка версии 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

Сохраните и выйдите из редактора.

Установка Nginx на веб-сервер

Важно: перед запуском 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 update

Ghost-CLI выполнит обновление, миграции и перезапуск сервисов.

Шаг 7 — завершение настройки в браузере

Откройте в браузере https://example.com/ghost и следуйте экранному мастеру.

На экране приветствия нажмите «Создайте аккаунт» и заполните поля: email, имя пользователя, пароль, название блога.

Веб-установщик Ghost

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

Создание аккаунта в Ghost

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

Интерфейс управления историями в 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

План реагирования при сбое

  1. Проверка состояния служб: sudo systemctl status nginx mysql ghost_yourdomain.
  2. Просмотр логов: sudo journalctl -u .
  3. Проверка дискового пространства: df -h и inode.
  4. Откат: восстановить бэкап базы и 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.
  • Делайте бэкапы перед обновлениями и проверяйте логи при ошибках.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

RDP: полный гид по настройке и безопасности
Инфраструктура

RDP: полный гид по настройке и безопасности

Android как клавиатура и трекпад для Windows
Гайды

Android как клавиатура и трекпад для Windows

Советы и приёмы для работы с PDF
Документы

Советы и приёмы для работы с PDF

Calibration в Lightroom Classic: как и когда использовать
Фото

Calibration в Lightroom Classic: как и когда использовать

Отключить Siri Suggestions на iPhone
iOS

Отключить Siri Suggestions на iPhone

Рисование таблиц в Microsoft Word — руководство
Office

Рисование таблиц в Microsoft Word — руководство