Yesterday was an interesting day for my pseudo blog. I was reading some articles on my favorite news sites and I suddenly saw a post about the new version of Ghost (2.0.3), which I noticed had several new features that I would love to have. And not only that but my current version was 1.22.0 which was about thirty versions below the latest release. Thirty versions!

This is where the fun part comes in. I figured I could just run the easy to use update cli command. I mean, why not? So I open CMD from my ghost directory and type in the magic words.

ghost update

This does a few check ups similar to when you run ghost doctor. Nothing new. This should run fine, right? Well not really. The following happens when you try using a CLI that was meant for use on Linux on a Windows machine. The file system permissions are really different so the update has a total meltdown.

Okay, cool, I can’t use the CLI. So now what?

I could try to download the latest version of Ghost and try to manually replace the core files. This failed miserably. I do not recommend it.
I also tried to fix the windows permissions through CHMOD, which sounds crazy but you can actually get in working through Cygwin, and when you use CHMOD, it translates the Linux type file system permissions to the Windows type file system permissions. At least that’s what I read, but didn’t really get that far in the process before realizing I was doing some voodoo mumbo jumbo on my server which was totally not needed.

So how did I update?

To be honest, the process was pretty simple once I tried it. And it worked flawlessly.

  1. Make a [backup] of your whole [ghost directory].
  2. Go into your ghost admin portal.
  3. Open the Labs section.
  4. Click on Export your content and download the json file.
  5. Stop your website on IIS.
  6. Delete everything in your [ghost directory].
  7. Reinstall Ghost. You can follow my tutorial.
  8. Run the database migrations.
  9. Copy the config.production.json file from your [backup] into your [ghost directory].
  10. Copy the index.js file from your [backup] into your [ghost directory].
  11. Copy your web.config file from your [backup] into your [ghost directory].
  12. Turn on your website on IIS.
  13. Go into your ghost admin portal.
  14. Open the Labs section.
  15. Import the content from the json file.
  16. Copy the images from the /content/images folder in your [backup] into the /content/images folder in your [ghost directory].
  17. And bam! Enjoy your updated Ghost blog.

I'm not sure if this is the best way to upgrade. It takes about fifteen minutes and it works, so I won't apologize if it isn't the best upgrade process.

Anyway, hope this helps anyone trying to update their windows Ghost installation.