Announcing the Magic Pages Open House. Quarterly calls with our team!

Skip to the answer

How to move a self-hosted Ghost site to Magic Pages

Send us a MySQL dump and your content folder, and we clone your site 1:1. Members, Stripe and your theme come with it, for free.

Sviatoslav Huzel Sviatoslav Huzel

We do the move for you, and it's free. You send us two things from your server, a database dump and your content folder, and we turn them into an exact copy of your site here. Your current site keeps running on your server until you shut it down, so you switch your domain over when you're ready.

What we need from you

  1. A MySQL dump of your Ghost database. It holds your posts, members, settings and everything else Ghost knows about.
  2. Your content folder, the folder called content in your Ghost install. It holds your images, files and themes.

Ghost's JSON export, under Settings → Advanced → Migration tools → Export, isn't enough on its own. It has no images, and it leaves most of your setup behind.

Getting the backup

A standard install

On your server, dump the database. You'll be asked for the MySQL password:

mysqldump -u your_username -p your_database_name > ghost_backup.sql

Then, from your own computer, copy the content folder down:

rsync -av your_username@your_server:/path/to/ghost/content/ ./content/

On the DigitalOcean one-click install, the ghost MySQL user isn't allowed to run mysqldump. Run it as root instead.

Docker

Dump the database from the MySQL container:

docker ps
docker exec MYSQL_CONTAINER_NAME mysqldump -u root -p ghost > ~/ghost-migration/ghost_backup.sql

Then pack the content volume into an archive:

docker volume ls
docker run --rm \
  -v ghost_ghost_data:/ghost_content \
  -v ~/ghost-migration:/backup \
  alpine \
  tar czf /backup/ghost_content_backup.tar.gz -C /ghost_content .

Swap ghost_ghost_data for whatever docker volume ls shows for your Ghost volume.

PikaPods

Stop your pod first. Then turn on database access and export the database through Adminer, as PikaPods describes. Then turn on SFTP and download the content folder. Skip the JSON export.

Sending it to us

Upload both files to any file-sharing service, such as Google Drive, Dropbox or WeTransfer, and send the link to help@magicpages.co with your trial's .mymagic.page address.

Size isn't a problem. We import the backup on our side, so Ghost admin's file upload limit doesn't apply, and we've moved sites over 100 GB.

If you'd rather give us access to your server, send the login through a one-time secret link, never in chat or plain email.

Before you send it

  • Ghost 4 or newer is fine. We upgrade your site to the current version when it starts here.
  • SQLite isn't supported. If your install runs on SQLite, which is common for local installs, tell us before you export so we can plan the move with you.
  • Your own Mailgun account doesn't come across. Newsletter sending is included here, so you remove your sending domain from Mailgun and set it up with us instead.

What comes across

Everything that lives in your site: posts and pages in every status, members, staff accounts, your theme (custom themes need Pro or the theme add-on), routes, redirects, integrations and their API keys, and your Stripe connection with every paid subscription. You log in with the same email and password as before.

Switching over

The import itself takes us one to two hours, and most migrations are done within a day. Then:

  1. Check the copy at your .mymagic.page address.
  2. Upgrade to a paid plan. Custom domains work on paid plans only.
  3. Add anyone who signed up since the backup. Go to Members on the old site, click Export all members and send us the file. Ghost matches members by email, so nobody gets added twice.
  4. Connect your domain. Your old server keeps serving readers until the DNS change takes effect, so nobody sees a gap.
  5. Set up your newsletter sending domain, before your first send.

Connecting the domain takes a couple of DNS records, and this walks through it:

Setting up Your Custom Domain on Magic Pages
Learn how to easily set up a custom domain for your Ghost CMS on Magic Pages. Follow our clear, step-by-step guide to update DNS settings and enhance email deliverability.

Once the domain points to us, you can shut the old server down.

What it costs

Nothing, on any plan. Moving a Ghost site to us is part of getting set up, and it never needs a yearly plan. Our migration page explains which moves do.

Will my newsletters still reach inboxes?

They will. What matters is the domain you send from, and this explains how to keep it:

Will My Open Rates Drop After Migrating to Magic Pages?
Most migrations don’t come with a drop in open rates. Here’s what changes when you move, and where to focus your attention.

More in this section

Jannis, founder of Magic Pages

Didn't find your answer?

Ask us anything — a real person reads every message, usually the same day.

Email support