D
deploying-cloudflare-web-application
About deploying-cloudflare-web-application
A skill for preparing and managing Cloudflare web application deployments through GitHub Actions. It guides setup, deployment, secrets, direct runs or rollbacks, and troubleshooting while keeping Cloudflare changes in the push workflow.
Key features
- 01Guided prerequisite and account setup
- 02Deployment recipes for apps and databases
- 03GitHub Actions secret configuration guidance
- 04Direct deployment and rollback workflow
- 05Deployment failure troubleshooting
Use cases
- 01Check whether a Cloudflare deployment setup is ready
- 02Add a deployment workflow or D1 database
- 03Review required secrets before merging
- 04Investigate a failed deployment or refresh 404
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ cedmandocdoc/ awesome-skills --skill deploying-cloudflare-web-applicationAfter installing, type/deploying-cloudflare-web-applicationin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
agents/openai.yamlassets/ci-token-permissions.tsvdeployment.mdreferences/configuring-github-actions.mdconfiguring-secrets.mdconfiguring-wrangler.mddeploying-application.mddeployment-contract.mddiscovering-application.mdexecuting-direct-deploy.mdtroubleshooting-deployment.mdscripts/probe-ci-token.shDetails
From the project READMEDeploying a web application to Cloudflare
Setup
| Item | Kind | Required | When | Done when | How |
|---|---|---|---|---|---|
| Node.js 22+ with the project's package manager | user | required | All | node --version prints v22 or later and the lockfile's package manager (npm, pnpm, yarn) runs | https://nodejs.org |
| GitHub CLI | user | required | Deploy, Secrets, Run or roll back | gh auth status succeeds and gh repo view finds the repository | https://cli.github.com, then gh auth login; create the GitHub repository and push the project |
| Cloudflare account | user | required | All | npx wrangler whoami shows an account | Sign up at https://dash.cloudflare.com/sign-up, then npx wrangler login |
| Account ID | ask | required | Deploy | account_id is set in the wrangler config | npx wrangler whoami lists one account → use it; several → ask which; recorded as account_id in the wrangler config |
| CI API token | user | required | Secrets | configuring-github-actions.md → Probe reports every permission granted | Per configuring-github-actions.md → CI API token |
Workflow
- Setup — for each Setup row whose When covers the request, in order: Done when holds → skip;
user→ stop and print its How when required, continue without it when optional;ask→ fill what the request answers, ask the rest together in one message, record each answer;autoandstatic→ run. - Contract — read deployment-contract.md.
- Recipe — match one Recipes row; open every doc in its Read column.
- Writes repository files only; Cloudflare changes run in the deploy workflow on push to the production branch. The CI token probe runs on a throwaway branch it deletes.
- Runs Wrangler locally only to read state, with the
wrangler loginsession, never with an exportedCLOUDFLARE_API_TOKEN. - Sets no secret and reads only secret names; the user sets every secret in GitHub.
Recipes
| Intent | Example phrasing | Read |
|---|---|---|
| Set up | "Set up Cloudflare deployment", "Is deploying-cloudflare-web-application ready?" | Setup — run Workflow step 1 for every row, then report each row's state |
| Deploy | "Deploy the web app to Cloudflare", "Add the Cloudflare deploy workflow", "Add a D1 database", "Attach the custom domain", "Deploy apps/web from the monorepo" | deploying-application.md |
| Secrets | "Which secrets does the deploy need?", "Add a Worker secret", "Is the Cloudflare deploy ready to merge?" | configuring-secrets.md |
| Run or roll back | "Deploy now without pushing", "Roll back the Worker", "Which version is live?" | executing-direct-deploy.md |
| Troubleshoot | "The Cloudflare deploy workflow fails", "404 on refresh after deploy" | troubleshooting-deployment.md |
Comments
Markdown supported