It's been almost a full year since I've signed up for Ghost Pro to start this blog. It's been running smoothly, and the time has come that I move onto a more suitable solution to host this blog. After all, it can do with much less costly platform and without all the convenience features like auto upgrades and backups. I've been eyeing Digital Ocean's 1-Click Install for Ghost for a while. The time has finally come for me to see how smooth it is to migrate this Ghost blog.
This post was written on April 2021 for Ghost version 4.
Assuming that our blog has been updated to the latest version. To move a Ghost blog to a new home, we should start with gathering all we can first. Head to "Settings > Labs", you should now see the button to export your content. Hit it and download. The backup file would contain all these; All Settings, Users, Subscribers, Posts, Pages, & Tags.
Two important things that WON'T be in the file are Theme files and Images.
Theme files: Head to "Settings > Theme". Click download the themes.
Images: Now this one is trickier. If you have a self installed version you have to SSH into your server and get the images at "content/images" folder within your Ghost installation folder, typically "/var/www/ghost/".
For those like me who has been using Ghost Pro we have to email Ghost support for that. Just put "Images Export" in the Subject and give all the right credentials. You can do this from the support ticket system in the control panel. Oh, and have patience.
You can read more about exports and imports in Ghost's official documentation.
But wait, there's more! You should click the bright green links to "Download current redirects" and "Download current routes.yaml" to make sure that links to your site and structure would be preserve.
Once (or while) we have the content from the previous Ghost install downloaded, we can start to install Ghost on our new server. For me I chose to install Ghost on Digital Ocean so I went to this page and click "Create Ghost Droplet". They're serious about it being ready within 2 minutes!
After the server is ready get into the server by using Terminal:
Follow the instructions. Eventually you'll get to the part where it asks for you to "add an A Record & ensure the DNS has fully propagate".
Domain Name & DNS
This depends on your domain name registrar, the basis is that you must add the specified record into your DNS settings so that traffic coming to that address can be pointed to the right server.
Hopefully this process is swift for you. It took several hours for my case and it can take up to 24 hours or longer.
By now you should be able to get to "https://YOUR-BLOG-DOMAIN/ghost" and be prompted to create an admin account for it. From here we handle the reverse of the prep processes.
Head to "Settings > Labs". Do browse around the site first, then click the big red "DELETE" button to delete all sample content. Select the JSON file exported and click "IMPORT".
Theme files: Head to "Settings > Theme". Upload your theme and click "ACTIVATE".
Images: Get to your Ghost installation folder, typically "/var/www/ghost/" copy over the images to "content/images".
Don't forget to "Upload redirects YAML/JSON" and "Upload routes YAML" under Redirects and Routes. Also check out the "Settings > Branding" to upload your publication icon, logo, publication cover, and set the accent colour.
Now that the blog is up to parity with the previous install. We can devote some time to add nice to have features such as Search and Newsletter. It's really easy to start a Ghost blog by oneself, so would I do it again? Of course, since this inexpensive option gives me the flexibility and a server to play with, at the cost of some maintenance. I can also run several Ghost blogs and processes on the same server, that's a huge plus.
That said, Ghost probably realised this and now Ghost Pro starts at just $9 a month which is a good deal for those of us who don't want to tinker about in a Linux server (that's half the draw for me actually) and get their blog in seconds. That plan would be enough for most people. For those more interested Digital Ocean's solution and not have an account yet, do sign up using my link for $100 in credit over 60 days.