How do I back up a Ghost site?
Manual vs Automated Backup Methods
At HostingDuty, we recommend a layered approach to Ghost site backups. Ghost provides native export functionality, but this only covers content—not themes, media, or configuration files. For complete site recovery, you need both content exports and system-level backups.
Content Export via Ghost Admin
Ghost Admin includes a built-in export feature accessible under Settings > Labs > Export. This generates a JSON file containing posts, pages, tags, authors, and custom navigation. However, this export does not include:
- Email analytics or member engagement metrics
- Comments (Ghost's native commenting system)
- Media files stored in your media library
- Theme customizations or route configurations
Full Site Backup via File System
For Docker-based Ghost installations, a complete backup requires:
1. Database dump (SQLite or MySQL)
2. Content files from /content directory
3. Theme files from /content/themes
4. Configuration files (config.production.json)
HostingDuty's managed Ghost hosting includes automated daily backups of all these components. You can restore from the HostingDuty dashboard or request a manual snapshot via our Ghost backup restore guide. For self-hosted instances, we recommend using tools like ghost-backup-cli or cron jobs to automate database dumps.
External Backup Services
For enhanced redundancy, integrate with external storage services. HostingDuty supports seamless integration with:
- AWS S3 for object storage
- Google Cloud Storage
- DigitalOcean Spaces
Best Practices
- Test restoration procedures quarterly
- Store backups in geographically separate locations
- Encrypt sensitive backup files
- Maintain versioned backups for at least 30 days
Related Resources
People also ask
- How do I restore a Ghost site from backup?
- What is included in a Ghost JSON export?
- How often should I backup my Ghost site?
- Can I automate Ghost site backups?
- What are the best practices for Ghost site security?
- How do I migrate a Ghost site to HostingDuty?