# Bắt đầu nhanh

> Từ tài khoản mới tới issue đầu tiên: tạo workspace, kết nối Hetzner, tạo project, cài SDK và gửi lỗi thử.

Hướng dẫn này đi từ tài khoản mới tới issue đầu tiên. Phần lớn là bấm trong ứng dụng Belvador; code duy nhất bạn viết là phần cài SDK trong ứng dụng của bạn.

## Trước khi bắt đầu

- Một địa chỉ email cho tài khoản Belvador.
- Một ứng dụng xác thực trên điện thoại (ví dụ Google Authenticator, 1Password hoặc Authy). Cần bật xác thực 2 lớp trước khi kết nối Hetzner.
- Một tài khoản **Hetzner Cloud** đã có phương thức thanh toán. Hetzner tính tiền máy chủ cho bạn theo giá giờ; Belvador miễn phí trong giai đoạn beta.
- Ứng dụng bạn muốn theo dõi, và quyền sửa code của nó.

## 1. Tạo tài khoản

1. Trên belvador.dev, chọn **Bắt đầu miễn phí**.
2. Nhập tên, email và mật khẩu, rồi xác nhận email Belvador gửi tới (**Kiểm tra email của bạn**).
3. Đăng nhập. Khi chưa có workspace, Belvador mở màn hình **Tạo workspace**.

## 2. Tạo workspace

Workspace chứa các project, cảnh báo, thành viên và **một node** trong tài khoản Hetzner của bạn.

1. Nhập **Tên workspace**.
2. Kiểm tra **Địa chỉ workspace**: 3–40 ký tự, chữ thường, chữ số và dấu gạch ngang. Địa chỉ này nằm trong mọi đường dẫn và không đổi được về sau.
3. Chọn **Tạo workspace**.

## 3. Bật xác thực 2 lớp

Tiếp theo Belvador hiện màn hình **Bảo vệ tài khoản**. Cần xác thực 2 lớp trước khi kết nối Hetzner hoặc đổi vai trò, và các thao tác nhạy cảm sau này sẽ hỏi lại mã mới.

1. Quét mã QR bằng ứng dụng xác thực (hoặc gõ mã bí mật hiện bên dưới).
2. Nhập mã 6 số.
3. Cất **Mã khôi phục** ở nơi an toàn. Mỗi mã dùng được một lần và chỉ hiện lúc này.

Bạn có thể chọn **Để sau**, nhưng bước kết nối Hetzner sẽ yêu cầu lại. Chi tiết: [Tài khoản, xác thực 2 lớp và vai trò](https://belvador.dev/vi/docs/account-security).

## 4. Kết nối Hetzner

Trong Belvador, mở **Node → Kết nối Hetzner**, rồi trong Hetzner Console:

1. **Tạo project mới tên “Belvador”.** Project riêng nghĩa là token chỉ điều khiển được máy của Belvador — đặt các máy chủ khác của bạn ở project khác.
2. **Tạo API token**: trong project đó mở **Security → API Tokens → Generate API token**, chọn quyền **Read & Write**.
3. **Sao chép ngay.** Hetzner chỉ hiện token một lần.

Dán token vào Belvador và chọn **Chế độ giữ khoá**:

- **Managed (khuyên dùng)** — két giữ token đã mã hoá, nên đổi cỡ, dựng lại và xoá máy chạy tự động.
- **Strict** — két xoá token ngay khi node sẵn sàng; các thao tác sau sẽ yêu cầu bạn dán token tạm. Chỉ owner được chọn Strict.

Token được gửi thẳng tới két của Belvador, không đi qua ứng dụng Belvador hay cơ sở dữ liệu. Thêm: [Kết nối Hetzner và dựng node](https://belvador.dev/vi/docs/node/connection).

## 5. Dựng node

Chọn **Dựng node**. Belvador chọn máy rẻ nhất phù hợp — `cx23`, hoặc `cax11` (ARM) khi `cx23` hết hàng — tại Falkenstein, Nuremberg hoặc Helsinki, và hiển thị từng bước: **Kiểm token → Tạo tường lửa → Tạo máy → Khởi động máy → Ghi danh agent → Gia cố máy → Kết nối edge → Cài phần mềm node → Kiểm sức khoẻ → Sẵn sàng**.

Trong thử nghiệm của chúng tôi việc này mất khoảng 90 giây; có thể lâu hơn khi Hetzner bận. Bạn có thể rời trang — việc dựng vẫn chạy ở nền. Nếu một bước lỗi, dòng thời gian chỉ rõ bước nào và có nút **Thử lại từ bước này**.

Node không mở cổng vào nào, kể cả SSH. Node chỉ kết nối ra ngoài.

## 6. Tạo project

1. Mở **Project → Tạo project**.
2. Đặt tên ứng dụng và chọn nền tảng: **JavaScript (trình duyệt)**, **React (Vite / SPA)**, **TanStack Start / Lovable**, **Node.js**, **Python** hoặc **Khác**.
3. Belvador hiện ngay **DSN** của project và code cài đặt.

Mỗi ứng dụng một project. Xem [Project và DSN](https://belvador.dev/vi/docs/projects-and-dsn).

## 7. Cài SDK

Làm theo phần cài đặt trên trang project, hoặc bài hướng dẫn cho nền tảng của bạn — code giống nhau:

| Ứng dụng của bạn | Hướng dẫn |
|---|---|
| Ứng dụng Lovable hoặc TanStack Start | [TanStack Start và Lovable](https://belvador.dev/vi/docs/sdk/tanstack-start) |
| React dùng Vite hoặc dạng SPA khác | [React 18 và React 19](https://belvador.dev/vi/docs/sdk/react) |
| JavaScript trình duyệt khác | [JavaScript trên trình duyệt](https://belvador.dev/vi/docs/sdk/browser) |
| Cloudflare Worker | [Cloudflare Workers](https://belvador.dev/vi/docs/sdk/cloudflare) |
| Máy chủ Node.js | [Node.js](https://belvador.dev/vi/docs/sdk/node) |
| Python | [Python](https://belvador.dev/vi/docs/sdk/python) |

Làm cùng AI agent lập trình? Trang project có mục **Dán vào AI agent**, và [Hướng dẫn cho AI agent](https://belvador.dev/vi/docs/ai-agents) nói rõ agent phải giữ nguyên những gì.

## 8. Kiểm tra kết nối

Một issue đầu tiên chưa chứng minh mọi phần của app đều báo lỗi. Bước cuối của **Cài SDK** — và tab **Kết nối** của project — có phép kiểm cho nền tảng của bạn: chạy một lần từ mỗi môi trường (trình duyệt và, với TanStack Start, cả máy chủ). Mỗi môi trường chuyển sang **Đã xác minh** sau vài giây; nếu có gì sai, sự cố hiện kèm cách sửa. Xem [Kiểm tra kết nối](https://belvador.dev/vi/docs/sdk/verify).

Muốn thấy một issue thật, hãy tạo một lỗi trong ứng dụng, ví dụ trong hàm xử lý của một nút bấm:

```js
setTimeout(() => {
  throw new Error("Belvador test error");
}, 0);
```

Lỗi hiện trong **Issue** sau vài giây, kèm stack trace, tag và ngữ cảnh.

> [!TIP]
> **Kiểm đường nhận** ở tab Kết nối gửi một event từ node qua đường nhận lỗi công khai. Nó chỉ chứng minh Belvador → node, không kiểm app. Nếu không bao giờ tới, thường là node chưa kết nối — xem [Khắc phục sự cố](https://belvador.dev/vi/docs/troubleshooting).

## Việc tiếp theo

- Mời đồng đội ở **Cài đặt → Thành viên** — xem [vai trò](https://belvador.dev/vi/docs/account-security#vai-tro-trong-workspace).
- Kết nối bot Telegram, Slack hoặc email của bạn trong [Cảnh báo](https://belvador.dev/vi/docs/alerts).
- Tải [source map](https://belvador.dev/vi/docs/source-maps) lên từ CI để stack trace hiện code gốc.
- Đọc [Bảo vệ dữ liệu](https://belvador.dev/vi/docs/privacy) trước khi gửi dữ liệu thật.
- Thêm [monitor](https://belvador.dev/vi/docs/monitors/overview) cho cron job, hàng đợi và worker, để cả job không hề chạy cũng được phát hiện.
