iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more
Antihost offers Linux VPS plans with full root access, unlimited traffic on a 1 Gbps port and a 14-day free trial.
The safest standard backup for a self-hosted Ghost publication is the Ghost-CLI ZIP archive. From the Ghost installation directory, run ghost backup, then move the resulting ZIP to storage that is separate from the production server. The archive contains your content, members export, themes, media, routes, and redirects, but a reliable disaster-recovery plan also preserves the self-hosted configuration and database connection details. If the CLI is unavailable, Ghost’s Admin export and a manual copy of the server’s content files provide a fallback.
What a Ghost backup needs to preserve
A Ghost site is more than its posts. A usable recovery copy must let you rebuild the publication on another server and reconnect the services that make it operate. Plan to preserve these categories:
Recommended Free Tools
- Structured content: posts, pages, settings, tags, authors, and other site data exported in Ghost’s JSON format.
- Members: the complete member CSV export, including the information Ghost makes available for import.
- Presentation: every installed theme, especially the active theme.
- Uploaded files: images, documents, video, audio, and other media in the server’s content storage.
- Routing: custom routes in
routes.yamland redirects inredirects.yamlorredirects.json, depending on the Ghost version. - Self-hosted settings: the configuration JSON, secrets, and database connection details required to point a new installation at the correct services.
The Ghost-CLI archive handles the first five groups in one package. Treat configuration and secrets as separate recovery material unless you have verified that your particular archive contains everything your deployment needs. Store those files with restricted access; they can contain credentials that should never be placed in a public download directory or a source repository.
Method 1: Create the official Ghost-CLI ZIP backup
Before you start
- Use a shell account that can run Ghost-CLI commands for the installation.
- Run the command from the Ghost installation directory, not from an unrelated home directory.
- Confirm that the server has enough free space to create an additional compressed copy of the site.
- Decide where the ZIP will be moved after creation. A file left on the same server does not protect you from disk failure, a compromised host, or an accidental server deletion.
Create and remove the archive from the production host
- Open a terminal session on the server that runs Ghost.
- Change to the installation directory used by your publication.
- Run
ghost backup. - Wait for Ghost-CLI to finish and identify the ZIP file it reports. Do not assume the backup is complete until the command has returned successfully.
- Copy or download that ZIP to off-server storage, such as an external backup drive, a protected workstation, or an encrypted storage location controlled by your organization.
- Restrict access to the downloaded archive and any separate configuration file. Remove temporary copies from shared or publicly served directories.
- Record enough context to identify the copy later: the site, creation date, Ghost version if known, and whether configuration and secrets were stored alongside it.
Ghost’s official CLI documentation describes ghost backup as generating a ZIP file containing site data. The command is the most complete single-step option for a self-hosted installation because it gathers Ghost-managed data, themes, media, and routing files together instead of relying on a series of separate exports.
#1 Best Overall
- Easily store and access 2TB to content on the go with the Seagate Portable Drive, a USB external hard drive
- Designed to work with Windows or Mac computers, this external hard drive makes backup a snap just drag and drop
- To get set up, connect the portable hard drive to a computer for automatic recognition no software required
- This USB drive provides plug and play simplicity with the included 18 inch USB 3.0 cable
- The available storage capacity may vary.
What the Ghost-CLI archive contains
| Archive item | What it is used for during recovery |
|---|---|
| Content JSON | Imports posts, pages, settings, tags, and other structured Ghost content. |
| Member CSV | Restores the member records that Ghost exports for import. |
| Installed themes | Preserves the active theme and other themes available in the installation. |
| Images, files, and media | Recreates uploaded assets, including video and audio stored in the content area. |
routes.yaml |
Restores custom routing rules when the site uses them. |
| Redirects file | Restores redirects from redirects.yaml or redirects.json, according to the Ghost version. |
The archive is not a substitute for documenting the host itself. Keep a protected copy of the self-hosted configuration JSON, database connection information, domain and proxy settings, and credentials needed to reconnect external services. Configuration paths can require adjustment when the site moves to a different server.
Method 2: Build a manual backup in Ghost Admin and on the server
Use the manual method when Ghost-CLI cannot run, when you need individual files for a migration, or when you want an additional independently produced export. It requires more handling and is easier to make incomplete, so follow every step.
Free tools Windows power users keep installed
One-click scans. No signup required.
- Export content JSON. In Ghost Admin, open Labs, choose Export, and download the content JSON file. Keep the original file unchanged.
- Save routing files. Download the current redirects file. If the publication uses custom routes, also download
routes.yaml. Keep track of whether the redirects file is YAML or JSON; the filename varies by Ghost version. - Copy media from the server. Copy all images, files, video, audio, and other media from the installation’s content storage. An Admin content export does not by itself provide a replacement for these binary files.
- Export members. Download the members CSV from the relevant Ghost member-management screen. Treat this as sensitive personal data and protect it with the same care as the site configuration.
- Preserve the theme. In Ghost Admin, open Design and download the active theme. If several themes are part of your recovery plan, preserve each one or use the copies in a verified CLI archive.
- Record configuration and database details. Preserve the self-hosted configuration JSON and document the database connection details, domain settings, mail settings, storage paths, and any other values needed to make the new installation behave like the old one. Do not publish secrets in a ticket, shared document, or publicly accessible backup folder.
A manual backup is complete only when the JSON, CSV, theme, media, routes, redirects, and configuration records are all present. A content export without its images produces a site that may open but displays broken or missing assets; a theme without its content does not recreate the publication.
Rank #2
- Easily store and access 5TB of content on the go with the Seagate portable drive, a USB external hard Drive
- Designed to work with Windows or Mac computers, this external hard drive makes backup a snap just drag and drop
- To get set up, connect the portable hard drive to a computer for automatic recognition software required
- This USB drive provides plug and play simplicity with the included 18 inch USB 3.0 cable
- The available storage capacity may vary.
How to store Ghost backups safely
Keep the recovery copy off the production server
Copy every completed ZIP or manual export away from the machine that runs Ghost. The purpose is to survive the loss or compromise of that machine. An external USB hard drive or SSD is useful for an offline copy; encrypted object storage or another controlled remote location can provide geographic separation. Choose storage that your team can actually access during an outage and that does not expose member data or credentials through a public URL.
Choose retention and encryption policies deliberately
Ghost’s official self-hosting pages do not prescribe a universal retention schedule, encryption standard, or automated off-site service. Set those policies according to how much publishing and membership activity you can afford to lose, how long you may need to investigate an incident, and the privacy requirements for your members. Keep enough historical copies to meet those needs, protect them from unauthorized access, and document who can restore them.
Make the files identifiable and readable
Use a naming convention that records the publication and date without putting secrets in the filename. Keep a short inventory of where each copy is stored and which configuration version belongs with it. Periodically confirm that the archive can be opened and that the exported JSON, CSV, theme ZIP, routes, redirects, and media files are not zero-byte or corrupted.
Quick wins for a faster PC:
Repair Windows errors before they cause bigger problemsFix Now →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Clear out junk files and repair common Windows errorsFree Scan →Rank #3
- Easily store and access 1TB to content on the go with the Seagate Portable Drive, a USB external hard drive.Specific uses: Personal
- Designed to work with Windows or Mac computers, this external hard drive makes backup a snap just drag and drop. Reformatting may be required for Mac
- To get set up, connect the portable hard drive to a computer for automatic recognition no software required
- This USB drive provides plug and play simplicity with the included 18 inch USB 3.0 cable
- The available storage capacity may vary.
Restore Ghost after a server failure or migration
Install a compatible self-hosted Ghost instance on the replacement host first, then restore in the sequence below. The order prevents Ghost from importing records that refer to media, routes, or services that are not yet available.
- Prepare the new installation. Install Ghost and establish the required domain, database, and service configuration. Adjust configuration paths and connection details for the new host rather than copying paths that only existed on the old server.
- Copy media first. Place the backed-up images, files, video, audio, and other media into the new installation’s content storage.
- Correct ownership. Where the documented Ghost user is
ghost, runsudo chown -R ghost:ghost contentfrom the installation directory so the service can read and write the restored content. - Restart Ghost. Run
ghost restartand confirm that the new installation starts without configuration or permission errors. - Import structured content. In Ghost Admin, open Labs and import the exported content JSON. For a ZIP restore, use the documented Ghost-CLI import path for the archive rather than unpacking files into arbitrary directories.
- Restore routes and redirects. Import
routes.yamlwhen custom routes are used, then import the matching redirects file. Use the correct file format for the Ghost version on the new host. - Upload the theme. In Ghost Admin, open Design and upload the preserved theme. Activate it only after checking that its required assets are present.
- Reconnect paid subscriptions. If the publication uses paid memberships, reconnect the original Stripe account in Live mode before importing members. Ghost requires that same account connection for paid-member restoration.
- Import members. Import the members CSV and wait for Ghost’s completion notification. Do not treat the upload screen alone as proof that the import finished.
After the sequence, sign in as an administrator, open representative posts and pages, check images and downloads, test a custom route and a redirect, verify the active theme, and confirm that membership functions point to the intended live payment account. These checks are operational practice rather than a substitute for Ghost’s documented import steps.
Ghost-CLI archive versus manual exports
| Consideration | Ghost-CLI ZIP | Manual procedure |
|---|---|---|
| Completeness | Packages content JSON, member CSV, themes, media, routes, and redirects together. | Requires separate exports and a separate server copy of media and configuration. |
| Operational effort | One command from the installation directory, followed by moving and protecting the ZIP. | Several Admin downloads, server file copies, and a careful inventory. |
| Portability to a new host | Convenient starting point for the documented ZIP restore path. | Works when the CLI archive is unavailable, but each component must be restored in the right order. |
| Media and themes | Included in the archive. | Must be copied or downloaded explicitly. |
| Members and Stripe | Includes the member CSV; paid-member restoration still requires the original Stripe account in Live mode. | Requires a separate member CSV export and the same Stripe reconnection requirement. |
| Off-server storage | Not automatic; you must move the generated ZIP away from production. | Not automatic; every export and copied directory must be transferred and protected. |
The CLI archive is the practical default for routine backups. Keep a manual export as a fallback or as a separately generated copy when the publication’s risk profile justifies the additional effort.
Rank #4
- Easily store and access 4TB of content on the go with the Seagate Portable Drive, a USB external hard drive.Specific uses: Personal
- Designed to work with Windows or Mac computers, this external hard drive makes backup a snap just drag and drop
- To get set up, connect the portable hard drive to a computer for automatic recognition no software required
- This USB drive provides plug and play simplicity with the included 18 inch USB 3.0 cable
- The available storage capacity may vary.
Test a restore before you need it
A backup is only useful if it can be read and restored. The following is operational best practice, not a universal requirement set by Ghost’s documentation:
- Restore a copy on a disposable or staging instance rather than experimenting on production.
- Use the same restore order: media, ownership, restart, content, routes, redirects, theme, Stripe connection, and members.
- Open posts from different dates and check that inline images, downloadable files, video, and audio load.
- Exercise at least one custom route and one redirect if the site uses them.
- Confirm that the theme is active and that its navigation, templates, and static assets render correctly.
- Verify the member import completion notice and check representative member records without exposing their data.
- Record any manual edits needed for the new host so the next recovery is repeatable.
Testing also reveals a common distinction: a technically valid JSON export can import successfully while the site still lacks media, theme files, routes, redirects, or external-service configuration. Validate the whole publication, not just the import message.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Troubleshoot common backup and restore problems
ghost backup does not complete
- Confirm that you are in the correct Ghost installation directory and are using an account permitted to manage that installation.
- Check available disk space; the command must write a ZIP in addition to the live site data.
- Review the command output for a permissions or unreadable-file problem, then correct the underlying ownership or access issue before trying again.
- Do not copy a partially written ZIP off the server and label it as a finished backup.
The archive exists but is only on the failed server
That is an on-host copy, not a disaster-recovery copy. Download or transfer the archive as soon as it is created, and keep at least one protected location independent of the production machine.
Best Value
- [Upgraded Version] - This external hard drive features a mirrored logo stripe combined with a striped anti-slip design, and the rounded corners of the casing make it easier to grip. The stripes also have a heat dissipation function, ensuring stable and fast data transfer.
- 【Ultra-thin and quiet】 - The motherboard adopts JMicron 578 noise-free solution, giving you a quiet working environment. Lightweight and portable size designed to fit in your pocket for easy portability.
- 【Ultra-Fast Data Transfers】 - Pairing this external hard drive with JMicron 578 solution USB 3.0 and USB 2.0 interfaces enables blazing-fast data transfer. It boasts theoretical read speeds of up to 125MB/s and write speeds of up to 103MB/s.
- 【Plug and Play】 - With no software to install, just plug it in and the drive is ready to use.The hard disk chip is wrapped with an aluminum anti-interference layer to increase heat dissipation and protect data.
- 【What You Get】 - 1 x Portable Hard Drive, 1 x USB 3.0 Cable, 1 x User Manual, Gift-type shell packaging ,Three-year manufacturer's warranty and free technical support services.
Posts import but images are missing
Content JSON describes structured records; it does not replace the binary files in the content storage. Copy the complete media directory, correct ownership with sudo chown -R ghost:ghost content where applicable, restart Ghost, and then inspect representative posts for their assets.
Custom URLs or redirects return errors
Restore routes.yaml and the correct redirects file separately. Check whether the old site used YAML or JSON for redirects and whether the new host’s configuration paths point to the restored files.
Paid members cannot be restored
Reconnect the original Stripe account in Live mode before importing the member CSV. Using a different account or test mode does not satisfy the requirement for restoring paid-member relationships.
The new host starts with the wrong database or paths
Review the self-hosted configuration JSON and database connection details. A migration often changes filesystem paths, hostnames, or credentials; adjust those values for the replacement server instead of assuming the old configuration can be copied unchanged.
A practical pre-failure and post-failure checklist
Before a failure
- Run
ghost backupfrom the installation directory. - Move the ZIP off the production server.
- Preserve configuration, secrets, and database connection details separately and securely.
- Keep a current member CSV, theme, routes, redirects, and media copy available if you rely on manual recovery.
- Document the Ghost installation location, service account, domain, database, and external services.
- Perform a staging restore and update the runbook with any host-specific adjustments.
After a failure or migration
- Install a compatible Ghost instance and configure the replacement host.
- Copy media, fix ownership, and restart Ghost.
- Import content, routes, redirects, and the theme.
- Reconnect the original Stripe account in Live mode when paid memberships are used.
- Import members and wait for completion.
- Check posts, assets, routes, redirects, theme behavior, administration, and membership workflows.
Bottom line
Use ghost backup as the primary backup for a self-hosted Ghost blog, move its ZIP off the production server immediately, and protect configuration and secrets as separate recovery material. Keep the manual Admin exports and media-copy procedure as a fallback, and prove that a disposable restore works before an outage makes the decision for you.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
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.

