Installing Ghost with Digital Ocean
So, I have heard a lot about Ghost and got pretty excited. My blog onlinehikes.com was hosted on Wordpress via Bluehost with a free theme.
But, I got excited about the possibility of creating a membership site - similar to e.g. nesslabs.com or starterstory.com or Makerpad. So, decided to give Ghost a try.
BUT. Then you check out pricing for Ghost pro, which is $36 per month or $29 (if paid yearly). And that is the basic plan... 😲
I am totally ok with paying this much for a nice website, but after the content idea was validated. It can take literally years for a good blog to take off - to find a good niche, build content and backlinks. Thankfully there are alternatives to install Ghost much cheaper.
How to install Ghost for free?
The cheapest option is installing Jamstack Ghost blog via Heroku and Netlify.
I tried that - it works fine. But, then I started to import my 200 posts from Wordpress and this Ghost install started to crash. Probably, because you needed to upgrade some database and then you need to pay...
I think it is possible, if you want to dig there, but there is an alternative solution - Ghost via Digital Ocean - which starts from $5 per month.
Free Ghost version works really nice for a new blog or if you want just to try out Ghost. But, maybe with a lot of content and traffic you still will end up paying.
Ghost via Digital Ocean
Installing Ghost via Digital Ocean seems like a golden middle between free version (where you might spend a lot of time for a setup) and quite expensive Ghost Pro.
Yes, you pay $5 per month, but it is a bit less technically challenging and still cheaper than Ghost Pro.
Well, it seemed like it is less technically challenging in the beginning 😅 That's why I'm writing this blog.
Install Ghost droplet from Digital Ocean (DO) marketplace here.
Then you will need to create an account in Digital Ocean and pay $5 to set up an account.
Then you need to create a new project, name it, add a description.
Then you need to select a Digital Ocean droplet - $5 per month is a cheapest option. But, a lot of high traffic bloggers tell that it is totally enough for a Ghost install. So, no need to pay more here.
Then you generate a password for your droplet and after installation you should see something like this in your IP address.
Then you need to connect a custom domain.
Was a bit of surprise for me, as usually, you are connecting your custom domain in the very end. I wanted to test everything, have everything ready and only after put an updated website live.
So, you need to change your DNS as described in the guide above.
Make sure your DNS propagated and you can see the image above by visiting http://yourdomain.com
After that open up your Terminal and run ssh root@yourdropletipaddress
Enter your droplet pass.
Then you will be asked to enter your web address and have email ready for SSH certificate.
So, which website url to enter? https, http, www or non-www? I had some issues during this step and needed to destroy droplets few times because of it. Just enter http://yourdomain.com
If everything is set up correctly, you should see ghost install page after going to your domain.
If you had issues with installing SSL - no worries, you will be able to install it later.
Just follow Ghost setup instructions and you should be good to go.
Other issues
After install, still there are many issues, which can take a lot of your time. For example:
- redirecting www to non-www
- installing SSL certificate
- importing your old Wordpress blogs to Ghost (I tried to use Ghost plugin and export a zip archive - didn't work, so I imported all posts with json file)
- setting redirects in Ghost
- setting routes in Ghost (using routes.yaml file)
- issues with images - especially if you export images from WordPress via json file, usually they won't work.
Luckily, Ghost is becoming more and more popular and you can find answers to majority of these questions online. Also, Ghost forum really helped me a lot. Of course, if you are on a Ghost Pro - you can get email support (it is not available if you are hosting via Digital Ocean or Heroku/Netlify).