5.3 KiB
AI Agent Cloudflare Deployment Guide
This document defines the standard operating specifications and conventions for AI Agents (and automated deployment scripts) deploying EdgeEver on Cloudflare.
💡 Core Principle: Pure Serverless architecture running entirely within Cloudflare free limits—no VPS or server purchasing, no Docker or SSL certificate configuration required.
Standard Automated Deployment Steps
-
Fork Repository
- Fork
tianma-if/edgeeverto the target GitHub account.
- Fork
-
Create Cloudflare Resources
- Create a D1 database named exactly
edgeever. - Create an R2 bucket named exactly
edgeever-resources.
- Create a D1 database named exactly
-
Cloudflare Project Import
- Log into the Cloudflare Workers & Pages console and import the Fork repository.
- Configure the project to use the repository root, the production
mainbranch, and read the rootwrangler.toml.
-
Configure Login Credentials & Instance Settings
- Worker Secret: Add secret
EDGE_EVER_AUTH_PASSWORDfor the initial administrator password. Prefer a strong password of at least 32 characters that is unique to this instance. - Keep this password only as a Worker runtime Secret; do not copy it into Workers Builds variables. The standard deploy entrypoint reuses and verifies the existing Secret.
- Do not edit
wrangler.tomlor add duplicate bindings in the Dashboard. The deployment command generates theDBandRESOURCESbindings from these standard resource names. - For an existing Worker deployed from older instructions, do not ask the user to rename or reconfigure a custom R2 bucket. With no explicit override, deployment automatically preserves the live
RESOURCESbinding and administrator username.
- Worker Secret: Add secret
-
Configure Workers Builds Commands
-
In the Cloudflare project build settings, set the standard commands:
Build command: bun install --frozen-lockfile && EDGE_EVER_DEPLOYMENT_TRIGGER=main_push EDGE_EVER_DEPLOYMENT_METHOD=cloudflare_workers_builds bun run build:cloudflare Deploy command: bun run deploy:cloudflare-builds -
The deploy command automatically resolves the D1 UUID from the
edgeeverdatabase name and writes all instance settings only to a temporary generated Wrangler configuration. The trackedwrangler.tomlmust remain unchanged; deployment rejects instance-specific values committed there so a Fork cannot diverge on infrastructure configuration. -
Ensure the Workers Builds API token can read and edit D1. Advanced non-secret customization belongs in
EDGE_EVER_*Workers Builds variables. For a differently named database, setEDGE_EVER_D1_DATABASE_NAME; setEDGE_EVER_D1_DATABASE_IDonly if automatic UUID discovery is unavailable. Passwords remain runtime Secrets.
-
-
Start Initial Build & Verify Service
- Trigger the initial build. Once deployed, run the following automated verifications:
- Check
https://<your-worker-domain>/api/healthreturns HTTP200with JSON{"ok": true}. - Check
https://<your-worker-domain>/api/openapi.jsonloads the OpenAPI schema properly. - Verify login API using username
adminandEDGE_EVER_AUTH_PASSWORD.
- Check
- Trigger the initial build. Once deployed, run the following automated verifications:
-
Verify Upstream Update Channel
- In the Fork's Actions tab, enable Update deployed EdgeEver (required on public forks: scheduled workflows are disabled by default).
- An ordinary Fork is a deployment mirror by default. No update variable is required: the workflow applies the selected upstream Release's product snapshot to
mainbefore triggering Cloudflare. - The updater preserves the Fork's complete
.github/workflows/**directory and its two updater helper scripts as a stable local bootstrap layer. Official packaging, signing, testing, and Release workflows remain guarded totianma-if/edgeeverand are never rewritten by downstream product updates. - Only a Fork that intentionally maintains application-code changes should create the Actions repository variable
EDGE_EVER_PRESERVE_FORK_CHANGES=true. This opts into merges and requires the owner to resolve future conflicts; it is not needed for normal deployments. - Manually trigger Update deployed EdgeEver once in the Fork's Actions tab. A manual run republishes the selected version even when the Fork is already aligned, ensuring Cloudflare receives a fresh build event.
- Open the job Summary and confirm it reports Fork mode
mirror, the upstream target (stable Release or edgemain), and either an update publish or an explicit already aligned result. - Confirm Cloudflare Deployments builds the published
maincommit when a push occurred. - Do not edit deployment files or rely on GitHub Sync fork for routine upgrades; the workflow is the only synchronization path needed by a normal deployment Fork. Use Sync fork once only when an old Fork must receive a newer updater workflow itself, then return to Update deployed EdgeEver.
Optional: Customize the Initial Administrator Username
Ordinary deployments use the default username admin; do not proactively ask the user whether to change it. Only when the user explicitly requests a custom administrator username, set EDGE_EVER_AUTH_USERNAME in Workers Builds variables before the first build and use that username during login verification. Changing only this variable after the administrator account exists does not rename that account.