--- name: cloudflare-cli description: Debug and manage Cloudflare DNS, cache, and proxy settings using flarectl --- # Cloudflare CLI Skill Debug and manage Cloudflare DNS, cache, and proxy settings using flarectl. ## Prerequisites - flarectl installed: `brew install cloudflare/cloudflare/flarectl` - API token set: `export CF_API_TOKEN=` ## Commands ### Zones ```bash # List all zones flarectl zone list # Get zone details flarectl zone info --zone genlayer.com ``` ### DNS Records ```bash # List DNS records flarectl dns list --zone genlayer.com # Create record flarectl dns create --zone genlayer.com --name subdomain --type A --content 1.2.3.4 # Update record (toggle proxy) flarectl dns update --zone genlayer.com --id --proxy=true # Delete record flarectl dns delete --zone genlayer.com --id ``` ### Cache ```bash # Purge all cache flarectl zone purge --zone genlayer.com --everything # Purge specific URLs flarectl zone purge --zone genlayer.com --files "https://studio.genlayer.com/api" ``` ## Common Debug Patterns ### Check if Cloudflare Proxy is Enabled ```bash flarectl dns list --zone genlayer.com | grep studio # Look for "proxied: true" in output ``` ### Test Direct to Origin (bypass Cloudflare) ```bash # Get origin IP dig +short studio.genlayer.com # Test direct (if proxy disabled) curl -v https://studio.genlayer.com/health # Test with Host header to specific IP curl -H "Host: studio.genlayer.com" https:///health -k ``` ### Diagnose 502/503 Errors ```bash # Check if error is from Cloudflare or origin # Cloudflare errors have cf-ray header curl -I https://studio.genlayer.com/api 2>&1 | grep -i "cf-ray" # Fast response (30-60ms) = Cloudflare WAF/rate limit # Slow response (5s+) = Origin timeout curl -w "%{time_total}s\n" -o /dev/null -s https://studio.genlayer.com/api ``` ### Rate Limiting Check ```bash # 429 with fast response = Cloudflare rate limiting for i in {1..10}; do curl -s -o /dev/null -w "%{http_code} %{time_total}s\n" https://studio.genlayer.com/api \ -X POST -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","method":"eth_chainId","params":[],"id":1}' done ``` ## GenLayer Domains | Domain | Purpose | |--------|---------| | studio.genlayer.com | Production studio | | studio-dev.genlayer.com | Dev studio | | studio-stage.genlayer.com | Staging studio | | rally-testnet.genlayer.com | Rally production | | rally-devnet.genlayer.com | Rally dev | ## SSL Modes - **Full**: Cloudflare → Origin with any cert (allows self-signed) - **Full (Strict)**: Cloudflare → Origin with valid cert - **Flexible**: Cloudflare terminates SSL, HTTP to origin GenLayer uses Cloudflare Origin Certificates - requires proxy enabled and Full (Strict) mode.