Cài đặt từ gói offline
Đây là cách cài đặt được khuyến nghị tại một site biên của khách hàng khi không có internet, không truy cập được registry, và không build image trên box. Bạn cài đặt mọi thứ từ một gói phát hành tự chứa duy nhất, được giao trên thiết bị USB.
Bạn nhận được gì
Phần tiêu đề “Bạn nhận được gì”Một gói phát hành là một thư mục, được đặt tên theo hồ sơ phần cứng và phiên bản
(ví dụ amd64-cpu-v1.5.0). Chọn gói khớp với phần cứng của bạn:
| Hồ sơ gói | Dùng khi box có… |
|---|---|
amd64-cpu | CPU x86_64, không GPU — suy luận chỉ bằng CPU |
amd64-gpu | CPU x86_64 + NVIDIA GPU — tăng tốc bằng TensorRT |
jetson | Module biên NVIDIA Jetson (arm64 / L4T) |
Bên trong gói:
Thư mụcamd64-cpu-v1.5.0/
Thư mụcimages/
- amd64-cpu-v1.5.0.images.tar.zst ba image dịch vụ, đã nén
- manifest.txt tag image + checksum
Thư mụccompose/
- docker-compose.release.yml stack dựa trên image (không có bước build)
- docker-compose.certs.yml overlay chứng chỉ TLS của datasource (tùy chọn, xem bên dưới)
- .env.template placeholder cho cổng + secret
Thư mụcmodels/
- predictive_maintenance.onnx mô hình mầm demo (trọng số ngẫu nhiên)
Thư mụccerts/ CA + chứng chỉ/khóa client MQTT/OPC UA của datasource (tùy chọn)
- …
- install.sh
- update.sh
- uninstall.sh
- README.txt tờ hướng dẫn một trang cho người vận hành
Trước khi bắt đầu
Phần tiêu đề “Trước khi bắt đầu”Box đích phải đã cài sẵn những thành phần này (chúng đi kèm trên golden OS image — trình cài đặt kiểm tra chúng và dừng lại nếu thiếu bất kỳ thứ gì; nó không tự cài chúng cho bạn):
- Docker Engine 20.10 trở lên, kèm plugin
docker composev2 zstdvàopenssl- NVIDIA Container Toolkit — chỉ với gói GPU và Jetson
Runbook cài đặt
Phần tiêu đề “Runbook cài đặt”-
Sao chép gói vào box
Phần tiêu đề “Sao chép gói vào box”Sao chép toàn bộ thư mục gói từ thiết bị USB của bạn vào box đích, rồi mở một terminal trong đó:
Terminal window cd amd64-cpu-v1.5.0/ -
Chạy trình cài đặt
Phần tiêu đề “Chạy trình cài đặt”Trình cài đặt tự phát hiện hồ sơ phần cứng của bạn, nạp các image container, sinh secret, khởi chạy stack, và chờ tình trạng khỏe mạnh.
Terminal window sudo ./install.shĐể ép một hồ sơ cụ thể, hoặc để cài thêm dịch vụ tự khởi động khi boot:
Terminal window sudo ./install.sh --profile amd64-cpu # force the profilesudo ./install.sh --with-systemd # also start on bootBên dưới,
install.shchạy các bước này theo thứ tự:- Preflight — kiểm tra Docker, GPU toolkit (GPU/Jetson), và dung lượng đĩa.
- Xác minh checksum của kho lưu trữ image (phát hiện media hỏng hoặc bị giả mạo).
- Nạp images —
docker loadtừ kho lưu trữ đi kèm (không pull, không build). - Sinh secret — tạo secret ký JWT và mật khẩu admin trên
box và ghi chúng vào một
.envđược bảo vệ (mode600). Không có secret nào đi kèm bên trong gói. - Khởi chạy stack —
docker compose up -d. - Cổng tình trạng — chờ cả ba dịch vụ báo cáo khỏe mạnh.
- Tạo mầm admin và in URL bảng điều khiển + mật khẩu admin một lần.
-
Lưu lại mật khẩu admin
Phần tiêu đề “Lưu lại mật khẩu admin” -
Xác nhận secret đã được ghi
Phần tiêu đề “Xác nhận secret đã được ghi”Trình cài đặt sinh secret ký JWT tự động. Bạn thường không bao giờ động đến nó, nhưng có thể xác nhận
.envđược bảo vệ tồn tại:Terminal window ls -l .env # expect mode -rw------- (600)Nếu bạn cần cung cấp giá trị của riêng mình (ví dụ một chính sách quản lý secret của doanh nghiệp), hãy chỉnh sửa
.envtrước lầnupđầu tiên và đặt một giá trị ngẫu nhiên mạnh:# .env (placeholder — generate a strong random value, do not reuse)AIBOARD_JWT_SECRET=your-strong-random-jwt-secret -
Thay thế mô hình demo
Phần tiêu đề “Thay thế mô hình demo”Gói đi kèm một mô hình demo với trọng số ngẫu nhiên. Thay nó bằng
predictive_maintenance.onnxđã huấn luyện của bạn để các dự đoán có ý nghĩa:- Trước lần cài đặt đầu tiên: ghi đè
models/predictive_maintenance.onnxtrong gói, rồi chạyinstall.sh. - Sau khi cài đặt: thả mô hình của bạn vào volume model-data tại
/data/modelsvà khởi động lại dịch vụ suy luận.
Bạn cũng có thể tải lên mô hình sau từ bảng điều khiển — xem Triển khai mô hình.
- Trước lần cài đặt đầu tiên: ghi đè
-
Kiểm tra tình trạng
Phần tiêu đề “Kiểm tra tình trạng”Xác nhận cả ba dịch vụ đều khỏe mạnh:
Terminal window docker compose -f compose/docker-compose.release.yml psMong đợi ba container ở trạng thái
healthy. Sau đó mở URL bảng điều khiển mà trình cài đặt đã in và đăng nhập bằng tài khoản admin.
Vận hành ngày-2
Phần tiêu đề “Vận hành ngày-2”Triển khai một gói mới hơn. Quá trình cập nhật chụp nhanh cơ sở dữ liệu trước để bạn có đường rollback.
sudo ./update.shẢnh chụp nhanh trước cập nhật chỉ bao gồm cơ sở dữ liệu (không bao gồm mô hình đã tải lên hoặc cache TensorRT). Hãy sao lưu các volume đó riêng nếu bạn cần rollback mô hình.
./uninstall.sh # stop the stack, KEEP all data./uninstall.sh --purge # also delete models + database (confirmation prompt)Chứng chỉ TLS của datasource
Phần tiêu đề “Chứng chỉ TLS của datasource”(v1.22.1) TLS phía datasource — CA / chứng chỉ client / khóa mà một datasource MQTT
hoặc OPC UA dùng để tới một broker hoặc server đã bảo mật, tách biệt với chứng chỉ HTTPS
của chính box — mặc định tắt trên đường dẫn gói offline. Đây là một cờ .env dựa trên
tệp, đối xứng với AIBOARD_TLS_ENABLED:
AIBOARD_CERTS_ENABLED=1Khi cờ này bật, install.sh ghi lại một đường dẫn tuyệt đối
AIBOARD_CERTS_DIR=<bundle>/certs và lớp overlay docker-compose.certs.yml đi kèm
lên trên stack phát hành cơ bản. Hãy thả các tệp CA và chứng chỉ/khóa client MQTT/OPC UA
của bạn vào thư mục certs/ của gói trước khi bật cờ.
Nếu có gì đó sai
Phần tiêu đề “Nếu có gì đó sai”| Triệu chứng | Nó có nghĩa gì |
|---|---|
Bundle manifest missing | Bạn đã chạy trình cài đặt từ một thư mục nguồn, không phải một gói đã lắp ráp. Dùng thư mục gói bạn đã sao chép từ USB. |
Architecture mismatch | Sai hồ sơ gói cho CPU của box này. Dùng hồ sơ khớp. |
NVIDIA toolkit not wired in | Gói GPU/Jetson trên một box không có container toolkit. Dùng gói amd64-cpu, hoặc sửa stack GPU trên OS image. |
Suy luận kẹt ở unhealthy | Biên dịch TensorRT lần chạy đầu (GPU) mất 2–3 phút — hãy chờ. Nếu không, hãy kiểm tra nhật ký suy luận. |
| Checksum kho lưu trữ không khớp | Thiết bị USB bị hỏng hoặc bị giả mạo. Sao chép lại gói và thử lại. |
Xem runbook Khắc phục sự cố đầy đủ để có các cách sửa theo từng triệu chứng.