How do I migrate Ghost to a new host without downtime?
Planning the Migration
At HostingDuty, we treat Ghost migrations as production-critical operations. The goal is zero downtime, which means you must validate the new environment before switching traffic. We recommend setting up the new Ghost instance on a different subdomain or internal port. This allows full testing without affecting live traffic.
Preparing the New Server
Before moving data, ensure your new server meets Ghost requirements. Check Node.js version compatibility, database configuration, and storage limits. You can find detailed specs in our /kb/ghost-server-requirements guide. Use Ghost CLI to install Ghost on the new host, or deploy via Docker if you prefer containerization. See our /tutorials/migrate-ghost-docker tutorial for Docker-specific steps.
Migrating Content
You have two main options for content migration:
- Ghost CLI export/import: Run
ghost exporton the old server andghost importon the new one. This preserves posts, settings, and themes. - Database dump: Export your MySQL or PostgreSQL database and restore it on the new host. This is faster for large sites.
DNS and Traffic Switch
Once verified, update your DNS records to point to the new host. Lower your TTL (Time to Live) 24-48 hours in advance to minimize propagation delays. At HostingDuty, we use NGINX to route traffic during the switch, ensuring a smooth handover. After DNS propagation, monitor logs and error rates closely.
Post-Migration Verification
After the switch, verify that all content loads correctly, SSL certificates are active, and email notifications work. Check your /glossary/ghost-cli tool usage and /compare/ghost-vs-wordpress for context on Ghost-specific configurations. If issues arise, rollback to the old server using your DNS TTL buffer.
External References
For additional migration strategies, see the Failed to Function guide on migrating Ghost to a new server and Laura Hargreaves' Ghost v6 Docker migration experience.
People also ask
- How do I backup Ghost content before migration?
- What are the requirements for hosting Ghost?
- How do I configure DNS for zero-downtime migration?
- Can I migrate Ghost to Docker without downtime?
- How do I rollback a failed Ghost migration?
- What is the best way to test a new Ghost server?