Bun
AMG EduTech Docs

Bun

Cài Máy chủ thi bằng Bun và tự chạy nó như một dịch vụ.

Gói Bun không cài dịch vụ, Caddy hay quy tắc tường lửa. Bạn tự làm ba việc đó. Nếu muốn bộ cài làm hết, dùng gói Linux.

Bạn cần Bun, Caddy 2, và địa chỉ registry hoặc tệp .tgz do nhóm vận hành cấp. Bạn cũng cần làm xong phần Chuẩn bị trước khi cài.

Cài Máy chủ thi

Cài gói

Nếu nhóm vận hành cấp registry, thêm registry vào ~/.bunfig.toml:

[install.scopes]
"@edtech" = { url = "https://<registry>/", token = "<token>" }

Sau đó cài gói:

bun add -g @edtech/exam-runtime

Nếu nhóm vận hành gửi tệp .tgz, chạy bun add -g ./edtech-exam-runtime-<phiên bản>.tgz thay cho hai bước trên.

Tạo tệp cấu hình

Tạo tệp /etc/exam-runtime.env. Thay địa chỉ AMG-Cloud, IP LAN và đường dẫn Caddy bằng giá trị của máy:

SYNC_GATEWAY_URL=https://<địa-chỉ-AMG-Cloud>
LAN_HOST=<IP-LAN>
RUNTIME_PROXY_CADDY_BIN=/usr/bin/caddy
AMG_DATA=/var/lib/exam-runtime
LOCAL_DB_PATH=/var/lib/exam-runtime/data/runtime.db
LOCAL_STORE_PATH=/var/lib/exam-runtime/data/store

Tạo chứng chỉ

Chạy lệnh này bằng chính người dùng sẽ chạy dịch vụ:

exam-runtime cert --env-file /etc/exam-runtime.env

Lệnh in đường dẫn chứng chỉ và địa chỉ tệp install-ca.cmd cho Máy thi.

Tạo và bật dịch vụ

Tạo tệp /etc/systemd/system/exam-runtime.service:

[Unit]
Description=Exam Runtime
After=network-online.target

[Service]
ExecStart=/root/.bun/bin/exam-runtime --env-file /etc/exam-runtime.env
Environment=PATH=/root/.bun/bin:/usr/bin:/bin
Restart=always

[Install]
WantedBy=multi-user.target

Giữ dòng Restart=always, vì Máy chủ thi tự khởi động lại bằng cách thoát. Sau đó bật dịch vụ:

sudo systemctl daemon-reload
sudo systemctl enable --now exam-runtime

Mở cổng 18443

Mở cổng TCP 18443 cho LAN trên tường lửa. Sau đó mở https://<máy-chủ-LAN>:18443/server/ để kiểm tra.

Tiếp theo, đăng ký máy chủ rồi cài chứng chỉ trên Máy thi.

Quản lý máy chủ sau khi cài

ViệcLệnh
Xem logjournalctl -u exam-runtime -f
Cập nhậtChạy bun add -g @edtech/exam-runtime@latest, rồi chạy sudo systemctl restart exam-runtime.
Đổi IP LANSửa LAN_HOST, chạy lại exam-runtime cert, rồi khởi động lại dịch vụ.
Gỡ cài đặt và giữ dữ liệubun remove -g @edtech/exam-runtime

Không cập nhật khi đang có Ca thi. Sao lưu thư mục tls trong AMG_DATA. Nếu mất khóa CA, bạn không làm mới được chứng chỉ.

Khi gặp sự cố

Thông báoLàm gì
needs Bun ..., not ...: bun upgradeChạy bun upgrade.
No LAN certificate in ...Tạo chứng chỉ như bước 3, với cùng tệp cấu hình.
requires LOCAL_DB_PATH and LOCAL_STORE_PATHThêm hai khóa đó vào tệp cấu hình.
exam-runtime: command not foundThêm ~/.bun/bin vào PATH.