Ghost is an open source CMS built on Node.js. It has been around for a while and has grown a strong following because of its commitment to open source and staying an independent company. Ghost is even so open source and transparent, you can view their revenue and earnings.
Table of Contents
Ghost can be a solution that is hosted by Ghost at ghost.org or you can host your own instance on your own hosting solution like DigitalOcean. Ghost's pricing increased based on monthly views and staff on hand. Hosting it yourself on DigitalOcean means you only have to pay for the servers you create.
Ghost has a lot of useful features.
- Clean and modern UI
- Easy to use content editor
- Mobile content management
- Beautiful themes
- Hundreds of integrations with newsletters, and more
- User memberships built-in (if using the Ghost hosted version)
- Be used as a Headless CMS
The one feature that I'm most interested in recently is that Ghost can be used as a Headless CMS. This means we can create a Ghost site and consume its content via API using a tool like Gatsby. Ghost supports the JAMstack model!
There are popular tools we can install quickly like WordPress, Ghost CMS, Strapi, Node, and more.
The installation instructions on this page are good to read through. We'll be following along with this and also bringing in our own screenshots for our walkthrough.
Let's give the Create Ghost Droplet button a click. We are taken to our DigitalOcean dashboard where we can configure and create a new droplet.
Let's keep the standard setup with the $40 droplet. You can change this based on your site traffic and needs. You could use a smaller droplet while getting your project off the ground and then resize it later.
Be sure to pick the location closest to your customers.
Another important part of the setup to focus on is the SSH keys. This is how you will login to your newly created droplet.
You'll be taken back to your dashboard where you can see your new droplet being created!
One thing to note is that we should have a domain for this new Ghost site. A domain is required to setup the Ghost install. We will be pointing our domain to our new droplet soon.
Once our droplet has been created, we will be able to follow along with the setup instructions. We need to SSH into it so that we can finish our Ghost installation. Let's SSH into our droplet:
Once we login, we'll see the installation do its work:
To add a domain, we need to add an A record in our domain's DNS. This A record will point towards our new IP for our new droplet.
I'm handling all my domains and networking from the Networking section of my DigitalOcean dashboard. I have a domain named codehearted.io in my account that I will use.
@ to create a DNS record for the main domain. We are pointing it towards our new droplet. Click Create Record.
Make sure that when you visit your url, it redirects you to your new Ghost installation. Once that DNS record is working, we can go back to our terminal to continue installation.
You'll be prompted to enter:
- Enter your blog URL
- Enter your email (For SSL Certificate)
Let the installation complete and we'll have:
- A new domain pointed to our new Ghost installation
- An SSL certificate so that our site is https
We're ready to go!
Visit that URL and you'll be able to see your new Ghost dashboard!
To get Ghost to work, we need to add an admin user and configure a few things.
You'll be able to invite staff members:
We also have emails working! You'll get a welcome email from your new site.
We'll be taken to our dashboard where we can create our new blog! We'll do a deep dive into Ghost features in a future article. For now, enjoy your new Ghost site!
Like this article? Follow @chrisoncode on Twitter