ai-code-battle/scripts/cloudflare-setup.sh
jedarden 26244d1066 feat(scripts): add Cloudflare setup and verification scripts
Add helper scripts for Cloudflare Pages and R2 deployment:
- cloudflare-setup.sh: Creates Pages project, deploys dist, creates R2 bucket
- verify-deployment.sh: End-to-end verification of all endpoints

These scripts require wrangler authentication via `wrangler login`.

Note: worker-api deployment removed from scope (legacy code was removed
in commit b06350d).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-29 14:50:08 -04:00

66 lines
2.1 KiB
Bash
Executable file

#!/bin/bash
# Cloudflare Setup Script for AI Code Battle
# Run this script after authenticating with wrangler
set -e
echo "=== AI Code Battle - Cloudflare Setup ==="
echo ""
# Check if wrangler is authenticated
if ! ~/.local/bin/wrangler whoami &>/dev/null; then
echo "ERROR: Not authenticated with Cloudflare."
echo "Run: ~/.local/bin/wrangler login"
exit 1
fi
echo "Authenticated as:"
~/.local/bin/wrangler whoami
echo ""
# Step 1: Create Pages project
echo "=== Step 1: Creating Pages project 'aicodebattle' ==="
if ~/.local/bin/wrangler pages project list 2>/dev/null | grep -q "aicodebattle"; then
echo "Pages project 'aicodebattle' already exists."
else
echo "Creating Pages project..."
~/.local/bin/wrangler pages project create aicodebattle --production-branch master
fi
echo ""
# Step 2: Deploy to Pages
echo "=== Step 2: Deploying web/dist to Pages ==="
~/.local/bin/wrangler pages deploy web/dist --project-name=aicodebattle --commit-dirty=true
echo ""
# Step 3: Create R2 bucket
echo "=== Step 3: Creating R2 bucket 'acb-data' ==="
if ~/.local/bin/wrangler r2 bucket list 2>/dev/null | grep -q "acb-data"; then
echo "R2 bucket 'acb-data' already exists."
else
echo "Creating R2 bucket..."
~/.local/bin/wrangler r2 bucket create acb-data
fi
echo ""
echo "=== Automated setup complete! ==="
echo ""
echo "=== MANUAL STEPS REQUIRED (Cloudflare Dashboard) ==="
echo ""
echo "1. Configure Custom Domain for Pages:"
echo " - Go to: Workers & Pages > aicodebattle > Settings > Custom domains"
echo " - Add domain: aicodebattle.com"
echo " - This auto-configures DNS CNAME"
echo ""
echo "2. Configure Custom Domain for R2:"
echo " - Go to: R2 > acb-data > Settings > Custom Domains"
echo " - Add domain: r2.aicodebattle.com"
echo " - This auto-configures DNS CNAME"
echo ""
echo "3. Configure API DNS (requires Traefik LoadBalancer IP):"
echo " - Go to: DNS > Records"
echo " - Add A record: api.aicodebattle.com -> <Traefik IP> (proxied)"
echo ""
echo "4. Get Traefik IP from Kubernetes:"
echo " kubectl --server=http://kubectl-apexalgo-iad:8001 get svc -n traefik"
echo ""