Docs/Deployment
Deployment

CLI: Deploy Frontend Apps

Deploy apps/web as a Cloudflare Worker and apps/admin as a Cloudflare Pages project.

Last updated Mar 19, 2026

Deploy the core frontend apps only: apps/web and apps/admin.

1. Confirm Cloudflare targets

Use the current repo config as the source of truth:

  1. apps/web deploys as a Worker named web
  2. apps/admin deploys as a Pages project named admin

Keep these names unless you also update the matching wrangler.toml, domains, and environment variables.

2. Deploy apps/web

apps/web uses Astro with @astrojs/cloudflare and deploys as a Worker with static assets.

cd apps/web
pnpm run build
npx wrangler deploy
cd ../..

3. Deploy apps/admin

apps/admin uses Nuxt. Build and deploy to Cloudflare Pages:

cd apps/admin
npx nuxi build --preset=cloudflare_pages
npx wrangler pages deploy dist --project-name=admin --branch=main --commit-dirty=true
cd ../..

Or use the project's configured deploy command (e.g. pnpm run deploy if defined).

4. Set environment variables

After deployment, configure frontend Cloudflare environment variables:

  • Backend service URLs (e.g. AUTH_SERVICE_URL, SUPPORT_SERVICE_URL, etc.)
  • ZSHIP_KEY if you use public HTTP fallback instead of Service Bindings
  • Any other required public vars

For apps/web, use Worker vars/secrets. For apps/admin, use Pages vars/secrets.

5. SESSION binding warning

If you see a SESSION binding warning, the expected KV binding may not be configured. Check:

  • Wrangler/Pages binding configuration
  • Whether the target environment matches what you prepared

6. Checklist

  • [ ] apps/web Worker deployed
  • [ ] apps/admin Pages project deployed
  • [ ] Critical environment variables set