Appearance
Deploy & hạ tầng
Repo: github.com/dac2205/kmxspa (private). Mỗi lần git push lên main, Cloudflare tự build và deploy cả 3 phần. Không dùng GitHub Actions, nên không tốn phút CI trên GitHub.
| Thành phần | Dự án Cloudflare | Thư mục gốc | Build command | Output |
|---|---|---|---|---|
| spa.anhdac.com | Pages kmxspa-web | apps/spa | pnpm install && pnpm build | dist |
| docs.anhdac.com | Pages kmxspa-docs | apps/docs | pnpm install && pnpm build | .vitepress/dist |
| api.anhdac.com | Worker kmxspa-api (Workers Builds) | apps/api | (none) | npx wrangler deploy |
Biến môi trường
Pages kmxspa-web (Production):
| Biến | Giá trị |
|---|---|
VITE_API_URL | https://api.anhdac.com |
VITE_GOOGLE_CLIENT_ID | OAuth Client ID (project Google Cloud kmxspa) |
Worker kmxspa-api: khai báo trong apps/api/wrangler.jsonc → vars: GOOGLE_CLIENT_ID, ALLOWED_ORIGINS, COOKIE_DOMAIN, ADMIN_EMAILS, SESSION_DAYS.
Google OAuth
- Google Cloud project: kmxspa
- OAuth client loại Web application
- Authorized JavaScript origins:
https://spa.anhdac.com,http://localhost:5173 - Chỉ cần Client ID; không dùng client secret.
Database
bash
cd apps/api
pnpm db:migrate:remote # áp migration lên D1 production