# Deploy Demo Landing lên Cloudflare Pages

Trang demo trong thư mục này là static site. Không cần build Next.js, không cần backend và không cần environment variable.

## Local preview

Từ root repo:

```bash
python3 -m http.server 8787 --directory docs/demo
```

Mở:

```text
http://localhost:8787
```

## Cloudflare Pages settings

Khi tạo Pages project từ GitHub repository:

| Setting | Value |
|---------|-------|
| Framework preset | None / Static HTML |
| Root directory | `docs/demo` |
| Build command | để trống |
| Build output directory | `.` |

Nếu Cloudflare bắt buộc có build command, có thể dùng command không tạo artifact mới:

```bash
pwd
```

Output directory vẫn là:

```text
.
```

## Custom domain

1. Vào Cloudflare Pages project.
2. Chọn **Custom domains**.
3. Thêm domain/subdomain demo, ví dụ `demo.example.com`.
4. Chờ Cloudflare cấp chứng chỉ TLS.

## Pre-public checklist

- [ ] `docs/demo/index.html` không chứa secret, token, cookie hoặc API key.
- [ ] Không có dữ liệu khách hàng, MST, số hóa đơn hoặc provider reference thật.
- [ ] Browser Network tab không có request tới backend/API/provider thật.
- [ ] Copy MISA ghi rõ đây là PDF nháp/preview, không phải hóa đơn đã phát hành.
- [ ] Copy SePay mô tả đúng luồng draft/issue/poll/download.
- [ ] CTA sang app thật chỉ dùng URL demo đã được duyệt.
- [ ] Kiểm tra desktop và mobile trước khi public.
- [ ] Kiểm tra cả landing `/` và web app demo `/app/`.
- [ ] Thử flow interactive: tạo nháp → review → issue blocked → bật gate → issue success → xem job/audit.

## Đường dẫn sau deploy

Sau khi deploy Cloudflare Pages:

```text
https://<pages-domain>/
https://<pages-domain>/app/
```

Landing dùng CTA “Mở app demo” để trỏ tới `/app/`. Demo app này là mock static, không cần login và không gọi backend.
Các thao tác trong app dùng local state trong browser nên refresh trang sẽ reset về dữ liệu ban đầu.

## Khi muốn link sang app thật

Landing static hiện trỏ tới `/app/` mock demo để khách dùng thử ngay. Nếu sau này muốn trỏ sang app thật có đăng nhập/backend, đổi CTA “Mở app demo” sang URL app đã duyệt, ví dụ:

```text
https://app-demo.example.com/login
```

Không nhúng demo credentials trực tiếp vào landing public.

## Khi chạy local cả landing và app

Landing static chạy ở:

```text
http://localhost:8787
```

App Next.js thật chạy riêng, thường ở:

```text
http://localhost:3000/login
```

Hai server này độc lập. Vì vậy `http://localhost:8787/login` sẽ không hoạt động; dùng `http://localhost:8787/app/` cho mock static hoặc `http://localhost:3000/login` cho app thật.
