How to Update Ghost on Digital Ocean Droplet
Ok, a few months pass by and you get a notification like this from Ghost:

It's time to update your Ghost installation. It kinda sucks, but you have to do it, the only alternative is to use Ghost Pro
If you don't know which version of Ghost you're using, you can go here on your dashboard:

Click the Arrow next to your name:

Then click About Ghost:

As you can see above, am running Version 3.39.0 of Ghost.
I would like to update all the way to 3.42.1 and eventually to version 4.0 which is the current version.
Please Note:
Ghost doesn't allow you to update straight from your old version of version 3 straight to version 4. So let's say I have version 3.5 on my system, before updating to version 4.o, I will need first to get to the most recent version of version 3, which can be maybe 3.9 ...then from there I can update from 3.9 to 4. (I hope that's clear!)
That's why you see on my screen, I need to update to 3.42.1 from 3.39.0.
3.42.1 was the latest version of version 3. From there I will update straight to whatever version of version 4 is.
Also the following screenshot may be useful:

Okay, I use Digital Ocean for my Ghost Hosting and I pay about $6 per month ($5 - Hosting + $1 - Backup).
If you just got into blogging and you wanna know how you can use Digital Ocean with Ghost, please visit this blog post on how to install Ghost on Digital Ocean
Update Ghost on Digital Ocean
After the above rumbling, now back to business.
Muy importante: It's highly recommended to have a full backup of your site before doing any major updates. If anything breaks, you will still have your website.
I use Windows Powershell as my Command Line tool to do the update, but you can pick whichever Command Line tool works for you.
So after opening Powershell, put the following command: ssh [email protected] followed by the IP address of your droplet, just like you see below.
ssh [email protected]
Please replace that IP address with your own.
So here it's how it looks from Powershell:

Press ENTER on your keyboard, You may get the following message:

Type yes, just like you see above and then press ENTER
At this point enter the password for your droplet:

Please note you won't be seeing the characters as you're entering your password.
When you succeeded on entering the password, you will see a bunch of welcome screen message, and also you will see the following:

Now you're already in your droplet and you can update it.
Type the following command to enter to the Ghost CLI:
sudo -i -u ghost-mgr

After after you should see something like this:

Now we need to navigate to the Ghost installation folder:
Type the following command:
cd /var/www/ghost
On my window it looks like this:

Now you will be directed to the Ghost installation folder like you see below:

...
...
Now this is the point where things can get a bit tricky or you may start seeing some errors:
Install and Update NodeJS
To avoid those errors, let's first update NodeJS by install the new Node version by running the following command:
sudo apt update
Then install the new version of Node JS by typing the following command:
sudo apt install nodejs
Confirm the new version of NodeJS is installed by typing the following command
node -v
The above command should output the most recent version of NodeJS which for me as of today is Version 10.24.1
Install and Update NPM (Node Package Manager)
After updating NodeJS, let's now update your version, by running the following command
sudo npm install -g npm
Install and Update Ghost CLI (Command Line Interface)
Then let's update Ghost CLI, by typing the following command:
sudo npm install -g [email protected]
Run the Ghost Update
Now is the time to run the Ghost update command. Remember when I told you you can't just go from a major version in this case version 4 without first updating to the latest minor version of 3.
So first I will update Ghost to the latest version of 3 by running the following command:
ghost update v3
In Powershell it looks like this:

It will take a few seconds,
Then you may get this error:

Don't worry, it seems the Node update we did previously is not compatible with our updated version of Ghost, which is 3.42.9
So we will need to go back just a few versions back. Let's go to Node version 14.15.0 by typing the following command first:
sudo npm install -g n
Then let's install Node version 14.15.0
sudo n 14.15.0
Now let's run the Ghost update again, by typing the following command:
ghost update v3
Ghost Version 4 Update
Version 4 of Ghost requires MySQL database version 8. So let's check which version of MySQL is installed in our system by typing the following command:
sudo mysql

When in MySQL console type the following command:
select @@version;
You should see this:

As you can see above...we're running MySQL version 5.7.37
Let's get out of MySQL console by hitting CTRL + D (On Windows)
Then type the following command:
sudo apt-get update
After typing that command, you may get this error:

If you see the error above:
It means that you still have an older version of the GPG key used to sign Yarn releases. The expiry date for this key was extended from 2020 to 2021. To get the updated key, run this:
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
That should solve the problem.
Again, we will try to update our package list by typing the followin command:
sudo apt-get update
Update MySQL
So first get out of MySQL Command Line by hitting CTRL + D (On Windows)
Then type the following command:
wget https://repo.mysql.com//mysql-apt-config_0.8.10-1_all.deb
The above command will add MySQL APT repository to your system’s software repository list.
Then type the following command:
sudo dpkg -i mysql-apt-config_0.8.10-1_all.deb
The above command should show you the following prompts:

Click the first option by hitting ENTER on your keyboard. You should see the following window:

Using your arrow keys, select the second option: MySQL-8.0 and hit ENTER on your keyboard
Then you will see the following window:

Use your arrows keys again to select the forth option: Ok ...just as you see below:

Then click ENTER on your keyboard. If everything goes well! MySQL 8 should start installing. Otherwise, you will get the following errors just like I did. And this is how to correct them
First error: Warning

You can solve that warning error by using the following commands:
sudo apt remove mysql-apt-config
Then after solving that problem put the following commands:
wget http://repo.mysql.com/mysql-apt-config_0.8.15-1_all.deb
Then put the following command:
sudo apt install ./mysql-apt-config_0.8.15-1_all.deb

Now we have two errors: As it turns out, we still have the original error about the warning, and now we have another message indicating that _apt
user doesn't have write permission.
We can solve that problem by running:
sudo chown -Rv _apt:root /var/cache/apt/archives/partial/
Then this:
sudo chmod -Rv 700 /var/cache/apt/archives/partial/
Now let's run again this command:
sudo apt install ./mysql-apt-config_0.8.15-1_all.deb
After that commands run you may be prompted to do an auto remove of some package...you can follow the prompt and do that. I believe it's optional.
Anyway, then let's do this:
sudo sed -i "s/jessie/buster/g" /etc/apt/sources.list.d/mysql.list
Then this:
sudo apt update
After that you may get another error, such as:

Solve that error by copying that public key then appending it at the end of the following command, just like this:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
That should solve the problem.
Now am going to put the following commands in order, they should all work now:
sudo apt install ./mysql-apt-config_0.8.15-1_all.deb
Then
sudo sed -i "s/jessie/buster/g" /etc/apt/sources.list.d/mysql.list
Then
sudo apt update
Now the big command of installing MySQL Server:
sudo apt install mysql-server
That should take a few seconds...
After it's done, run the last command:
sudo service mysql start
Congratulations!
Now after so many errors, MySQL 8 is installed on your system. You can confirm by doing the following:
mysql
Then you should see on the screen the new version of MySQL: Server version: 8.0.28 MySQL Community Server - GPL
Ghost Version 4
Make sure you are on the Ghost CLI manager:
sudo -i -u ghost-mgr
And then you are on the following directory:
cd /var/www/ghost
Confirm the version of Ghost installed in your system by:
ghost version
Once you see the system installed, in my case it was: Ghost version: 3.8.0 (at /var/www/ghost)ghost$
.
.
Major Ghost Update (Ghost Version 4)
You may need to update to the current version of NodeJS by doing the following command:
sudo n 16.14.2
The current version of NodeJS as of writing this is: 16.14.2 ...so replace that version number with the version of NodeJS you want.
Now do the major update by running the following command:
ghost update
That will get us to the most recent version of Ghost which as of writing is version 4.19
In the process you may be asked to check for theme compatibility, to which just agree Y (yes), and also go ahead to agreeing when asked if you wanna go ahead and install the recent version of Ghost.
That's it! Till next year. I normally do this work once a year...
...
...