@foo-software/ghost-graphql-server
A GraphQL server for Ghost. This project exports an Apollo Server class with pre-defined options to provide querying of a Ghost blog API programmatically and exposes a CLI for command line usage. Below are features of this project.
- Included types for TypeScript support (this project is written in TypeScript as a matter of fact).
- Exports an Apollo Server class as a module supporting overriding options (to override the pre-populated options that resolve Ghost API endpoints).
- Exposes a CLI (with limited options).
Table of Contents
Quick Start
Getting up and running with a standalone is simple and can be done in three ways. Below are all the steps to get up and running.
If you're looking to integrate with an existing, custom Apollo server - go to the custom integration guide
Ghost Content API
See the @foo-software/ghost-graphql
package.
Pagination and Filtering
See the @foo-software/ghost-graphql
package.
Programmatic Usage
It's important to note that some enviroment variables are required.
import { createGhostGraphQLServer } from '@foo-software/ghost-graphql-server';
const startServer = async () => {
try {
const server = createGhostGraphQLServer();
await server.listen(port);
console.log(`Ghost GraphQL server is running on port ${port} 🚀`);
} catch (error) {
console.error(error);
process.exit(1);
}
};
startServer();
Or with options. You can use any options available to Apollo Server
.
const server = createGhostGraphQLServer({
onHealthCheck: () => {
return Promise.resolve();
},
});
createGhostGraphQLServer
Options
You can use any options available to Apollo Server
.
CLI Usage
Install the package globally.
npm install @foo-software/ghost-graphql-server -g
Run the server with required environment variables.
GHOST_API_KEY=$GHOST_API_KEY GHOST_URL=$GHOST_URL \
ghost-graphql-server --port 4000
CLI Options
Name | Description | Type | Required | Default |
---|
port | The port for GraphQL server to run on. | number | no | 4000 |
Docker Usage
docker run \
-p 127.0.0.1:4000:4000/tcp \
--env GHOST_API_KEY=$GHOST_API_KEY \
--env GHOST_URL=$GHOST_URL \
foosoftware/ghost-graphql-server:latest \
ghost-graphql-server --port 4000
Environment Variables
See the @foo-software/ghost-graphql
package.
Schema
The schema structure can be seen in schema.graphql of the @foo-software/ghost-graphql
package.