Skip to content

Deploy ​

Push to main → .github/workflows/ci.yml runs typecheck, tests, the migration-number check and a D1 dry-run, then applies D1 migrations to production and deploys only the apps whose files changed (api before web).

One-time setup ​

bash
npx wrangler d1 create artlove365-platform          # paste the id into workers/api/wrangler.jsonc
npx wrangler r2 bucket create artlove365-uploads
npx wrangler secret put ADMIN_TOKEN --config workers/api/wrangler.jsonc
npx wrangler secret put STRIPE_SECRET_KEY --config workers/api/wrangler.jsonc
npx wrangler secret put STRIPE_WEBHOOK_SECRET --config workers/api/wrangler.jsonc

GitHub repository secrets: CLOUDFLARE_API_TOKEN (Workers Scripts: Edit, D1: Edit, Workers Routes: Edit, Zone: DNS Edit for artlove365.com) and CLOUDFLARE_ACCOUNT_ID.

The zone artlove365.com must be on Cloudflare; the custom_domain routes create DNS records for the apex, www, api and docs automatically.

Manual re-deploy of one app: Actions → deploy-app → choose web, api or docs.