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

4.0.5

Design system​

  • Một nguồn token cho panel khách hàng (2083) và panel admin (2087) - static/css/design-system/, giống hệt từng byte ở cả hai: văn bản, văn bản mờ, đường viền, bề mặt và ba bán kính (control, card, overlay) theo giao diện đang dùng ở chế độ sáng và tối. Default 8/12/16px, cPanel 4/4/6px, DirectAdmin 4/6/8px, Plesk 2/2/4px.
  • Inter là phông của panel, do chính panel phục vụ (Latin, Latin Extended và tiếng Việt); các stylesheet trước đây yêu cầu Inter nhưng không bao giờ nạp nó, nên các trang lùi về phông hệ thống.
  • Trang phẳng: thẻ, nút và trường được ngăn bằng một đường viền mảnh; chỉ các lớp nổi (menu, popover, modal, toast) đổ bóng.
  • Các điều khiển riêng của trình duyệt theo giao diện: một <select> đơn có đường viền, bán kính và mũi tên của giao diện; hộp kiểm và nút radio được vẽ bằng màu chính của giao diện; thanh cuộn rộng 4px và hiện khi rê chuột hoặc khi đang cuộn (một hộp cuộn ngang luôn hiện một thanh mờ); bộ chọn ngày, tự điền và danh sách chọn theo công tắc sáng/tối của panel thay vì hệ điều hành.
  • Các hành động chính là một thành phần trên cả hai panel - khoảng 470 nút đen tô màu tay đã được chuyển đổi. Ở chế độ tối một nút chính không còn biến thành một nút xám trông như phụ, một nút chính bị vô hiệu hoá trông bị vô hiệu hoá, và một nút đang bận giữ màu của nó.
  • Webmail (2096): giao diện HiTechCloud là mặc định, dùng Inter, với thang bán kính của các panel; không văn bản nào nhỏ hơn 12px.

Added​

  • Ubuntu 26.04 LTS được hỗ trợ (#1535): trình cài đặt chấp nhận nó và nêu tên nó trong mọi thông báo về các bản phát hành được hỗ trợ, và CI chạy trên nó. Trước khi thêm kho gói của một nhà cung cấp, trình cài đặt kiểm tra xem nó có công bố bản phát hành của bạn không; nếu không, nó dùng các gói riêng của Ubuntu hoặc bỏ thành phần đó và nói lý do, nên không có kho nào bị để lại làm hỏng các lần chạy apt-get update sau này. Trên 26.04 Node.js đến từ Ubuntu, SQL Server không được cung cấp, và MongoDB 8.0 bị từ chối kèm lý do. Một bản cài mới trên một bản Ubuntu mới hơn 26.04 sẽ dừng trừ khi có --skip-requirements.
  • Thư trên Dovecot 2.4 (Ubuntu 26.04, Debian 13; #1535): trình cài đặt, mọi bản cập nhật (hitechcloudcli mail apply-config), mail tls, mail sync và tài khoản đăng nhập một lần webmail ghi các cài đặt của Dovecot bằng ngôn ngữ của Dovecot đã cài, với cùng đường dẫn thư, đăng nhập, thư mục, bộ lọc, giới hạn và câu trả lời SMTP như trên 2.3, nên một máy chủ mà bản phát hành chuyển nó lên 2.4 giữ được thư của mình; các máy chủ Dovecot 2.3 nhận các tệp giống như trước. Một bản cập nhật giờ yêu cầu Dovecot kiểm tra các cài đặt mới của nó trước khi nạp lại và đặt lại các cài đặt trước đó của panel nếu nó từ chối. Debian 13 được nêu tên là một bản phát hành được hỗ trợ.
  • 2087 Domains > Websites (#1520): một danh sách chỉ đọc duy nhất về website của mọi tài khoản, hiển thị tài khoản (liên kết tới trang của nó), tên miền, ứng dụng và phiên bản của nó, với tìm kiếm và sắp xếp. Một reseller chỉ thấy website của các tài khoản của chính mình.
  • User Backups (#1504): quản trị viên có thể loại các tài khoản khỏi bản sao lưu trung tâm trên 2087 > Backups > User Backups > Settings (mỗi dòng một tên tài khoản). Các lần chạy theo lịch và Run Backup Now bỏ qua các tài khoản đó - các tài khoản khác vẫn được sao lưu từng cái một - và nhật ký Runs có một dòng cho mỗi tài khoản bị bỏ qua. Các bản sao lưu mà một tài khoản tự lên lịch cho mình không bị ảnh hưởng, và trình hướng dẫn làm quen 2083 không còn nói với một tài khoản bị loại rằng máy chủ sao lưu nó. Một tên không phải là tài khoản trên máy chủ bị bỏ qua và được đánh dấu trên trang; danh sách được giữ qua các bản cập nhật.
  • Đăng nhập vào 2083 mở trang bạn đã yêu cầu - một dấu trang, hoặc trang bạn đang ở khi phiên kết thúc - thay vì luôn là bảng điều khiển, cả qua bước mã 2FA và đăng nhập passkey. Các liên kết "Log in as" của 2087 có thể mở một trang 2083 nhất định, và "Log in as ... to edit it" của kiểm toán snippet mở trình soạn ghi đè của website đó. Chỉ các trang của panel được đi theo; mọi thứ khác đưa tới bảng điều khiển như trước (#1519).

Fixed​

  • Sao lưu, trung tâm và theo lịch (#1521): sau bất kỳ lần chạy sao lưu nào - trung tâm, theo lịch hay Run Now - trang Restore của 2083 lập lại chỉ mục ở lần truy cập kế tiếp và chỉ đọc các kho lưu trữ mới, và một lần lập lại chỉ mục thất bại hiển thị lỗi của nó thay vì thăm dò mãi mãi. Dòng cron "Backup for all users" đi kèm giờ chạy bản sao lưu (nó gọi một lệnh không sao lưu gì khi các dịch vụ chạy trên máy chủ); bản cập nhật trỏ lại các dòng hiện có.
  • Các trình soạn cấu hình máy chủ web (#1512): trình soạn ghi đè website kiểm tra cấu hình thực của engine web (nó từng kiểm tra cấu hình của bản phân phối, nên một đoạn như location / {} được lưu và làm hỏng lần nạp lại hoặc khởi động lại kế tiếp của mọi website trên engine đó). Cả trình soạn ghi đè và trình soạn VirtualHost giờ đặt lại tệp trước đó và nạp lại khi kiểm tra hoặc nạp lại của engine thất bại, và nói điều đó thay vì báo thành công. Một lần kiểm tra thất bại chỉ hiển thị các dòng về tệp của chính website.
  • n8n (#1512, #1518, #1526): cài trên một tên miền không còn xoá hay làm hỏng mục front-end của website; nếu front end từ chối thay đổi, mọi tệp được đặt lại và lần cài thất bại thay vì báo thành công; gỡ cài đặt trả tên miền lại cho website của nó. Cài đặt Path được tôn trọng: dưới bất kỳ đường dẫn nào khác "/" n8n được phục vụ bên trong mục của website và website giữ phần còn lại của tên miền; một phiên bản thứ hai trên cùng tên miền và đường dẫn bị từ chối. Một phiên bản chiếm cả một tên miền giữ các tiện ích front-end của website (chặn IP, Cloudflare-only, chuyển hướng, nguồn tin đe doạ) và lắng nghe trên các địa chỉ riêng của tài khoản.
  • Moodle (#1530): cài đặt và cập nhật tải một bản sao hiện tại của bản phát hành (một kho lưu trữ "latest" đã lưu đệm được dùng lại tối đa một ngày). Các website trên 4.5 LTS hoặc 5.0, không có thư mục public/, có một web root hoạt động và hiển thị đúng phiên bản trong Site Manager và trên trang quản lý; một liên kết mà lần cài trước trỏ tới một thư mục thiếu được sửa ở lần cập nhật kế tiếp của website. Các bản cập nhật ở lại trên dòng phát hành của website, và một bản nâng cấp chính (ví dụ 4.5 lên 5.x) được đưa ra trên một nút riêng; trước khi thay đổi bất cứ thứ gì chúng kiểm tra phiên bản PHP và có bản phát hành mới hơn, và nếu bản nâng cấp dừng trước khi chạm vào cơ sở dữ liệu thì bản phát hành trước được đặt lại.
  • Gỡ một ứng dụng (gỡ ứng dụng, gỡ WordPress từ trang hoặc API, xoá website) cũng xoá đăng nhập cơ sở dữ liệu của ứng dụng trên mọi máy chủ (#1528); trước đây nó ở lại, vẫn đăng nhập được bằng mật khẩu của website đã gỡ. Chỉ các tên của chính tài khoản bị xoá, và mọi thứ được giữ lại đều được báo.
  • Sao lưu tới các đích SSH đăng nhập bằng mật khẩu hoạt động với engine kho (restic) (#1527), qua backend SFTP của rclone với mật khẩu được giữ khỏi dòng lệnh; các đích dùng khoá không đổi.
  • Các đề xuất của Resource Engine được đặt lại khi giới hạn CPU hoặc RAM của một tài khoản thay đổi, các tuần cũ hết hạn, và bằng chứng áp lực bộ nhớ/OOM chỉ bao phủ 8 tuần gần nhất, nên việc tăng một giới hạn không còn đem lại một đề xuất tăng nó lần nữa (#1529).
  • ImunifyAV (#1515, #1516, #1517): các máy chủ được trình cài đặt thiết lập nhận hook thông báo phát hiện mã độc và các giới hạn tài nguyên quét mà imunify install đã đặt; các cảnh báo mã độc có công tắc "Malware found" riêng, và admin notifications update thêm một cài đặt đã biết mà notifications.ini cũ hơn thiếu thay vì bỏ qua nó (điều này cũng cho phép các trường Telegram lưu được). Trang ImunifyAV không còn lặp "not running, run imunify start" khi giao diện web của nó bị thiếu: nó nói giao diện chưa được cài và đề nghị cài lại.
  • Báo cáo lưu lượng tên miền 2087: trang tìm các báo cáo nơi hitechcloudcli domains-stats ghi chúng (nó từng tìm trong một thư mục mà không gì ghi tới trên native stack và nói "not found"); ADMIN_GOACCESS_STATS_DIR vẫn ghi đè nó.
  • Các vòng mức sử dụng trên danh sách Users và trang tài khoản của 2087 giữ đầy trên 100% (130% từng trông như 70%); trang tài khoản lấy phần trăm inode từ giới hạn inode (#1495).
  • Mã QR thiết lập 2FA giữ viền trắng ở chế độ tối - trên trang 2FA của 2087 và trên trang bảo mật tài khoản và trình hướng dẫn làm quen của 2083 - để điện thoại quét được (#1540).
  • Trình hướng dẫn làm quen (#1531): khi quản trị viên quản lý sao lưu của một tài khoản (đích do máy chủ quản lý, lịch trung tâm, hoặc nhà cung cấp trên Enterprise), bước Backups hiển thị đích và lịch và không lưu gì, thay vì đòi một đích và thay thế đích của máy chủ; một tài khoản Community vẫn có thể chọn một đích riêng từ đó.
  • Danh sách Users của 2087: các cột Login và Actions được căn phải, kể cả tiêu đề, để mỗi tiêu đề nằm trên các nút của nó (#1501).
  • Trang sửa reseller của 2087: các danh sách tính năng và gói được phép hoạt động với một reseller chưa có cái nào, và việc chọn một gói sẽ lưu nó (trước đó nó thêm một bản trùng lặp).
  • server-migrate (#1541) chuyển đầy đủ một máy chủ chạy các dịch vụ trên máy chủ: mọi tài khoản qua cùng việc chuyển như user-transfer (tệp, cơ sở dữ liệu, thư, vùng DNS, cron job), của chính quản trị viên trước rồi tới từng reseller, cùng các cài đặt của panel - gói, nhóm quyền, quản trị viên và reseller, bộ tính năng, thương hiệu, cài đặt thông báo, sao lưu và relay thư, mặc định cho website mới. Đích giữ tên máy chủ, địa chỉ IP, giấy phép, chứng chỉ TLS, thông tin xác thực cơ sở dữ liệu và khoá máy chủ SSH của riêng nó. Một tài khoản thất bại không làm dừng phần còn lại; bản tóm tắt nêu tên mọi tài khoản không được chuyển và lý do, lần chạy thoát khác không, và chạy lại sẽ bỏ qua những gì đã chuyển. Nó từ chối trước khi sao chép bất cứ thứ gì khi đích có tài khoản riêng hoặc thiếu một phiên bản PHP hoặc máy chủ web mà các website dùng (--force ghi đè). Các vùng DNS đã sao chép được trỏ lại tới địa chỉ đích theo từng địa chỉ (gồm SPF), với tăng serial và kiểm tra vùng; các tên miền có chữ ký DNSSEC được ký ở đó bằng cùng các khoá. server-migrate và user-transfer không còn sửa known_hosts của root, hoạt động với các đích IPv6 và ánh xạ lại các UID/GID xung đột. Trang Server migration của 2087 và API của nó báo một lần chạy kết thúc ra sao - thành công, hoặc thất bại kèm mã thoát và các dòng cuối nó in ra; nhật ký và pid của lần di chuyển được chuyển từ /tmp sang /var/log/hitechcloud/admin/migrations.
  • 2083, các giao diện cPanel và DirectAdmin: mọi trang cuộn ngang trên điện thoại (ô tìm kiếm ở tiêu đề có chiều rộng tối thiểu cố định); tiêu đề vừa với 375px ở mọi giao diện, với một breadcrumb một dòng bị cắt ngắn. "Search Tools" là một điều khiển duy nhất ở mọi giao diện - một trường với phím tắt / từ chiều rộng máy tính bảng, một biểu tượng trên điện thoại.
  • Bảng điều khiển 2083: nhãn công cụ không còn xuống dòng ở chiều rộng máy tính để bàn; biểu tượng công cụ không còn là một nút bên trong liên kết; mục bảng điều khiển tuỳ chỉnh của admin không còn ném lỗi mỗi mục và giữ bố cục ở chế độ xem biểu tượng.
  • Chế độ tối 2083 và 2087: khoảng 175 văn bản sáng trên bề mặt tối, và các bề mặt được mã hoá cứng thành một màu gần đen, theo các màu tối của giao diện; văn bản phụ màu xám đạt độ tương phản 4,5:1 trên bề mặt tối của mọi giao diện.
  • 2083 và 2087: văn bản dưới 12px được nâng lên 12px (các trang Backups của 2087 có 75 chỗ như vậy).
  • Trang đăng nhập 2083 dùng stylesheet riêng của panel thay vì một tập lệnh từ CDN.
  • 2087 ở chiều rộng điện thoại: các thanh công cụ hàng đợi email và giới hạn tên miền, tab sao lưu, lưới máy chủ web của tài khoản mới, trang mặc định, các hàng SSL và tiêu đề trình soạn snippet và máy chủ web xuống dòng hoặc cuộn thay vì bị cắt; các đường dẫn dài trong tiêu đề trình soạn đó không còn tràn ở 1024px.
  • Stylesheet 2083 đã commit đã lỗi thời so với các mẫu (bảng điều khiển hiển thị thành một cột ở 1440px); nó được dựng lại và --check của CI lại qua.
  • Cloudflare only (#1537): một website chuyển sang Cloudflare only cũng trả lời chính máy chủ nó đang chạy trên - loopback và các địa chỉ IPv4/IPv6 của chính máy chủ - nên cron job, xoá cache và các câu trả lời DNS của chính máy chủ cho tên miền của nó tới được thay vì nhận 403. Một yêu cầu mà một proxy trên máy chủ (bộ định tuyến cạnh HAProxy hoặc Traefik) chuyển tiếp từ nơi khác vẫn bị từ chối. Danh sách theo các địa chỉ của máy chủ: nó được ghi lại khi một địa chỉ được thêm hoặc gỡ, sau config update server_ip, sau một lần di chuyển máy chủ và ở mỗi bản cập nhật.
  • 2087: thanh trên cùng của reseller lại hiển thị các tài khoản và đĩa của nó so với giới hạn; nó từng đọc <no value> GB / ∞ trên mọi trang. Một con số không đọc được sẽ bị bỏ ra thay vì hiển thị.
  • 2087 User Backups: lưu thư mục lưu trữ cục bộ trên tab Destinations không còn đặt lại giờ và ngày của bản sao lưu trung tâm về Chủ nhật 03:00.

Security​

  • 2083 và 2087: các giá trị mà một trang đặt bên trong thuộc tính Alpine.js (x-data, x-show, :class, @click...) chỉ được thoát cho HTML, điều mà trình duyệt hoàn tác trước khi tập lệnh chạy, nên một tên miền, tên tệp, dòng nhật ký hoặc đường dẫn yêu cầu có chứa một dấu nháy có thể chạy tập lệnh trong panel. Khoảng 100 chỗ trên 2083 và 131 chỗ trên 2087 giờ phát chúng dưới dạng JSON (chèn tập lệnh được lưu và phản chiếu). Trên 2087 bảng lịch sử mức sử dụng của tài khoản và nhật ký chuyển - lấy từ các tệp trong thư mục home riêng của tài khoản - và các thông báo toast được ghi dưới dạng văn bản, không bao giờ là HTML.
  • Sao lưu tới các đích mà một tài khoản nêu tên (cả hai engine, và đẩy kho lưu trữ): mọi giá trị SSH (máy chủ, cổng, người dùng, tệp khoá, đường dẫn) được kiểm tra trước khi bất cứ thứ gì chạy, nên không giá trị nào có thể thêm một tuỳ chọn vào lệnh ssh, scp hay sftp; khoá phải là tệp riêng của tài khoản bên trong home của nó và được dùng qua một bản sao chỉ root đọc được lấy từ cùng tệp đang mở mà phép kiểm tra đã nhìn; các khoá SSH của chính root không bao giờ được đưa cho một máy chủ như vậy; một lần đẩy WebDAV chỉ nhận địa chỉ http(s); một URL kho sftp: bị từ chối (hãy dùng cài đặt SSH), một URL rclone: phải nêu một remote thuần, và một thư mục trên máy chủ này không thể được nêu tên làm kho. Với đích do máy chủ quản lý, các cài đặt của tài khoản không còn có thể chuyển hướng kho hay trộn giá trị của chúng vào của máy chủ, và việc nhân bản DR của nó bị từ chối. Danh sách cho phép remote rclone của quản trị viên giờ cũng áp dụng cho các đích Rclone, Google Drive và OneDrive của engine kho. Đích riêng của quản trị viên không đổi.
  • Các bản sao "Store Emails" (có thể gồm mật khẩu của một tài khoản mới) là riêng tư với root: thư mục là 0700 và các tệp là 0600, các bản sao mà các bản phát hành cũ để ở dạng đọc được bị khoá lại ở email kế tiếp được gửi, và chúng không bao giờ được ghi qua liên kết tượng trưng (#1540).
  • user-password từ chối một tên người dùng không có tài khoản panel thay vì báo thành công, và chỉ đổi mật khẩu hệ thống (FTP/SFTP) của các tài khoản hosting, không bao giờ của root hay một tài khoản dịch vụ.
  • 2087: báo cáo lưu lượng tên miền kiểm tra tên tài khoản và việc website thuộc về tài khoản đó, và được phục vụ trong một sandbox; Live Chat chỉ mở, đọc và trả lời các tài khoản hiện có; chế độ xem nhật ký áp dụng gói chỉ phục vụ các nhật ký mà việc sửa gói ghi ra, luôn dưới dạng văn bản thuần. Báo cáo lưu lượng 2083 cũng được phục vụ trong một sandbox.
  • hitechcloudcli admin update từ chối một tên reseller không phải tên đăng nhập trước khi ghi bất cứ thứ gì, và --logo_url chỉ chấp nhận một giá trị rỗng, một địa chỉ https:// hoặc một đường dẫn /static/ - quy tắc mà panel admin đã áp dụng.
  • Đăng nhập 2087: trang để quay lại sau khi đăng nhập không còn có thể trỏ tới một website khác qua /\host, một tab, hoặc các dấu gạch chéo mã hoá; 2083 và 2087 áp dụng một quy tắc cho việc đó.

Things that behave differently after this update​

  • Trình soạn ghi đè máy chủ web: một thay đổi mà engine web từ chối, hoặc làm nó không nạp lại được, bị hoàn tác thay vì được giữ lại.
  • Sao lưu tới một đích SSH mà tài khoản đã chọn: nó cần một tệp khoá riêng của tài khoản bên trong thư mục home của nó (một đường dẫn khoá dưới /var/www/html bị từ chối), hoặc một mật khẩu. Trong cài đặt sao lưu của một tài khoản, RESTIC_REPOSITORY / DR_REPOSITORY phải nêu một backend mạng (ngoại trừ sftp: - hãy đặt máy chủ, người dùng và khoá SSH thay vào đó); một thư mục trên máy chủ này bị từ chối. Với đích do máy chủ quản lý, RESTIC_REPOSITORY của tài khoản bị bỏ qua và việc nhân bản DR bị từ chối.
  • n8n được cài dưới một đường dẫn trước bản phát hành này: hãy cài lại để chuyển nó vào bên trong mục của website.
  • Các bản cập nhật Moodle ở lại trên dòng phát hành của website (4.5 ở lại 4.5); một bản nâng cấp chính là một nút riêng trên tab Update (?major=1 trong API).
  • server-migrate từ một máy chủ chạy các dịch vụ trên máy chủ cần một đích mới cài trên cùng phiên bản, với các phiên bản PHP và máy chủ web mà các website dùng, và thay thế các quản trị viên và reseller của nó bằng của máy chủ này. Các tài khoản bị tạm ngưng và các tài khoản trên các nút hosting không được chuyển; bản tóm tắt nêu tên chúng.
  • Một liên kết 2087 /login/token/{user}?next=... có next không phải một trang của panel khách hàng sẽ mở bảng điều khiển của khách hàng thay vì trả lời 400.
  • Một bản cài mới trên một bản Ubuntu mới hơn 26.04 dừng trừ khi có --skip-requirements.
  • Một máy chủ được nâng cấp tại chỗ lên Ubuntu 26.04 hoặc Debian 13: chạy hitechcloudcli mail apply-config, rồi hitechcloudcli mail sync (hoặc hitechcloudcli update --repair), ngay sau khi nâng cấp bản phát hành. Dovecot 2.4 không khởi động với các cài đặt của 2.3, và hitechcloudcli mail check nói điều đó.
  • hitechcloudcli admin update --logo_url=http://... bị từ chối; hãy dùng https://.
Trang này có hữu ích không?