Update to Ghost 3.0 on Raspberry Pi or ASUS Tinker Board

Almost out of nowhere, the team behind Ghost released version 3.0 on 22 October 2019 and if you are anything like us at Ghost Pi in that you run Ghost on your Raspberry Pi, then you may have had a moment of panic as you wondered if the version would work.

Thankfully, it does. And it works just fine!

How to update to Ghost 3.0 on Raspbian

Updating Ghost on any single board computer (SBC) like the Raspberry Pi or ASUS Tinker Board is often a little more complicated than it should be. This is usually because these SBC's are not quite as powerful as the supported stacks Ghost runs on.

The trick to updating your Ghost blog running on a Raspberry Pi or ASUS Tinker Board is to ensure your SBC has as much system resource available as possible before attempting to upgrade. The following commands assume you are accessing your Raspberry Pi or ASUS Tinker Board over SSH:

boo@ghost-pi:~ $ cd /var/www/ghost
boo@ghost-pi:/var/www/ghost $ ghost stop
boo@ghost-pi:/var/www/ghost $ sudo npm i -g ghost-cli@latest
boo@ghost-pi:/var/www/ghost $ ghost update
boo@ghost-pi:/var/www/ghost $ ghost start

So what does this do? Let's break it down...

First, we'll be changing directory to where our Ghost blog is installed. Typically speaking, this is in /var/www/ghost but if you followed our guide on setting up a RAID-1 array, then this may well be /mnt/raid1/nginx/ghost:

boo@ghost-pi:~ $ cd /var/www/ghost

or

boo@ghost-pi:~ $ cd /mnt/raid1/nginx/ghost

Next, we'll stop the Ghost blog that is currently running to free up valuable system resources - specifically memory:

boo@ghost-pi:/var/www/ghost $ ghost stop

Then we'll ensure that our Raspberry Pi or ASUS Tinker Board is running the latest version of the Ghost CLI tool (which is v1.12.0 at the time of writing):

boo@ghost-pi:/var/www/ghost $ sudo npm i -g ghost-cli@latest

Now we can update Ghost using the Ghost CLI tool - this process can take around 15 - 20 minutes, so be patient:

boo@ghost-pi:/var/www/ghost $ ghost update

When we updated our Ghost blog from version 2.37.0 to version 3.0, we were prompted to confirm our upgrade process due to some of the changes. This included warnings around themes, but we just confirmed to proceed and everything finished as expected.

Assuming everything went smoothly and there were no issues, we can finally restart our Ghost blog by running:

boo@ghost-pi:/var/www/ghost $ ghost start

Once done, you should see the confirmation that your Ghost blog is up and running, on version 3.0! To check, you can always run:

boo@ghost-pi:/var/www/ghost $ ghost ls
+ sudo systemctl is-active ghost_ghostpi-pro
┌--------------------┬-------------------------------┬---------┬----------------------┬----------------------------┬------┬-----------------┐
| Name               | Location                      | Version | Status               | URL                        | Port | Process Manager |
|--------------------┼-------------------------------┼---------┼----------------------┼----------------------------┼------┼-----------------|
│ ghostpi-pro        | /var/www/ghost                | 3.0.0   | running (production) | https://ghostpi.pro        | 2368 | systemd         |
└--------------------┴-------------------------------┴---------┴----------------------┴----------------------------┴------┴-----------------┘

And that's it! You should now have Ghost 3.0, the latest version at the time of writing, running on your Raspberry Pi or ASUS Tinker Board.