There is 2 words for this, and it is Digital Ocean. Before we start make sure you have the following.

  • A digital ocean account

And that is it, if you use this link, then you get some credits ($100) and i get some credits. That means spinning up the smallest droplet which is $5 a month would keep your blog running for 20 months at no cost to you.

I wanted something inexpensive and I have achieved that with this set up. A blog for the $5 a month.

After following the link and creating your account, you will see on the left hand side menu Marketplace.

You will then be presented with the Marketplace, here you will search for Ghost.

When you see ghost appear, click on it and it will take you to the ghost marketplace description. Here you can just continue the process by clicking Create Ghost Droplet.

Here you will select Basic and $5/mo.

Scrolling down you will select a location that is close to you or where your audience will be for the blog.

Then next part is selecting the VPC, you can just select the default one that appears and remember to select Monitoring.

So you are able to access the droplet after creation, you can either choose SSH Keys or Password. I recommend you select SSH Keys, much more secure than using passwords.

The last part is selecting the project and hitting Create.

After hitting Create you will be taken to a screen with a loading bar showing you the status of the process. When complete you should see something like the below where it shows you the public IP address. Copy that IP address and paste it into a browser.

When you paste this IP into your browser you will see the following splash screen.

So now that we have seen that splash screen, lets go to our terminal and log in. As soon as you log in it will kick of a script that will complete the Ghost install for you.

It will tell you to create the DNS entries and the IP needed, in this example case i just hit continue as i will be using the IP address in the browser.

The only other thing it will as you is for the URL of the blog, this is to confgure Nginx. As mentioned above i just used the IP address, but in your case use the DNS you created before.

It will also use LetsEncrypt to create an SSL Cert for the blog.

ssh [email protected]

The authenticity of host '207.154.219.103 (207.154.219.103)' can't be established.
ECDSA key fingerprint is SHA256:CoF2smjmp+lFQRJ4IUuW5VEurJM4amN9t3fXvxo/hHU.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '207.154.219.103' (ECDSA) to the list of known hosts.

-------------------------------------------------------------------------------

Configuring DigitalOcean 1-Click Ghost installation.

Please wait a minute while your 1-Click is configured.

Once complete, you are encouraged to run mysql_secure_installation to ready
your server for production. Passwords have been saved to:

    root/.digitalocean_password

-------------------------------------------------------------------------------


Ensuring Ghost-CLI is up-to-date...
+ sudo npm i -g [email protected]
/usr/bin/ghost -> /usr/lib/node_modules/ghost-cli/bin/ghost
+ [email protected]
added 1 package from 3 contributors, removed 1 package and updated 21 packages in 12.659s

Ghost will prompt you for two details:

1. Your domain
 - Add an A Record -> 207.154.219.103 & ensure the DNS has fully propagated
 - Or alternatively enter http://207.154.219.103
2. Your email address (only used for SSL)

Press enter when you're ready to get started!


+ sudo chown -R ghost-mgr:ghost-mgr /home/ghost-mgr/.config
✔ Checking system Node.js version
✔ Checking logged in user
✔ Checking current folder permissions
✔ Checking operating system compatibility
✔ Checking for a MySQL installation
✔ Checking memory availability
✔ Checking for latest Ghost version
✔ Setting up install directory
✔ Downloading and installing Ghost v3.34.0
✔ Finishing install process
? Enter your blog URL: http://207.154.219.103
✔ Configuring Ghost
✔ Setting up instance
+ sudo useradd --system --user-group ghost
+ sudo chown -R ghost:ghost /var/www/ghost/content
✔ Setting up "ghost" system user
ℹ Setting up "ghost" mysql user [skipped]
✔ Creating nginx config file at /var/www/ghost/system/files/207.154.219.103.conf
+ sudo ln -sf /var/www/ghost/system/files/207.154.219.103.conf /etc/nginx/sites-available/207.154.219.103.conf
+ sudo ln -sf /etc/nginx/sites-available/207.154.219.103.conf /etc/nginx/sites-enabled/207.154.219.103.conf
+ sudo nginx -s reload
✔ Setting up Nginx
SSL certs cannot be generated for IP addresses, skipping
ℹ Setting up SSL [skipped]
✔ Creating systemd service file at /var/www/ghost/system/files/ghost_207-154-219-103.service
+ sudo ln -sf /var/www/ghost/system/files/ghost_207-154-219-103.service /lib/systemd/system/ghost_207-154-219-103.service
+ sudo systemctl daemon-reload
✔ Setting up Systemd
+ sudo systemctl is-active ghost_207-154-219-103
+ sudo systemctl start ghost_207-154-219-103
+ sudo systemctl is-enabled ghost_207-154-219-103
+ sudo systemctl enable ghost_207-154-219-103 --quiet
✔ Starting Ghost

Ghost uses direct mail by default. To set up an alternative email method read our docs at https://ghost.org/docs/concepts/config/#mail

------------------------------------------------------------------------------

Ghost was installed successfully! To complete setup of your publication, visit:

    http://207.154.219.103/ghost/


------------------------------------------------------------------------------

For any further commands, please switch to the ghost-mgr user to manage Ghost.

    sudo -i -u ghost-mgr

------------------------------------------------------------------------------


[email protected]:~# logout
Connection to 207.154.219.103 closed.

That is now complete, it tells you to go to a URL, when you go to it you will be presented with a screen where you set up your user and also invite any other user you want to take part in your blog.

P.N. Please do not wait too long before doing this step, until you do it anyone could come along and set it up themselves.

Follow the steps one by one and when complete you will be presented with a fully working blog. Going to `https://url/ghost` will take you to the admin panel where you can create content and modify the layout/theme.

And that is it everyone, in the space of maybe 11 minutes you have your own Ghost blog, for $5 a month.