Chuyển tới nội dung chính
Version: 4.1

Mô-đun bên thứ ba

Máy chủ > Mô-đun bên thứ ba (/server/third-party-modules) là nơi Super Administrator cài đặt và quản lý các mô-đun do nhà cung cấp khác xây dựng cho panel. Một mô-đun có thể thêm trang và ô bảng điều khiển vào panel khách hàng, thêm trang vào panel này, nhận thông báo về các sự kiện tài khoản, tên miền, chứng chỉ, sao lưu và đăng nhập, đọc các tài khoản nó được phép thấy, và cung cấp lệnh - mỗi việc chỉ với những quyền bạn duyệt khi cài nó.

Các dịch vụ riêng của panel (mail, DNS, cơ sở dữ liệu, ...) không phải mô-đun theo nghĩa này; chúng nằm ở Mô-đun & dịch vụ và Kho ứng dụng.

Cách một mô-đun được cách ly​

  • Nó chạy dưới người dùng hệ thống riêng không có đặc quyền, trong sandbox systemd, với giới hạn bộ nhớ, CPU và tiến trình. Nó không bao giờ chạy dưới quyền root.
  • Nó chỉ đọc và ghi được thư mục dữ liệu riêng của mình. Thư mục home của khách hàng, cấu hình, cơ sở dữ liệu và nhật ký của panel đều vô hình với nó.
  • Nó chỉ tiếp cận panel qua API mô-đun, với một token gắn với người dùng riêng của nó, giới hạn trong các quyền bạn đã duyệt và các tài khoản trong phạm vi của nó: mặc định chỉ những tài khoản có gói bao gồm mô-đun đó.
  • Các trang của nó chạy trong một khung sandbox bên trong bố cục của panel, không truy cập được phiên của người xem.
  • Thao tác của panel không bao giờ chờ mô-đun: sự kiện được xếp hàng và gửi ở chế độ nền, có chữ ký, kèm thử lại.

Cài đặt một mô-đun​

  1. Nhà cung cấp đưa cho bạn một gói có chữ ký (.hcm) và khoá công khai của họ. Thêm khoá một lần tại Khoá ký tin cậy.
  2. Upload gói. Chưa có gì được cài: trang xem xét hiển thị ai đã ký, các phiên bản panel nó hỗ trợ, các sự kiện nó muốn nhận, các trang nó thêm và mọi quyền nó yêu cầu, mỗi quyền một câu - các quyền nhạy cảm tô đỏ. Đánh dấu từng quyền để duyệt.
  3. Duyệt và cài đặt. Việc cài chạy ở chế độ nền; mô-đun xuất hiện trong danh sách khi hoàn tất.

Nâng cấp cũng tương tự, và phải được ký bằng cùng khoá với phiên bản đã cài. Một quyền mới cần bạn duyệt lại.

Gói không có chữ ký bị từ chối trừ khi bạn bật Cho phép mô-đun không ký - và ngay cả khi đó mỗi gói vẫn cần xác nhận lần hai. Chỉ dùng cho mô-đun do chính bạn xây dựng.

Cung cấp mô-đun cho khách hàng​

Một mô-đun có trang dành cho khách hàng là một tính năng, ext.<module id>, trong trình sửa bộ tính năng (Gói > Trình quản lý tính năng). Đánh dấu nó trong bộ tính năng của một gói và các tài khoản của gói đó sẽ thấy các trang của mô-đun - và chỉ khi đó mô-đun mới thấy được những tài khoản đó.

Quản lý một mô-đun​

Trang của mỗi mô-đun hiển thị trạng thái và tình trạng của nó, các quyền nó đang giữ, các sự kiện nó nhận và mọi lần gửi thất bại, biểu mẫu thiết lập của nó (do mô-đun khai báo, được kiểm tra trước khi lưu; giá trị bí mật không bao giờ hiển thị lại), 200 dòng nhật ký gần nhất, và: Khởi động lại, Tắt/Bật, API token mới, Gỡ cài đặt nhưng giữ dữ liệu, Gỡ cài đặt và xoá dữ liệu. Gỡ cài đặt sẽ xoá dịch vụ, người dùng, mã, giá trị bí mật, thiết lập, sự kiện đang chờ và tính năng của nó khỏi mọi gói.

Từ dòng lệnh​

hitechcloudcli modules list|info <id>
hitechcloudcli modules inspect <file.hcm>
hitechcloudcli modules install <file.hcm> --approve <perm,...> [--allow-unsigned]
hitechcloudcli modules upgrade <file.hcm> --approve <perm,...>
hitechcloudcli modules enable|disable|restart|remove <id> [--keep-data]
hitechcloudcli modules config <id> get | set --json-stdin
hitechcloudcli modules logs|health <id>
hitechcloudcli modules run <id> <command> [args...]
hitechcloudcli modules keys list|add <file.pub>|remove <key id>
hitechcloudcli modules settings --allow-unsigned on|off

Mọi lệnh đều trả lời --json. (hitechcloudcli module, số ít, là các dịch vụ riêng của panel.)

Dành cho tác giả mô-đun​

HiTechCloud DevKit đi kèm panel trong integrations/devkit: hướng dẫn tích hợp bằng tiếng Anh và tiếng Việt (integrations/devkit/docs/en/README.md, docs/vi/README.md), các mẫu khởi đầu cho PHP, Node.js, Python, Rust và Go, hai mô-đun ví dụ hoàn chỉnh, và công cụ devkit để kiểm tra, đóng gói, ký và chạy một mô-đun với một panel giả lập cục bộ.