Deploying to Cloudflare Workers

Cloudflare Workers is a serverless platform for creating entirely new applications or augmenting existing ones without configuring or maintaining infrastructure. With Workers Sites you can deploy any static site including your Gatsby projects to a domain on Cloudflare or for free on your workers.dev subdomain.

To enable the KV store required to serve the Gatsby files, you’ll need the Workers Unlimited plan for \$5/month.

This guide will get you started in a few steps:

  1. Installing wrangler CLI

Workers Sites requires wrangler. The more straight forward way to install wrangler is with npm, run the following command:

  1. Initialize the Project

To create the Worker code that will serve your Gatsby files, from the root of your Gatsby project run:

You’ll notice your project structure should now look something like:

  1. Configure

To authenticate into your Cloudflare account run:

Follow the Quick Start for steps on gathering the correct account ID and API token to link wrangler to your Cloudflare account.

If you don’t already have a workers.dev domain run:

Then, add your account ID to the wrangler.toml file, and set bucket to "./public", which is where Gatsby’s built files are output by default:

This deploys to your workers.dev subdomain. For a custom domain see Quick Start.

  1. Deploy

You can deploy your application by running the following command in the root of the project directory:

Now your site is available at gatsby-project.subdomain.workers.dev!

  1. CI with GitHub Actions

Use wrangler’s GitHub action plugin to automatically deploy to Workers every time you push to master.

Once GitHub Actions is enabled on your repo, add a file to your project’s root called .github/workflows/main.yml with the contents:

Set up CF_API_TOKEN in GitHub secrets with appropriate values from Quick Start.

Additional resources