# Kết nối Hetzner và dựng node

> Tạo project Hetzner riêng, cấp API token, chọn cách giữ token và theo dõi Belvador tự dựng node.

Node là máy chủ nhận, lọc và lưu lỗi của workspace. Node chạy trong project Hetzner Cloud **của bạn** và Hetzner tính tiền cho bạn; Belvador tạo và bảo trì node. Mỗi workspace có một node, dùng chung cho mọi project trong đó.

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

- Bạn là **owner** hoặc **admin** của workspace và đã bật **xác thực 2 lớp**.
- Một tài khoản Hetzner Cloud đã có phương thức thanh toán.

## 1. Tạo một project Hetzner riêng

Trong Hetzner Console, tạo project mới tên **“Belvador”**. Một API token của Hetzner điều khiển cả project, nên project riêng nghĩa là token chỉ chạm được vào máy của Belvador. Đừng đặt máy chủ khác vào project này.

## 2. Tạo API token

Trong project đó mở **Security → API Tokens → Generate API token** và chọn **Read & Write** — Belvador cần tạo máy chủ và tường lửa. Hetzner chỉ hiện token một lần: **sao chép ngay**.

## 3. Kết nối trong Belvador

Mở **Node → Kết nối Hetzner**, dán token, xác nhận bằng mã xác thực và chọn **Chế độ giữ khoá**:

| Chế độ | Điều gì xảy ra | Ai được chọn |
|---|---|---|
| **Managed (khuyên dùng)** | Két của Belvador giữ token đã mã hoá, nên đổi cỡ, dựng lại và xoá máy chạy tự động. | Owner và admin |
| **Strict** | Két xoá token ngay khi node sẵn sàng. Về sau, đổi cỡ, dựng lại hoặc xoá máy sẽ yêu cầu bạn dán token tạm, dùng cho một thao tác hoặc 30 phút. | Chỉ owner |

Token được gửi từ trình duyệt thẳng tới két của Belvador. Token không bao giờ đi qua ứng dụng Belvador hay cơ sở dữ liệu, và két là phần duy nhất của Belvador nói chuyện với Hetzner. Sau khi kết nối, trang hiện **Đã kết nối Hetzner** kèm vài ký tự cuối của token để bạn nhận ra.

## 4. 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. Hetzner tính tiền máy vào tài khoản của bạn theo giá giờ.

Dòng thời gian hiện từng bước:

1. **Kiểm token**
2. **Tạo tường lửa**
3. **Tạo máy**
4. **Khởi động máy**
5. **Ghi danh agent** — node chứng minh danh tính với Belvador bằng một vé dùng một lần
6. **Gia cố máy**
7. **Kết nối edge**
8. **Cài phần mềm node**
9. **Kiểm sức khoẻ**
10. **Sẵn sàng**

Bạn có thể rời trang; việc dựng vẫn chạy ở nền. Trong thử nghiệm của chúng tôi mất khoảng 90 giây; khi Hetzner thiếu máy có thể lâu hơn.

Nếu một bước lỗi, dòng thời gian chỉ ra bước nào kèm giải thích ngắn và nút **Thử lại từ bước này**. Bạn có thể mở log để xem chi tiết. Với chế độ Strict, quá trình dựng có thể dừng để hỏi token tạm.

## Những gì chạy trên node

- Không mở cổng vào nào, kể cả SSH. Node chỉ kết nối **ra ngoài** — tới edge của Belvador và, cho backup, tới Cloudflare R2.
- Agent của Belvador chỉ cài phần mềm node có chữ ký và giữ cho nó luôn cập nhật — xem [Cập nhật](https://belvador.dev/vi/docs/node/updates).
- Lỗi của bạn được lưu trên ổ đĩa của node; trình duyệt đọc qua `edge.belvador.dev` bằng vé có chữ ký, hết hạn nhanh.

## Monitor trên node

Node cũng là nơi đánh giá các [monitor](https://belvador.dev/vi/docs/monitors/overview) của bạn. Sau khi kết nối lại, node nhận trước những gì edge đã giữ hộ trong lúc nó vắng (tối đa 10 phút), nên không bao giờ báo một lượt là bị lỡ chỉ vì nó không nghe thấy.

## Phân chia trách nhiệm

| Bạn | Belvador |
|---|---|
| Giữ tài khoản Hetzner hoạt động và đã thanh toán | Chọn, tạo và gia cố máy chủ và tường lửa |
| Chỉ dùng project riêng này cho Belvador | Cài, cập nhật và kiểm tra sức khoẻ phần mềm node |
| Chọn chế độ giữ token và người giữ khoá backup | Chạy backup mã hoá hằng ngày và diễn tập khôi phục |
| Không tự sửa máy trong Hetzner Console | Cung cấp đổi cỡ, dựng lại và xoá máy ngay trong ứng dụng |

Tự sửa máy chủ, tường lửa hoặc ổ đĩa trong Hetzner Console có thể làm hỏng node. Hãy dùng các thao tác trên trang Node.

## Nếu bạn thu hồi token trong Hetzner

Node vẫn chạy và vẫn nhận lỗi. Các thao tác cần Hetzner — đổi cỡ, dựng lại, xoá — sẽ thất bại cho tới khi Belvador có lại token hợp lệ. Với chế độ Strict, đây là điều bình thường: bạn cung cấp token tạm khi một thao tác cần.
