Rà soát những gì chỉ có ở Community (2026-09-23)
Việc phân chia phiên bản luôn được viết từ một phía: Phiên bản và mô-đun ghi lại những gì Enterprise bổ sung. Chưa ai từng kiểm tra chiều ngược lại - liệu máy chủ Community có cung cấp thứ gì mà máy chủ Enterprise không có hay không. Quy tắc của chủ sở hữu là Enterprise phải là tập cha chặt của Community: bất cứ thứ gì Community có mà Enterprise thiếu đều là lỗi, trừ khi chủ sở hữu quyết định đó là ngoại lệ có chủ ý.
Trang này là kết quả của lần kiểm tra đó, và là danh sách cho phép mà mọi
tên chỉ có ở Community trong tương lai được đối chiếu. TestCommunityOnlyIsExactlyTheAuditsDeliberateList
(hitechcloudpanel/internal/modules/edition_test.go) làm thất bại bản build nếu một
tính năng chỉ có ở Community mới xuất hiện trong internal/core/licence/features.go mà không
được thêm vào đây trước - giống như cách TestTheCompiledSplitMatchesTheCatalogue
thất bại nếu sự phân chia chiều thuận (những gì Enterprise bổ sung) lệch khỏi
features.json.
Các nguồn đã kiểm tra
configuration/hitechadmin/config/modules.json- mọi mô-đuncommunitycó được cài trên máy chủ có giấy phép không?configuration/hitechadmin/config/features.jsonvàinternal/core/licence/features.go- theo định nghĩa, mapcommunityOnlylà danh sách những thứ Enterprise không thể truy cập.- Các bảng route Go và Rust, thanh bên và template trong
hitechcloudpanel,hitechcloudadminvàhitechcloudcli- bất kỳ nhánh nào hiển thị hoặc bật thứ gì đó chỉ khi phiên bản là Community. INSTALL.shvà trình cài đặt mà nó điều khiển - bất cứ thứ gì chỉ được thiết lập khi không có giấy phép.
Các phát hiện liên quan đến webmail/Roundcube/phần mềm thư nằm ngoài phạm vi vòng này (W1 đang xây dựng trình cài Roundcube, W2 các đảm bảo dữ liệu CE→EE, W3 sự tương đương webmail của Enterprise) và được liệt kê bên dưới, trỏ tới phạm vi của chúng, không kèm kết luận.
Để chủ sở hữu xác nhận
Một trường hợp có chủ ý đã được biết trước, đã được triển khai và kiểm thử
(internal/core/licence/features.go, TestTheAccountsServicesViewIsCommunityOnly).
Lần rà soát tìm thấy thêm hai trường hợp trông có chủ ý vì cùng loại lý do -
một trang chỉ có ý nghĩa trước khi máy chủ chạy panel của quản trị viên
được cấp giấy phép - nhưng chưa trường hợp nào được chủ sở hữu quyết định.
Giữ nguyên trong khi chờ quyết định đó:
/licence(nhập khoá giấy phép, liên kết thanh bên "Activate Enterprise") - chỉ có ở Community. Đây là nơi duy nhất để nhập khoá giấy phép, vì trên Community cổng2087hoàn toàn không phản hồi - không có panel quản trị nào để làm việc đó thay thế. Trên Enterprise, khoá đã tồn tại (chính nó khiến máy chủ thành Enterprise), nên trang trả về 404 (hitechcloudpanel/internal/modules/licence/licence.go). Trông mang tính cấu trúc, giốngservices, nhưng chưa ai quyết định.- Liên kết dự án GitHub ở chân trang và trang đăng nhập - được bọc trong
{{if not .IsEnterprise}}ởhitechcloudpanel/internal/web/templates/partials/_footer.htmlvàinternal/web/templates/user/_login.html. Đây là thương hiệu mã nguồn mở mang tính trang trí, không phải một năng lực - nhưng nó vẫn là thứ Community hiển thị mà Enterprise không, nên nó thuộc danh sách này thay vì bị âm thầm coi là ổn.
Các phát hiện
| Mục | Ở đâu | Vì sao chỉ có ở Community | Kết luận |
|---|---|---|---|
Trang dịch vụ riêng của tài khoản (/services, tính năng services) | hitechcloudpanel/internal/core/licence/features.go (communityOnly), internal/modules/registry.go, thanh bên | Trên Community, tài khoản đang đăng nhập sở hữu toàn bộ máy chủ (2087 không phản hồi), nên nó có thể khởi động lại các dịch vụ mà website của nó chạy trên đó. Trên Enterprise, các dịch vụ đó dùng chung giữa mọi tài khoản và thuộc về panel của quản trị viên (2087). | Có chủ ý (chủ sở hữu đã xác nhận; trường hợp duy nhất được nêu trong yêu cầu của vòng này). Không thay đổi. |
Trang nhập khoá giấy phép /licence | internal/modules/licence/licence.go, internal/app/userdata.go (licence_activation), internal/web/sidebar.go | Nơi duy nhất để nhập giấy phép trên Community, vì 2087 chưa tồn tại để làm việc đó. Trả về 404 trên Enterprise. | Đề xuất là có chủ ý - đã yêu cầu chủ sở hữu quyết định (xem ở trên). Không thay đổi. |
| Liên kết thương hiệu GitHub / mã nguồn mở (chân trang, trang đăng nhập) | internal/web/templates/partials/_footer.html:39, internal/web/templates/user/_login.html:73 | Tự quảng bá của phiên bản Community; mang tính trang trí, không phải tính năng. | Đề xuất là có chủ ý - đã yêu cầu chủ sở hữu quyết định (xem ở trên). Không thay đổi. |
| Cài/gỡ phiên bản PHP trên panel riêng của tài khoản | Chỉ có ở Community trong hitechcloudpanel/internal/modules/php/{install_version,remove_version}.go (phpVersionsManageable) và bản song sinh Rust render_default.rs | Phiên bản PHP áp dụng toàn máy chủ; việc quản lý chuyển sang quản trị viên trên Enterprise. | Sai hình dạng, không phải thiếu. Enterprise có nó tại hitechcloudadmin/internal/handlers/php_versions.go (2087), cùng kiểu chuyển giống services. Không cần sửa. |
13 mô-đun gắn edition: "community" trong modules.json (php, mariadb, redis, valkey, memcached, goaccess, acme, firewall, fail2ban, mail, ftp, clamav, webmail-roundcube) | configuration/hitechadmin/config/modules.json, hitechcloudcli/native/module.rs | Stack hosting cơ bản mà máy chủ nào cũng cần. | Sai hình dạng / đã là tập cha, với một lỗi được tìm thấy bên dưới (dòng tiếp theo). webmail-roundcube thuộc phạm vi của W1, không đánh giá thêm ở đây. |
hitechcloudcli module install --edition enterprise không cài 13 mô-đun Community | hitechcloudcli/native/module.rs (nhánh match install/uninstall/repair, bộ lọc wanted) | Bộ lọc so khớp chính xác phiên bản (m.edition == e), nên --edition enterprise chỉ chọn 17 mô-đun gắn enterprise; components_for_edition (đường cài mới) đã làm đúng việc này, nhưng đường nâng cấp giấy phép thì không, trái với chính chú thích tài liệu của nó và thiết kế trong Phiên bản và mô-đun. Máy chủ được cấp giấy phép theo bất kỳ cách nào khác ngoài nâng cấp một bản cài Community đang chạy (giấy phép áp dụng ngay sau một bản cài trần, hoặc repair sau --purge) sẽ khởi động mà không có PHP, MariaDB, thư, FTP hay bất kỳ mô-đun Community nào khác. | Lỗi - đã sửa. install/repair/uninstall giờ phân giải --edition <e> qua cùng hàm trợ giúp modules_for_edition như components_for_edition, nên enterprise lại là tập cha chặt. Kiểm thử: installing_the_enterprise_edition_also_wants_every_community_module, installing_the_community_edition_wants_only_community_modules (native/module.rs). |
hitechcloudcli admin logs (multitail trên các tệp nhật ký riêng của trang quản trị) bỏ qua nhật ký yêu cầu API trên Enterprise | hitechcloudcli/admin.rs (logs(), nay là log_files()) | Điều kiện bị đảo ngược: API_LOG chỉ được tail khi licence_key().is_empty() (Community). Nhật ký đó ghi lại REST API có giấy phép (/settings/api, RequireAPIFeatureEnabled trong hitechcloudadmin), vốn chỉ phản hồi trên Enterprise - nên bản sao tệp trên Community không bao giờ có dòng nào, còn Enterprise, phiên bản duy nhất mà nhật ký có ý nghĩa, lại là phiên bản bị lệnh này bỏ qua. | Lỗi - đã sửa. log_files() giờ luôn bao gồm API_LOG, như mọi tệp khác mà nó tail. Kiểm thử: admin_logs_always_includes_the_api_log (admin.rs). |
WITH_COMPONENTS trong INSTALL.sh (danh sách thành phần Community và Enterprise truyền cho install) | INSTALL.sh:60-116 | Đặt các thành phần mà một bản cài mới yêu cầu, dựa trên việc có cung cấp khoá giấy phép lúc cài hay không. | Không có khoảng trống. Mọi thành phần Community cũng có trong danh sách Enterprise; sự phân chia của chính trình cài đặt đã là tập cha. Các điều kiện khoá giấy phép khác trong tệp chỉ là lệnh echo thông tin, không phải bước cài đặt/cấu hình. |
enterpriseOnly (43 tính năng) và communityOnly (services, ở trên) trong features.go so với features.json | internal/core/licence/features.go | Sự phân chia chiều thuận (những gì Enterprise bổ sung) đã được TestTheCompiledSplitMatchesTheCatalogue cố định; chiều ngược lại chưa có lớp bảo vệ tương đương. | Đã thêm lớp bảo vệ. TestCommunityOnlyIsExactlyTheAuditsDeliberateList cố định map communityOnly đã biên dịch với deliberateCommunityOnly = []string{"services"} (mục đã xác nhận của tài liệu này) và thất bại nếu features.json có thêm dấu community_only mà không được đưa vào cùng phép so sánh. |
| SSO webmail Roundcube / cổng tính năng | hitechcloudpanel/internal/modules/emails/webmail.go:108 | Liên quan đến webmail. | Không đánh giá ở đây - thuộc W1 (trình cài Roundcube), W2 (đảm bảo dữ liệu CE→EE) và W3 (tương đương webmail của Enterprise). |
Các quy tắc mà lần rà soát này duy trì
- Enterprise là tập cha của Community: mọi mô-đun, tính năng và trang Community có, Enterprise cũng có, dưới tên riêng hoặc một tên khác - không bao giờ đơn giản là thiếu.
- Khoảng trống tìm thấy ở đây được sửa ngay trong vòng tìm ra nó, bằng Rust, kèm kiểm thử - không ghi lại để làm sau.
- Một tên chỉ có ở Community thực sự là quyết định thiết kế thì được ghi lại ở đây và để nguyên; nó không bị "sửa" cho biến mất.
TestCommunityOnlyIsExactlyTheAuditsDeliberateListgiữ cho tài liệu này trung thực: sự phân chia đã biên dịch chỉ có thể chứa những gì trang này đã quyết định là có chủ ý.