Як оновити блог Ghost

Дізнайтеся, як безпечно оновити блог на платформі Ghost до новішої версії. У статті описано процес підготовки, бекап, перевірку версій, оновлення npm та Ghost CLI, а також додаткову перевірку після оновлення для впевненості, що все працює належним чином.

Як оновити блог Ghost
Photo by Jr Korpa on Unsplash

Вступ

У житті кожного блоггера, який хостить свій блог власноруч настає момент коли бажання отримати оновлення переважає острах наглухо покласти свій блог. Сьогодні я наважився оновити Ghost до новішої версії

Ця стаття буде корисна як тим, хто має подібний стек технологій, а саме Proxmox VE + Ubutnu LXC контейнер + Cloudflare, та і для всіх інших, бо набір основних команд не відрізняється геть зовсім.

Оновлення

Ціллю оновлення звісно буде отримати нову функціональність платформи Ghost. Але перед початком давайте потрібно чітко спланувати дії:

  1. Зробити резервну копію (бекап)
  2. Оновити npm
  3. Оновити Ghost CLI
  4. Оновити Ghost
  5. Впевнитись що все працює
  6. Зробити додаткові перевірки
  7. Залишити резервну копію мінімум на місяць, щоб можна було відновити все.

Звучить як гарний план? Давай спробуємо.

А перед початком варто буде зазначити, що існує офіційна інструкція від Ghost, яка як на мене більше заплутує особливо новачків.

Ghost Updates: How to update to the latest major version
Find out how to get access to the latest features in Ghost by updating your self-hosted install to the latest major version.

Бекап перед початком

Якщо ви маєте подібніий стек до мого з Proxmox VE, то ви вже знаєте, що це найлегша частина. Для тих кому цікаво як саме я налаштував блог можете почитати наступні публікації

Хостинг власного блогу: залізо та віртуальний контейнер (частина 1) - Ghost
Вступ Ця стаття являє собою покрокову інструкцію про те, як запустити блогу Ghost в домашніх умовах на сервері Proxmox VE, який встановлений на міні сервері у вас вдома. У першій частині ми роглянемо лише залізо та підготовку контейнера, а у другій частині пройдемось покроково по установці блогу та підключенні доменного
Хостинг власного блогу: інсталяція та налаштування (частина 2) - Ghost
Вступ Привіт. У попередній частині ми попрацювали над базою для нашого блогу, а саме: * Обрали залізо * Встановили Proxmox VE * Підготували LXC контейнер з Linux Ubuntu 23.10 Все це докладно описано тут: Хостинг власного блогу: залізо та віртуальний контейнер (частина 1) - GhostВступ Ця стаття являє собою покрокову інструкцію про

Або переглянути зібрання з багатьма іншими дописами про блог Ghost

Повний посібник з блогу Ghost
Велике зібрання статей про те, як та де запустити блог Ghost, як налаштувати та кастомізувати. Підключення Google Search, AdSense та Analytics

Якщо ви маєте інші технології, то зробіть резервну копію будь-яким доступним для вас способом. Це дуже важливо

А ми в один клік робимо резервну копію всього вашого LXC контейнера з Ghost.

Proxmox VE - LCX container backup
Proxmox VE - LCX container backup

Лише впевнившись, що маємо бекап, ми можемо розпочинати виконувати команди по оновленню.

У разі будь-яких проблем під час оновлень, особливо критичних, коли блог Ghost перестає працювати, все що нам буде необхідно це відновити стан нашого контейнер з бекапа до стану перед початком оновлення.

І поступово розбираючись з проблемами ви можете пробувати раз за разом просуватись далі і відновлюватись у зереженій точнці безкінечну кількість разів у разі невдач.

Надалі всі команди ми будемо виконувати у консолі LXC контейнера з Ghost

Перевірка поточних версій

Щоб побачити прогрес фіксуємо поточні версії

Для початку виконайте наступну команду

ghost status

Результатом виконання буде інформація про запущений блог з його розташуванням, версією, портом і так далі.

Console - ghost status
Console - ghost status

А також нам потрібні версії npm та Ghost CLI

npm -v
ghost -v

По ітогу маємо наступні версії:

  • npm v10.3.0
  • Ghost CLI v1.25.3
  • Ghost v5.80.2

Оновлення npm

Це стандартна процедура майже з будь-яким додатком написаним на node.js

Найпростіше це виконати цю команду

sudo npm update

Або якщо ви знаєете до якої версії бажаєте оновити то можна і так

sudo npm install -g [email protected]
Console - npm update
Console - npm update

Тепер npm має версію 10.9.0

Оновлення Ghost CLI

Для оновлення клієнта Ghost виконайте цю команду

sudo npm install -g ghost-cli@latest
Console - ghost-cli update
Console - ghost-cli update

Перевіряємо версію знову ghost -v і отримуємо Ghost-CLI version: 1.26.1.

Оновлення Ghost

І ми дійшли до найважливішої частини. На цьому етапі можуть виникнути помилки і як я бачу на форму Ghost (https://forum.ghost.org/) вони бувають дуже різні і цікаві. Звертайтесь до спільноти Ghost за порадами і допомогою.

Зверніть увагу, що при оновленні Ghost всі зміни внесені в файли вашої теми будуть втрачені. Якщо ви змінювали файли *.hbs у /var/www/ghost/content/themes, то збережіть ці зміни окремо і поверніть на місце після оновлення.

Для оновлення самого Ghost потрібно перейти у каталог зі встановленим блогом Ghost. Ось команди:

cd /var/www/ghost
ghost update

Почнеться тривалий процеес оновлення як на цьому зображенні.

Console - ghost update
Console - ghost update

Готово, тепер мій блог оновлено до версії 5.99.0

В мене це заняло близько 5-7 хвилин з яких приблизно 1-2 хвилини сайт був недоступний для читання. Проти всі користувачі могли бачити ось таке повідомлення

Maintenance message
Maintenance message

В моєму випадку все пройшло швидко та гладенько. Але бекап всеодно надає впевненості, тож не нехтуйте ним.

Впевніться, що все працює

Це дуже важливий крок. Вам необхідно перевірити чи ви можете відкрити свій блог як користувач, а також як автор, який пише статті. Рекомендую спробувати відредагувати чернетку, або зробити незначні правки у опублікованих статтях. Приділіть якомога більше уваги цьому.

Навіть коли все працює так, як ви очікували я вкрай не рекомендую видалята резервну копію. Потримайте її близько місяця, якщо це можливо, і лише потім видаліть. Місяця вам буде достатньо, щоб зрозуміти чи все добре.

Не забувайте, що кожна вага інтеграція потребує додаткової перевірки, не зайвим буде прогнати тестування на швидкість по типу PageSpeed Insights, про який я писав тут: Оптимізація швидкості сторінки - PageSpeed Insights

Додаткова перевірка Ghost Doctor

Я колись був здивованим, але у Ghost є власний лікар. Це одна з команд, яка може допомогти у визначенні проблем та навіть порекомендувати варіанти рішення.

У тому ж каталозі з блогом виконайте наступне

ghost doctor

Ця команда запустить серію перевірок різних систем і налаштувань вашого блогу. Якщо десь будуть проблеми, то ви про це дізнаєтесь, а у моєму випадку все більш-менш непогано.

Console - ghost doctor
Console - ghost doctor

Підсумки та роздуми

Якщо ви регулярно робити оновлення, а особливо в тих випадках, коли ви також самостійно налаштовували свій сервер, то кількіть проблем буде зведена до мінімума.

Проте у будь-якому випадку необхідно робити резервні копії та вміти відновлювати свій сервер до стабільної версії, це може знадобитись навіть при незначних змінах чи оновленнях. Наполегливо рекомендую - це збереже цінні години вашого життя та нервів.

Саме ж оновленя блогу Ghost зводиться до виконання декількох команд у консолі і ретельної перевірки опісля. В звичайному режими всі кроки можуть займати до 10 хв - що є дуже добре.

Особисто я не оновлю свій блог кожен раз, коли виходить нова версія, або ж кожен місяць. Я дивлюсь більше по необхідності.

Ghost має свій Changelog (https://ghost.org/changelog), де ви можете роздивитись те, що ваша поточна версія ще не має і оновитись лише коли буде щось цікаве.

Детальний опис змін кожної версії можна подивитись в GitHub: https://github.com/TryGhost/Ghost/releases

Я саме так і зробив, бо хотів отримати наступні оновлення:

Internal linking
Search and link to your own content directly inside the editor — so that your workflow is never interrupted.
✨ Emoji autocomplete ✨
For those of us that like an emoji or two in their posts 🙋 the Ghost Editor just got a little more streamlined. Now, you can add any emoji by simply pressing : and continuing to type. No more fiddling with emoji pickers, and no more interruptions to your creative flow as
TK reminders
A small detail designed to save you from frustrating mistakes, so you can publish with confidence. Didn’t even need AI for this one.

Я вже вспів перевірити ці оновлення і радий, що все пройшло без ускладнень.

Бажаю вам надійних бекапів, цікавих і легких оновлень та мирного неба!

Read more