Halloween DealsAmazon USHalloween week deals: useful picks before month-endAmazon US: current deals, useful picks and tech finds.Check DealsClean PCRecommendedOne scan can reveal what keeps slowing WindowsLook for cleanup and repair opportunities.Run ScanHalloween DealsAmazon USOctober picks are moving - compare before checkoutAmazon US: current deals, useful picks and tech finds.See Picks×
FREEDOM251

Freedom251 › Blog › ghost

How to Update a Self-Hosted Ghost Blog Safely

By Freedom251 Team · · 13 min read

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

For a supported Ghost 3.x, 4.x, or 5.x installation using MySQL, the normal upgrade is an in-place update: switch to the site’s non-root owner, check the installed versions, create a full backup, then run ghost update. Major releases need release-note review, theme testing, and a rollback plan. Ghost installations below 3.0 and production sites using SQLite3 should be treated as migration or reinstall projects rather than routine in-place updates.

What you need before updating

Updating Ghost changes the application and may also expose incompatibilities in your theme, Node.js runtime, database, integrations, or server configuration. Gather the following before touching the installation:

As an Amazon Associate I earn from qualifying purchases.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  • The absolute installation directory.
  • The non-root Linux user that owns and manages the Ghost site.
  • Current Ghost, Ghost-CLI, Node.js, database, theme, and integration versions.
  • SSH access and enough maintenance time to restart the site and test it.
  • A second location for critical exports and backup files.
  • A maintenance window that allows for a failed update, rollback, or an additional restart.

Ghost’s current documented self-hosting stack is Ubuntu 24, Node.js 22 LTS, MySQL 8.0, NGINX, systemd, at least 1GB of memory, and a non-root user for Ghost commands. Other operating systems, databases, and web servers may work, but Ghost does not list them as officially supported or widely adopted in its hosting documentation: Hosting Ghost. Treat those alternatives as extra compatibility variables when planning an upgrade.

Do not run site-management commands as root unless Ghost’s documentation specifically requires it. A root-owned installation can create permission problems during updates and make later recovery harder. First identify the account that normally runs Ghost, then use that account consistently for version checks, backups, updates, and restarts.

#1 Best Overall
Muxiziu Halloween Ghost Figurine, Spooky & Cute Reading Ghost Statue for Bedroom, Desk, Party Decor, Book Lovers Gifts, Funny Light Up Ghost Halloween Decor Indoor (5 in)
  • Charming Design: Adorn your space with our charming resin ghost figurines, a perfect blend of whimsy and warmth. This cute ghost decor depicts a ghost holding a book and reading, emitting a soft glow. Crafted from high-quality resin materials, this cute ghost serves as an enchanting halloween decor item and a year-round home decor accent, ideal for book lovers and those who adore spooky home decor.
  • Soft Warm Glow: Create a cozy ambiance with the gentle illumination of our cute ghost statue. The warm light is easy on the eyes, making it perfect for use as a halloween bedroom decor, spooky home decor, or cute bookshelf decor. It provides just the right amount of light for nighttime reading or creating a calming atmosphere without being too bright or harsh.
  • Multifunctional designed: This mini ghost figurines is designed to be portable, so you can place it anywhere. Use it as halloween indoor decorations, desk decor, mantel decorations, or a centerpiece for your halloween party. Its compact size (5 inches) makes it great for bookshelf decor, spooky office decor, or halloween decorations indoor.
  • Perfect Gift for Halloween & Book Lovers: Searching for a thoughtful gift? This cute ghost figurine is an ideal present for halloween lovers, readers, collectors, and fans of funny home decor. It makes a memorable halloween gift, birthday gift, or holiday surprise that combines humor, function, and charm—sure to delight anyone who enjoys spooky gifts or book lover gifts.
  • Portable and Easy to Use: Enjoy hassle-free decorating with our portable halloween ghosts statue. Allowing instant placement on tables, shelves, or nightstands. Whether used for halloween 2026 decor, year-round indoor figurine, or party decorations, this ghost decor adds a playful yet elegant touch with zero setup required.

Record the starting state

Write down the exact Ghost and Ghost-CLI versions, Node.js version, database engine and version, active theme name and version, and the integrations that matter to your publication. Include mail delivery, memberships, Stripe, webhooks, analytics, search, comments, and API consumers. This inventory gives you a comparison point if the site behaves differently after the restart.

Also note whether the installation uses MySQL, MariaDB, or SQLite3; whether it is behind NGINX; and whether it was created with a pre-1.0.0 Ghost-CLI. Those details affect whether a normal in-place update is appropriate. Keep the notes with the maintenance record rather than relying on memory after a stressful failure.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Check the installation and available update

  1. Open an SSH session and change to the Ghost installation directory.
  2. Switch to the non-root account that manages the site.
  3. Run ghost version to record the installed Ghost-CLI and Ghost versions.
  4. Run ghost check-update to see whether a newer Ghost release is available.

The Ghost-CLI reference documents ghost update for the latest release and ghost update [version] when you need to target a specific version. Keep the output from these checks with your maintenance notes so you can identify exactly what changed: Ghost-CLI documentation.

A version check is not a compatibility approval. It tells you what is installed and whether an update is available; it does not replace reading the release notes for a major upgrade. Check the database engine, Node.js runtime, theme, and integrations against the target release before you commit to the command.

Back up before every update

Run ghost backup before changing Ghost. The official backup ZIP contains the core material required to rebuild a site: JSON content, a complete member CSV export, installed themes, images, files, media, routes, and redirects. The procedure is documented in Ghost’s manual backup guide.

Do not leave the only copy on the same server. Make a second copy of the backup archive away from the VPS or physical host, and keep the transfer intact rather than extracting and selectively copying files. An external hard drive is a practical generic destination for backup archives and exported content if it is stored separately from the server and protected from accidental overwrites.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

After the command finishes, confirm that the ZIP exists, note its filename and location, and copy it off-server before proceeding. If your storage process lets you verify a transferred file, do so before deleting or replacing anything on the original host. The archive is your first recovery option if the update fails, while separate exports make it easier to inspect or migrate individual parts.

For additional recovery options, export the following from Ghost Admin where applicable:

  • Labs content JSON.
  • Member CSV.
  • Routes and redirects.
  • Downloaded copies of every custom theme.
  • A separate copy of the content directory’s images, files, and media.

These extra copies are useful if an archive is damaged, if you need to inspect a file without restoring the entire site, or if a later migration requires manual verification. They also preserve material that is easy to overlook when moving between servers, such as a custom theme or uploaded media.

Routine in-place update

For a supported installation, the normal sequence is deliberately short because Ghost-CLI handles package installation, migrations, and the service restart. Do not substitute a manual package-manager upgrade for the documented Ghost-CLI workflow on a production site.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  1. Change to the Ghost installation directory as the site’s non-root owner.
  2. Run ghost version and ghost check-update.
  3. Run ghost backup and verify that the resulting archive exists and can be copied off-server.
  4. Run ghost update to install the latest available Ghost release.
  5. If you need a controlled target, run ghost update [version] with the exact Ghost version you have chosen.
  6. Allow Ghost-CLI to complete its migrations and restart. If you intentionally want to stage the restart, use ghost update --no-restart, then run ghost restart during your maintenance window.
  7. If the update fails and the installation is eligible for rollback, use ghost update --rollback as documented by Ghost-CLI.

Ghost says releases are typically published every one to two weeks, while major versions arrive every 12 to 18 months. Frequent releases make routine updates useful, but the much less frequent major releases require a separate compatibility plan. Ghost describes the major-version process and its backwards-compatibility warning in the Ghost-CLI documentation.

Use an exact version target when you have a change-control requirement, need to coordinate a theme or integration update, or want to separate two major changes. A latest-release update is simpler for a current supported site, but it still deserves a backup and a post-update verification pass.

Handling a major Ghost version upgrade

A major upgrade is not just a larger package download. It can change APIs, theme expectations, editor behavior, database requirements, or integration behavior. Ghost states that major releases break backwards compatibility and require a more involved process. Before crossing the major-version boundary:

  1. Read the release-specific breaking changes in Ghost’s update guide.
  2. Confirm that the active theme and any custom theme components support the target major version.
  3. Update to the latest minor release in your current major line first.
  4. Take and safely store a fresh ghost backup.
  5. Record the current version and the target version, and decide how you will roll back if the site fails validation.
  6. Schedule a maintenance window long enough to perform the update and complete post-restart checks.

Updating to the latest minor version before a major transition reduces the number of changes being introduced at once. It also gives you a cleaner baseline for comparing theme and integration behavior. If a replacement installation is required, build and test it before changing DNS or directing production traffic to it, and keep the old installation available until the new one passes validation.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Theme compatibility deserves special attention. A site can complete the database migration and still render incorrectly because a template, helper, custom component, or CSS assumption changed. Download the current theme before the update, compare it with the target release guidance, and be prepared to activate a known-compatible theme while you repair the custom one.

In-place update versus reinstall

Ghost’s update guidance distinguishes ordinary supported installs from older or unsupported layouts. Use this decision table before running an upgrade.

Installation condition Recommended path Downtime and migration considerations
Ghost 3.x, 4.x, or 5.x with MySQL In-place update with Ghost-CLI Ghost’s update guide recommends this path for supported MySQL installations. Plan a restart and validation window, but a full rebuild is normally unnecessary.
Ghost below 3.0 Reinstall and migrate Ghost recommends reinstalling rather than forcing a direct in-place upgrade. Preserve the old site while the replacement is tested.
Production Ghost using SQLite3 Reinstall and migrate Ghost’s guide recommends reinstalling production SQLite3 sites. Treat the move as a controlled migration rather than a routine command.
MariaDB installation Plan a migration to MySQL 8 Ghost advises MariaDB users to migrate to MySQL 8 for the supported stack. Include database conversion and application testing in the schedule.
Installation created with Ghost-CLI before version 1.0.0 Follow the deprecated-CLI migration or reinstall path Very old CLI layouts may need cleanup or manual migration before normal updates work. Do not force repeated production updates.

Compare the two paths using more than Ghost’s current version number. Consider the database engine, supported Node.js and web-server stack, theme compatibility, acceptable downtime, migration complexity, rollback options, and whether the site uses a legacy Ghost-CLI layout. An in-place update changes one installation and usually offers Ghost-CLI rollback. A reinstall creates a new installation and gives you a cleaner supported baseline, but it requires a full content, media, theme, routes, redirects, and integration migration.

The source for the version and database recommendations is How To Update Ghost. The guidance for rebuilding an older installation is in How to reinstall Ghost.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

How to prepare a reinstall or migration

A reinstall is a migration project, not a shortcut around backups. Ghost’s reinstall guide says to update Node.js and Ghost-CLI first, move to the latest minor version available for the existing major line, create a full ghost backup, and then follow the documented reinstall migration procedure: How to reinstall Ghost.

Use this order:

  1. Inventory the old server, Ghost version, database engine, Node.js version, Ghost-CLI version, theme, integrations, routes, and redirects.
  2. Update Node.js and Ghost-CLI to versions compatible with the migration instructions.
  3. Bring the existing Ghost installation to its latest minor release before attempting the major move, when the guide supports that step.
  4. Run ghost backup and copy the archive off-server.
  5. Export Labs content JSON, member CSV, routes, redirects, themes, and the relevant content files as separate recovery material.
  6. Build the replacement installation on the supported stack where possible: Ubuntu 24, Node.js 22 LTS, MySQL 8.0, NGINX, systemd, at least 1GB of memory, and a non-root Ghost user.
  7. Restore or migrate the content according to Ghost’s reinstall procedure, then test the site before changing DNS or directing production traffic to it.

Keep the old installation available until the replacement has passed the complete verification checklist. A migration gives you a safer fallback than deleting the old site immediately after the new server starts. Record the new installation directory, owner, versions, database details, and theme state so future updates begin from a known baseline.

Very old Ghost-CLI installations

Installations created with pre-1.0.0 Ghost-CLI versions can contain layouts and configuration assumptions that current Ghost-CLI does not handle cleanly. Ghost’s deprecated-CLI guidance warns that these sites may require manual cleanup, migration, or a reinstall before ordinary updates work: Updating from a deprecated Ghost-CLI.

Rank #4

If ghost version identifies a very old CLI, do not repeatedly force ghost update while production is live. First take an off-server backup, read the deprecated-CLI instructions, and choose between the documented cleanup and migration paths. Preserve the old server until the replacement or repaired installation is verified.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Verify the site after the update

Do not treat a successful command exit as proof that the publication is healthy. Restart if required, then test from a browser and from the administrative interface. Verification should cover the complete publication, not only the homepage.

  • Open the public homepage and several representative posts and pages.
  • Sign in to Ghost Admin and confirm that the editor, dashboard, and navigation load normally.
  • Check the active theme on desktop and mobile widths, including menus, post templates, code blocks, images, and custom components.
  • Open older posts and verify that routes, redirects, canonical URLs, tags, authors, and pagination still behave as expected.
  • Load images, downloadable files, audio or video media, and newly uploaded assets.
  • Send a test publication email or newsletter message if memberships and mail delivery are enabled.
  • Check member signup, login, paid access, and Stripe-connected membership flows if the site uses them.
  • Exercise custom integrations, webhooks, API consumers, analytics, comments, and search features that matter to the publication.
  • Review the web server and Ghost logs for startup errors, failed migrations, permission errors, or repeated integration failures.

Only after these checks pass should you close the maintenance window or remove the old installation used as a migration fallback. Leave the backup archive and exported files available for the retention period required by your own operating practice.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Common failure paths and recovery choices

The update reports an error before completion

Keep the terminal output and check the Ghost and web-server logs. Confirm disk space, file ownership, Node.js compatibility, database connectivity, and the availability of the backup archive. If Ghost-CLI’s rollback is available for that update, use ghost update --rollback, then restart and test the site. Do not delete the failed installation or backup while you are still determining whether rollback succeeded.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The site starts but the theme is broken

Switch to a known-compatible theme or restore the previous theme from the downloaded copy, then review the target release’s breaking changes. A theme failure is a compatibility issue, not evidence that the database should be discarded. Once the site is stable, update the custom theme deliberately and test its templates at desktop and mobile widths.

Admin works but images or files return errors

Check that the content directory and its subdirectories retain the correct owner and permissions. Compare the affected paths with the separate images, files, and media copy made before the update, and inspect NGINX and Ghost logs for path or permission errors. Test both an older asset and a newly uploaded file.

Membership or mail functions fail

Verify the mail configuration, member settings, Stripe connection, webhooks, and integration credentials after the restart. Test both a new signup and an existing-member login instead of checking only that the Admin screen opens. A working dashboard does not prove that outbound email or paid access is functioning.

A legacy installation cannot run current commands

Stop forcing in-place upgrades. Follow Ghost’s deprecated-CLI instructions and the reinstall migration guide, using the off-server backup and exported content as the recovery source. Keep the original server untouched until the migrated site has passed public, administrative, media, mail, and membership checks.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Command reference

Command Purpose
ghost version Records installed Ghost and Ghost-CLI versions.
ghost check-update Checks whether a Ghost update is available.
ghost backup Creates Ghost’s official backup ZIP.
ghost update Updates to the latest available Ghost release.
ghost update [version] Updates to a specified Ghost version.
ghost update --no-restart Stages the update without immediately restarting the service.
ghost update --rollback Attempts to reverse an update when rollback is available.
ghost restart Restarts Ghost after a staged update or troubleshooting change.

A practical maintenance checklist

  • Confirm the installation directory and non-root owner.
  • Record Ghost, Ghost-CLI, Node.js, database, theme, and integration versions.
  • Confirm whether the host matches the documented stack: Ubuntu 24, Node.js 22 LTS, MySQL 8.0, NGINX, systemd, and at least 1GB of memory.
  • Run ghost check-update.
  • Create and copy off-server a fresh ghost backup.
  • Save separate Labs, member, routes, redirects, theme, and media exports.
  • Decide whether the site qualifies for in-place updating or needs reinstall migration.
  • Read release-specific breaking changes for any major upgrade.
  • Update the current major line to its latest minor release first.
  • Run the chosen update command during a maintenance window.
  • Restart if required and test the public site, Admin, theme, media, routes, redirects, mail, memberships, and integrations.
  • Keep the backup and migration fallback until the publication has operated normally after the update.

Frequently Asked Questions

Can I safely run ghost update?

Yes, for a supported Ghost 3.x, 4.x, or 5.x installation using MySQL, after recording versions and creating an off-server ghost backup. Review release notes first when the update crosses a major version.

What should I back up before updating Ghost?

Run ghost backup. Its ZIP includes JSON content, a full member CSV, themes, images, files, media, routes, and redirects. Keep a second copy and separately export Labs JSON, member CSV, routes, redirects, themes, and the relevant content files.

Do I need to reinstall Ghost for a major upgrade?

Not automatically. Supported Ghost 3.x–5.x MySQL sites can generally update in place, but major upgrades require breaking-change review, theme checks, a latest-minor baseline, and rollback planning. Sites below Ghost 3.0 or production SQLite3 sites should follow a reinstall and migration path.

What if my site uses SQLite3 or MariaDB?

Ghost recommends reinstalling and migrating production SQLite3 sites. MariaDB users are advised to migrate to MySQL 8 for the supported stack rather than treating MariaDB as the target for a routine upgrade.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

How much memory does the supported self-hosting stack require?

Ghost’s hosting documentation lists at least 1GB of memory, along with Ubuntu 24, Node.js 22 LTS, MySQL 8.0, NGINX, systemd, and a non-root user for Ghost commands.

What does ghost update --no-restart do?

It stages the update without immediately restarting the service. Run ghost restart during the planned maintenance window, then complete the public, Admin, theme, media, mail, membership, and integration checks.

How do I recover if an update fails?

Keep the terminal and log output, check disk space, ownership, Node.js compatibility, and database connectivity, then use ghost update --rollback when Ghost-CLI supports rollback for that update. For legacy or unsupported sites, use the off-server backup and reinstall migration procedure instead of forcing another update.

How often should I expect Ghost updates?

Ghost’s CLI documentation says normal releases are typically published every one to two weeks, while major versions arrive every 12 to 18 months. The frequent cadence makes backups and routine checks important; the major cadence makes compatibility planning essential.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The Bottom Line

For a current Ghost 3.x–5.x site on MySQL, use the non-root owner, record versions, run ghost check-update, create and copy off-server a ghost backup, then run ghost update. Treat major releases, SQLite3 production sites, Ghost versions below 3.0, MariaDB installations, and pre-1.0.0 Ghost-CLI layouts as migration decisions. After every change, verify the public site, Admin, theme, media, routes, mail, memberships, and integrations before declaring the update complete.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

ghostGhost-CLILinuxself-hostingwebsite maintenance

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Recommended PC Tool
Recommended PC Tool
Crashes, No Sound, or Screen Glitches?Free driver scan
Windows Errors? Fix Them Before They SpreadFree repair scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.