Free tools Windows power users keep installed
One-click scans. No signup required.
The most complete routine backup for a self-hosted Ghost publication is a Ghost-CLI ZIP archive created with ghost backup from the Ghost installation directory. Move that ZIP off the production server immediately, preserve your configuration and secrets separately, and keep enough dated copies for your publication’s recovery needs. If Ghost-CLI is unavailable, Ghost Admin’s Labs export, a members CSV, your media, routes, redirects, and theme provide a manual fallback.
Antihost offers Linux VPS plans with full root access, unlimited traffic on a 1 Gbps port and a 14-day free trial.
What a Ghost backup has to protect
A Ghost site is more than its post database. A usable recovery set must let you rebuild the publication’s content, appearance, URLs, media library, memberships, and server settings on a replacement installation. Losing any one of those can turn a seemingly successful restore into a site with broken images, missing members, incorrect routes, or an unusable theme.
As an Amazon Associate I earn from qualifying purchases.
- Content: posts, pages, tags, settings, and other publication data represented in Ghost’s content export.
- Members: the complete member list in CSV format. Paid-member recovery has an additional Stripe requirement.
- Theme: every installed theme, including the active theme.
- Media: images, uploaded files, video, and audio stored in the site’s content storage.
- URL rules:
routes.yamland the redirects file, which may beredirects.yamlorredirects.jsondepending on the Ghost version. - Server recovery material: the self-hosted configuration JSON, database connection details, and secrets. Treat these as sensitive and preserve them outside publicly accessible web files.
The Ghost-CLI archive covers the first five categories. Configuration and credentials still need deliberate handling: keep a protected copy alongside, but separate from, the downloadable site archive. A backup that contains posts but no database settings, media, or secrets may not be enough to bring the publication back online.
The recommended method: create a Ghost-CLI ZIP backup
Ghost’s official CLI documentation identifies ghost backup as the standard way to generate a ZIP file containing site data. Run it from the Ghost installation directory, not from an arbitrary shell location.
#1 Best Overall
- Log in to the server with an account that can run Ghost-CLI for the installation.
- Change to the Ghost installation directory. Use the directory that contains the site’s Ghost installation and its persistent
contentdirectory. - Run the backup command:
ghost backup. - Wait for Ghost-CLI to finish and note the ZIP file it creates. Do not assume the job is complete merely because the command was accepted; confirm that the archive exists and has a plausible file size.
- Copy the ZIP away from production. Download it to an administrator workstation, an external backup drive, or another controlled storage location. Leaving the only copy on the same server defeats the backup if that server’s disk, account, or filesystem is lost.
- Record the backup date and site identity. A dated filename or inventory entry makes it possible to select the right archive during an incident without opening every file.
The command creates a point-in-time archive; it does not establish an off-server retention policy for you. Keep historical copies according to the publication’s recovery requirements, and restrict access because member data and configuration material can be sensitive.
What the Ghost-CLI archive contains
| Data | How it is represented | Why it matters during recovery |
|---|---|---|
| Site content | JSON export | Restores posts, pages, tags, and publication data through Ghost’s import process. |
| Members | Full member CSV export | Recreates the member list; paid memberships require the original Stripe account in Live mode before import. |
| Themes | All installed themes, including the active theme | Preserves the design files needed to return the publication to its previous appearance. |
| Images and files | Media from the site’s content storage, including video and audio | Prevents posts from returning with missing or broken media links. |
| Routes | routes.yaml |
Preserves custom routing rules when the site uses them. |
| Redirects | redirects.yaml or redirects.json, depending on Ghost version |
Retains redirects that protect old links and search visibility. |
Ghost’s documented archive contents do not remove the need to preserve your self-hosted configuration JSON, database connection details, and secrets as recovery material. Keep those files in a restricted location and make sure an authorized administrator knows how to retrieve them.
Protecting and organizing the ZIP
Use the production server only as the place where the archive is created. The recovery copy should live on a different storage system or physical device. An external USB hard drive or SSD is useful for a local offline copy; a separate controlled storage service can provide another off-server copy. Whichever destination you choose, access controls should prevent public downloads and unauthorized edits.
- Use more than one location. A second copy protects against a failed disk or an accidental deletion at the first destination.
- Keep historical versions. The official Ghost pages do not prescribe a universal retention schedule. Choose one based on how much publishing activity you can afford to lose and how far back you may need to investigate a problem.
- Protect secrets separately. Configuration files can contain credentials. Store them with restricted permissions and do not place them in a public web directory.
- Consider encryption. Ghost’s documentation does not mandate an encryption standard for self-hosted backups, so select an approach that fits your organization’s security policy and key-management ability.
- Track what each archive represents. Note the Ghost version, server, date, and whether the matching configuration and database details were captured at the same time.
These storage and retention choices are operational policy decisions rather than settings imposed by Ghost. The important distinction is that creating a ZIP and having a recoverable, off-server backup are separate tasks.
Rank #2
Manual backup when Ghost-CLI cannot be used
If the CLI command is unavailable, a manual set can still preserve the publication. It requires more separate downloads and more opportunities to omit a file, so use a checklist and keep all pieces together in a clearly dated backup folder.
- Export content: in Ghost Admin, open Labs and choose Export to download the content JSON.
- Save URL files: download the current redirects file. If the site uses custom routes, download
routes.yamlas well. - Copy media: copy all images, files, and other media from the server’s content storage, including video and audio.
- Export members: obtain the members CSV. If the publication has paid members, note that restoration requires reconnecting the same Stripe account in Live mode before importing that CSV.
- Preserve the theme: in Ghost Admin, use Design to download the active theme, or retain the theme files from a known-good CLI archive.
- Preserve server settings: save the self-hosted configuration JSON and record the database connection details. On a new host, configuration paths may need to be adjusted to match the replacement installation.
- Move the set off-server: store the JSON, CSV, theme, routes, redirects, media, and configuration material together in protected backup storage.
Do not treat the content JSON as a complete backup. It does not by itself provide the media library, theme files, redirects, routes, member CSV, or server configuration needed for a faithful rebuild.
Windows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallOutdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchHow to restore Ghost after a server failure or migration
Prepare a functioning Ghost installation on the replacement host before importing data. Use the same backup set whenever possible: the content export, media, route and redirect files, theme, members CSV, and matching configuration information. Ghost’s manual restore procedure follows a specific order because later imports depend on files and services being present first.
- Copy media first. Put images, files, video, and audio into the new installation’s content storage.
- Correct ownership. Where the documented
ghostuser is used, runsudo chown -R ghost:ghost contentfrom the appropriate installation context so Ghost can read and write the content directory. - Restart Ghost: run
ghost restart. - Import content. In Ghost Admin, open Labs and import the exported content JSON. For a ZIP archive, use the Ghost-CLI import path documented for the Ghost version installed on the replacement host; CLI syntax can vary by version.
- Restore routing files. Import
routes.yamlwhen custom routes are used, then import the redirects file in the format supplied by that Ghost version. - Restore the theme. In Ghost Admin, open Design and upload the preserved theme.
- Reconnect paid memberships. Reconnect the original Stripe account in Live mode before importing the members CSV. Using a different account or test mode does not satisfy the documented paid-member restoration requirement.
- Import members. Import the members CSV and wait for Ghost’s completion notification before treating the member restore as finished.
After the sequence, inspect representative posts with images, a page using a custom route, an old URL that should redirect, the active theme, and the member area. Those checks are practical validation steps; they catch omissions that a successful import message may not reveal.
Rank #3
Restoring from a CLI ZIP versus separate exports
| Consideration | Ghost-CLI ZIP | Manual export set |
|---|---|---|
| Completeness | Packages the documented content JSON, members CSV, themes, media, routes, and redirects in one archive. | Depends on collecting every export and server file individually; omissions are easier. |
| Operational effort | One command creates the archive, followed by an off-server copy. | Requires separate Admin exports, server copies, and a checklist. |
| Portability | Convenient for moving a site when the destination supports the documented CLI restore path. | Works as a component-by-component rebuild when CLI backup is not available. |
| Media and themes | Included in the archive. | Must be copied or downloaded separately. |
| Members and Stripe | Includes the member CSV, but paid restoration still requires the same Stripe account in Live mode. | Requires a separate member export and the same Stripe prerequisite. |
| Off-server storage | Not automatic; you must move the generated ZIP. | Not automatic; every exported file must be moved and protected. |
How to make the backup recoverable, not merely present
A file that has never been opened or restored is an assumption, not evidence. Ghost’s official pages do not publish a universal recovery-time target, backup-success rate, retention number, or mandatory off-site service for self-hosted installations. Set those policies yourself and verify that your chosen process works.
Run a test restore
As an operational best practice, restore a copy on a disposable or staging instance rather than experimenting on production. Use a duplicate of the archive and configuration material, then follow the documented restore order. Confirm that the site starts, media loads, routes resolve, redirects behave, the theme activates, and the member import completes. A staging test also reveals whether configuration paths, ownership, or database details need adjustment on the target host.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Keep a recovery inventory
- Archive filename and creation date.
- Ghost version and source server.
- Location of the matching configuration JSON and database connection record.
- Storage locations for the off-server and offline copies.
- Who can access the files and the credentials needed to reach the replacement host.
- Date and result of the last test restore.
Separate backup creation from backup verification
The ghost backup command creates the ZIP, but moving it, protecting it, and testing a restore are separate controls. A process that reports success while leaving the only archive on the failed server has not met the practical goal of disaster recovery.
Common failure points and fixes
The command is run from the wrong directory
Ghost-CLI expects to operate in the Ghost installation context. Change into the directory that contains the installation before running ghost backup. If you are unsure which directory is authoritative, identify the installation used by the running site rather than creating an archive from a neighboring or abandoned copy.
Rank #4
The ZIP exists, but media is missing after restore
Confirm that the archive was fully created and that the media portion was copied to the replacement installation’s content storage. For a manual backup, media must be copied explicitly; a content JSON export alone cannot recreate uploaded images, files, video, or audio.
The restored site has the wrong appearance
Upload the preserved theme through Design. A content import does not substitute for restoring theme files, and a site with the right posts can still look incorrect if the active theme was not included.
Custom URLs return errors
Restore routes.yaml when custom routes were used, and import the redirects file supplied by the source Ghost version. Check whether the file is named redirects.yaml or redirects.json before importing.
Paid members cannot be restored
Reconnect the original Stripe account in Live mode before importing the members CSV. The documented requirement is account continuity and Live mode; a member CSV by itself is not a substitute for that connection.
Best Value
Ghost cannot read the restored content
Correct ownership of the content directory where the documented ghost user is used by running sudo chown -R ghost:ghost content, then restart with ghost restart. Apply the command in the correct installation context and verify the service account used by that host.
The Tool Desk
Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Configuration points to the old server
Review the preserved configuration JSON and database connection details. A migration may require path changes for the new host, so do not copy settings blindly without checking the destination’s installation layout and credentials.
A practical backup schedule for a self-hosted publication
Ghost does not define one retention schedule that fits every publication. Choose frequency and history based on publishing volume, membership activity, and the maximum amount of work the organization could recreate after an incident. Whatever schedule you choose, apply the same routine each time:
- Create the CLI ZIP, or complete every item in the manual checklist.
- Capture configuration and database connection information at the same point in time.
- Move the backup off the production server.
- Keep the number of historical copies your recovery policy requires.
- Record the archive in an inventory and periodically perform a test restore.
For a small blog, a manually triggered archive may be acceptable if someone reliably performs and verifies it. A publication with frequent posts, active memberships, or multiple administrators needs a written owner for the process so a backup is not skipped when the usual person is unavailable.
What to do before a planned migration
Make a fresh backup immediately before the migration and keep the previous known-good archive until the new host has been checked. Confirm that you have the content JSON, full members CSV, theme, media, routes, redirects, configuration JSON, and database details. On the destination, restore media before content, correct ownership, restart Ghost, import content and routing files, upload the theme, reconnect Stripe in Live mode if applicable, and then import members. This mirrors the documented restore order and gives you a clear rollback point if the migration needs to be reversed.
Security and access considerations
Backup archives can contain member information and configuration secrets. Limit who can download, copy, or restore them, and avoid placing them in a web-accessible directory. If you use an external drive, store it where unauthorized visitors cannot reach it. If you encrypt archives, document how the recovery team will obtain the decryption key without storing that key in the same exposed location as the ZIP. Ghost’s documentation does not prescribe one encryption or retention standard, so these controls must be defined by the site owner.
Final checklist
ghost backupwas run from the correct Ghost installation directory, or the full manual checklist was completed.- The archive contains content JSON, members CSV, themes, media, routes, and redirects.
- Configuration JSON, database connection details, and secrets were preserved separately and protected.
- The backup was copied off the production server and at least one historical copy was retained.
- A replacement installation can receive the media, ownership correction, restart, imports, theme, Stripe connection, and member CSV in the documented order.
- A staging or disposable restore has been tested as an operational best practice.
The reliable pattern is simple but non-negotiable: create the complete Ghost-CLI archive, move it away from the server, preserve configuration and secrets, and prove that the files can be restored. Manual exports are a viable fallback, but only when every component is collected and tested together.
Quick Recap
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.

