Technology

Self-inflicted hobbies: moving Ghost from host-to-host

By Stephen Bolen,

Published on Sep 23, 2025   —   4 min read

Four spooky ghosts wearing sunglasses.
Photo by Shaylyn / Unsplash

Summary

Why can't I ever leave good enough alone?

When you’re over 40, you need a hobby. My hobby happens to be frustrating myself with technology. More specifically, configuring a Ghost Installation on a Racknerd Black Friday VPS that I purchased in 2023.

I’m a smart guy, I tell myself. This should be easy, I tell myself. I know about computers, I tell myself. This should be a piece of cake!

Well, I’ve been throwing my head against the wall trying to get Mailgun connected for the last 2 years, but to no avail. For something that’s as dead simple as Ghost, this one piece has me totally flummoxed — not that I’m going to write more than like one new post every quarter, but I’m a feature complete kind of guy.

But, there was something else chewing at me. For some strange reason, traffic routing through Cloudflare somehow stopped resolving and everything was timing out unless I put the site in dev mode to disable the proxy. No bueno. I ping’d. I traceroute’d. I submitted tickets to Racknerd. But everything looked ok on their end, despite them timing out on mine.

Again, flummoxed.

So this got me thinking: is it time to offload some of the heavy lift of maintaining a KVM offering for $45/year (or, the low price of $3.75/month) to a different provider? A provider who could, in theory, manage all of the package updates? Maintain all of the infrastructure? A set-it-and-forget-it, Ron Popeil-style provider?

I was thinking enthusiastically “yes.”

So off to the lazy web, where I saw a lot of referrals for PikaPods, who offers a Ghost image. I signed up with the $5 free credit and spun up my $2.53/month pod.

Friends, it was easy as pie to move from one host to another and I may never look back.

Configuration and Costs

My PikaPods "Pod" for Ghost, running with .5 CPU, 1`GB RAM, and 5GB Storage.
My PikaPods "Pod" for Ghost, running with .5 CPU, 1`GB RAM, and 5GB Storage.

Turns out, you can run Ghost on PikaPods with very little resources, which is not what you hear from Digital Ocean, who recommend at least a $12/mo droplet that comes with a 50GB hard drive, 2GB of RAM and 1 Intel vCPU, which feels like overkill because the Google Pagespeed Insights for stephenbolen.com on the PikaPods configuration (again, at $2.53/mo) is a robust 94:

94 Overall Performance, 96 Accessibility, 96 Best Practices, 100 SEO
94 Performance on Google Pagespeed Insights -- not bad, but I can do better.

That's good enough for me and certainly good enough for $2.53.

Setting up Ghost on PikaPods

Okay, so now we get to the part where you can actually have a little fun: truly one-click installing the Ghost instance.

After you sign up for PikaPods, you're given a $5 credit. This will be enough to spin up your instance of Ghost and get things configured.

Add Pod screen: You choose your app, name your pod, and then select a region. After that, you click "Add Pod" and blamo: done.
Adding the Pod was incredibly easy. Dead simple.

After you click the green "Add Pod" button, your pod has a random subdomain assigned. In this example case, it was stereotyped-oxpecker.pikapod.net, which actually kind of slaps. You have instructions to set your admin account by visiting the domain stereotyped-oxpecker.pikapod.net/ghost, and from there, it's pretty vanilla (if you are familiar with Ghost).

You do have some Variables you can play with that make the configuration easier. These variables are all spelled out in the documentation provided by PikaPods, which makes this whole thing easy. The first one I set up was to Disable the 2FA Email for the staff accounts. I'll address this soon enough when I figure out transactional emails from Mailgun.

Export of Current

Now that I have my PikaPod instance spun up, it's time to go in to my current Ghost instance and export a .json file of my Content & Settings. This took about 15 seconds.

I then needed to SSH into my current Ghost instance and pull down a few directories in /var/www/ghost/content. Your mileage may vary, but this was needed for my situation:

  • Files
  • Images
  • Media
  • Themes (in my case, Bold)
A Cyberduck window showing the content directory in my ghost install for Bolen.co
I need to get Images, Media, and Themes downloaded.

Import of Content

Once I had the content exported and downloaded, it was time to start putting things back where they needed to go.

I logged in to the PikaPods instance and navigated to Settings, then Imported my .json file.

I enabled SFTP access in my PikaPods Ghost instance and fired up Cyberduck to upload the missing images, media, files, etc:

The PikaPods control panel for my Pod.
The PikaPods control panel is simple to use. SFTP settings in one toggle switch!

It literally could not be any more simple than this.

Conclusion

Well, it's been real, RackNerd. I loved the oversized VPS Black Friday deal, but the time has come to bid you adieu.

Share on Facebook Share on Linkedin Share on Twitter Send by email