diff --git a/docs/cloudflare-cache-purge.md b/docs/cloudflare-cache-purge.md new file mode 100644 index 0000000..8ab4596 --- /dev/null +++ b/docs/cloudflare-cache-purge.md @@ -0,0 +1,91 @@ +# Cloudflare Cache Purge Manual + +Use this when the deployed frontend has already updated on the servers, but the public site still shows an old version because Cloudflare or browser cache is serving stale files. + +## Current API-token note + +The current `ark-library.com` Cloudflare Zone ID is: + +```text +ca1368486d3b0bf9f1066f2a2281dced +``` + +Cloudflare cache purge by API requires both a valid API token and this Zone ID. If API access is unavailable, use the manual dashboard method below. + +> Security note: if a token was pasted into chat, terminal logs, or docs by mistake, revoke it in Cloudflare and create a new one. + +## Manual purge in Cloudflare Dashboard + +1. Open and log in. +2. Go to **Websites**. +3. Select **ark-library.com**. +4. Go to **Caching** → **Configuration**. +5. Click **Purge Cache**. +6. Choose one of these: + - **Purge Everything**: safest when a deploy looks stale. + - **Custom Purge**: use when only specific pages/assets are stale. +7. For a stale frontend deploy, purge at least: + - `https://ark-library.com/` + - `https://ark-library.com/index.html` +8. Wait 10–60 seconds, then hard-refresh the browser: + - macOS Chrome/Safari: `Cmd + Shift + R` + - Windows/Linux Chrome: `Ctrl + Shift + R` + +## Find the Cloudflare Zone ID + +1. Open . +2. Select **ark-library.com**. +3. Open **Overview**. +4. In the right sidebar, find **API** → **Zone ID**. +5. Copy the Zone ID for API purge commands. + +For this project, the known Zone ID is `ca1368486d3b0bf9f1066f2a2281dced`. + +## API purge after you have Zone ID + +Store the token in an environment variable instead of writing it directly into commands: + +```bash +export CLOUDFLARE_API_TOKEN='replace-with-new-token' +export CLOUDFLARE_ZONE_ID='replace-with-zone-id' +``` + +Purge everything: + +```bash +curl -sS -X POST \ + "https://api.cloudflare.com/client/v4/zones/$CLOUDFLARE_ZONE_ID/purge_cache" \ + -H "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \ + -H "Content-Type: application/json" \ + --data '{"purge_everything":true}' +``` + +Purge only the main frontend files: + +```bash +curl -sS -X POST \ + "https://api.cloudflare.com/client/v4/zones/$CLOUDFLARE_ZONE_ID/purge_cache" \ + -H "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \ + -H "Content-Type: application/json" \ + --data '{"files":["https://ark-library.com/","https://ark-library.com/index.html"]}' +``` + +Expected success response includes: + +```json +{"success":true} +``` + +## Create a safer Cloudflare API token + +1. In Cloudflare Dashboard, open **My Profile** → **API Tokens**. +2. Click **Create Token**. +3. Use **Custom token**. +4. Add permissions: + - `Zone` → `Cache Purge` → `Purge` + - `Zone` → `Zone` → `Read` +5. Set zone resources: + - `Include` → `Specific zone` → `ark-library.com` +6. Create the token, copy it once, and store it in a password manager or CI secret. + +Do not commit Cloudflare tokens into this repository.