This site leverages a GatsbyJS starter, Gatsby Starter Ghost. I am using Ghost CMS headless and I am hosting that at Digital Ocean on a standard Ubuntu box. Running my static site from Netlify and have a webhook connecting the two so a new build happens each time updates inside the Ghost CMS happen.
# With Gatsby CLI
gatsby new gatsby-starter https://github.com/chilbert/chasehilbert
# From Source
git clone [email protected]:chilbert/chasehilbert.git
cd chasehilbert
Then install dependencies
yarn
Start the development server. You now have a Gatsby site pulling content from headless Ghost.
gatsby develop
By default, the starter will populate content from a default Ghost install located at https://chilbert.co.
To use your own install, edit the .ghost.json
config file with your credentials. You can find or your contentApiKey
in the "Integrations" screen in Ghost Admin.
The starter contains three config files specifically for deploying with Netlify. A netlify.toml
file for build settings, a /static/_headers
file with default security headers set for all routes, and /static/_redirects
to set Netlify custom domain redirects.
Content API Keys are generally not considered to be sensitive information, they exist so that they can be changed in the event of abuse; so most people commit it directly to their .ghost.json
config file. If you prefer to keep this information out of your repository you can remove this config and set Netlify ENV variables for production builds instead.
Once deployed, you can set up a Ghost + Netlify Integration to use deploy hooks from Ghost to trigger Netlify rebuilds. That way, any time data changes in Ghost, your site will rebuild on Netlify.
You can disable the default Ghost Handlebars Theme front-end by enabling the Make this site private
flag within your Ghost settings. This enables password protection in front of the Ghost install and sets <meta name="robots" content="noindex" />
so your Gatsby front-end becomes the source of truth for SEO.
# Run a production build, locally
gatsby build
# Serve a production build, locally
gatsby serve
Gatsby develop
uses the development
config in .ghost.json
- while Gatsby build
uses the production
config.
Copyright (c) 2013-2019 Ghost Foundation - Released under the MIT license.