SSD Nodes Learn Hosting plans →
Hướng dẫn Matt ConnorBởi Matt Connor · Cập nhật ngày 2026-08-13

Cloudron, CasaOS hay Coolify: chọn panel nào cho VPS?

So sánh Cloudron, CasaOS và Coolify trên Ubuntu 24.04: lệnh cài, TLS, backup, chi phí, RAM và vendor lock-in để chọn panel đúng cho VPS.

Bạn đang xây dựng gì

Bạn không chỉ cài một công cụ mà còn chọn một công cụ phù hợp. Ba panel này hứa biến một VPS trống thành máy chủ ứng dụng point-and-click: Cloudron, CasaOSCoolify. Hướng dẫn này cài từng panel trên cùng một máy Ubuntu 24.04 mới, cài một ứng dụng đầu tiên, rồi kiểm tra kỹ những phần thường không xuất hiện trong ảnh chụp màn hình: TLS, backup, cập nhật, mức tiêu thụ bộ nhớ và mức độ khó khi chuyển sang giải pháp khác. Cuối cùng, bạn sẽ biết panel nào phù hợp, hoặc câu trả lời đúng là "không dùng panel nào, chỉ dùng Docker Compose".

Không panel nào trong số này là ma thuật. Bên dưới cả ba vẫn là Docker Engine mà bạn có thể tự quản lý bằng tay. Thứ panel cung cấp để đổi lấy chi phí, RAM hoặc vendor lock-in là 4 việc được tự động hóa: cài ứng dụng bằng một cú nhấp, cấp chứng chỉ TLS tự động, backup theo lịch và quản lý người dùng. Nếu 4 việc này đáng để bạn chấp nhận overhead thực tế, panel sẽ có ích. Nếu bạn chỉ chạy 1 hoặc 2 service và muốn biết chính xác những gì đang có trên máy, hãy đọc phần "Bỏ qua cả ba" trước để tránh thêm việc không cần thiết.

Các điều kiện tiên quyết chung và những điểm cần lưu ý

Cả ba đều giả định bạn dùng VPS KVM, không phải ảo hóa bằng container. Docker cần kernel thật, còn Cloudron từ chối OpenVZ và LXC. Kiểm tra bằng systemd-detect-virt: kvm hoặc qemu là phù hợp, openvz hoặc lxc thì không. Trên gói KVM, lệnh sẽ in kvm; trên máy bare metal, lệnh sẽ in none. Cả hai kết quả đều có nghĩa là bạn có thể tiếp tục.

Ngoài các điều kiện đó, yêu cầu tài nguyên của từng sản phẩm khác nhau. Đây là yếu tố đầu tiên định hướng lựa chọn.

  • RAM. CasaOS chạy tốt với 1GB; sản phẩm này phát triển trên phần cứng Raspberry Pi và vẫn nhẹ. Coolify yêu cầu tối thiểu 2GB và 2 CPU core, trong đó riêng Coolify chiếm khoảng 600 MB. Cloudron cần tối thiểu 2GB và thực sự chạy tốt hơn với 4GB vì nó chạy mail server và database ngay cả trước khi bạn cài một app.
  • Domain và DNS do bạn kiểm soát. Cloudron và Coolify đều cần domain thật với DNS hoạt động. Tốt nhất Cloudron nên có quyền truy cập API của DNS provider để tự tạo record và wildcard certificate. CasaOS vẫn chạy được với IP bare, nhưng khi đó bạn không có TLS.
  • Port. Cả ba đều cần mở 80 và 443 cho HTTP và HTTPS. Ngoài ra, Coolify cung cấp dashboard trên 8000, dùng 6001 cho realtime channel và 6002 cho terminal trong trình duyệt. Giữ port 22 mở cho SSH trên cả ba sản phẩm.

Trỏ DNS đến máy chủ trước khi bắt đầu. Một panel không phân giải được hostname của chính nó sẽ không thể request certificate, và bạn sẽ mất giờ đầu tiên để debug vấn đề đó thay vì debug phần mềm. Trỏ A record đến IP của server. Với Coolify, thêm wildcard record (*.apps.example.com) để mỗi app được deploy có một subdomain riêng.

Cloudron: appliance được hoàn thiện và có chính sách cấu hình riêng

Đây là gì. Cloudron là một nền tảng thương mại biến toàn bộ máy chủ thành một appliance được quản lý. Nền tảng này chạy reverse proxy, database và mail stack riêng, cùng với App Store được tuyển chọn gồm các app đã đóng gói như Nextcloud, WordPress, Gitea, Mattermost và nhiều app khác. Cloudron dành cho người muốn app của mình được quản lý, với cập nhật tự động, certificate tự động và backup tự động, đồng thời chấp nhận trả phí cho các tính năng đó.

Cài đặt. Cloudron yêu cầu một máy chủ sạch và chiếm quyền quản lý toàn bộ máy chủ. Chạy lệnh này trên server Ubuntu 24.04 (Noble) mới cài, không có gì khác:

wget https://cloudron.io/cloudron-setup
chmod +x cloudron-setup
sudo ./cloudron-setup

Script cài Docker, nginx, database và mail stack, sau đó reboot. Khi máy chủ hoạt động trở lại, mở https://<your-ip>, chấp nhận certificate self-signed tạm thời và hoàn tất thiết lập trong browser: trỏ Cloudron đến domain của bạn, chọn DNS provider, rồi Cloudron tự tạo dashboard tại my.example.com.

Thêm app đầu tiên. Trong dashboard, mở App Store, chọn Nextcloud chẳng hạn, chọn subdomain files.example.com rồi bấm Install. Cloudron tạo DNS record, yêu cầu certificate Let's Encrypt, provision database, kết nối single sign-on và lên lịch backup mà bạn không phải sửa bất kỳ config file nào. Đây là giá trị cốt lõi của Cloudron, và nó thực hiện đúng như vậy.

TLS và backup. Cloudron mạnh nhất ở phần này trong 3 nền tảng. Mỗi app subdomain được cấp certificate Let's Encrypt tự động và được tự động gia hạn. Backup được tích hợp và lên lịch sẵn, có thể lưu vào thư mục local, S3 hoặc storage remote khác, hỗ trợ restore theo từng app và thậm chí clone app sang subdomain mới bằng một click.

Chi phí và licensing, hãy đọc trước khi quyết định. Cloudron là sản phẩm trả phí với free tier giới hạn: free plan cho phép 2 app. Khi cài app thứ 3, bạn sẽ gặp paywall; subscription trả phí (Pro hoặc Max, tính phí theo tháng hoặc theo năm, cả hai đều không giới hạn số app) sẽ mở khóa thêm. Đây là thông tin quan trọng nhất về Cloudron. Cloudron được hoàn thiện vì đây là một business, còn free tier gần với bản dùng thử mở rộng hơn là một nền tảng cho stack phát triển lâu dài.

Cách lỗi xảy ra, quy tắc máy chủ sạch. Nếu thử cài Cloudron trên server đang chạy dịch vụ khác, setup sẽ dừng trước khi thay đổi bất kỳ thứ gì:

Error: Some packages like nginx/docker/nodejs are already installed. Cloudron requires
specific versions of these packages and will install them as part of it's installation.
Please start with a fresh Ubuntu install and run this script again.

Nguyên nhân không phải chỉ vì Cloudron quá khắt khe. Cloudron cố định các version cụ thể của nginx, Docker và Node, đồng thời tích hợp sâu với chúng nên không thể chạy cùng các bản do bạn tự cài. Cách xử lý là dùng image Ubuntu 24.04 mới và không cài gì khác: không web server, không Docker, kể cả firewall do bạn tự cấu hình. Nếu boot nhầm image, setup cũng từ chối mọi hệ điều hành không phải Ubuntu LTS được hỗ trợ (22.04 hoặc 24.04) trên x86-64; ARM, LXC và OpenVZ hoàn toàn không được hỗ trợ.

Cách lỗi thứ hai, wildcard certificate cần DNS API. Nếu chọn tùy chọn DNS "Manual" trong quá trình setup thay vì cung cấp API token cho Cloudron, Cloudron không thể tự tạo record hoặc wildcard certificate. Khi đó, mỗi app mới yêu cầu bạn tự thêm DNS record trước khi có thể cấp certificate, và dashboard sẽ chờ record đó. Cấp cho Cloudron quyền truy cập API vào DNS provider được hỗ trợ như Cloudflare, Route 53, DigitalOcean và các provider khác sẽ biến toàn bộ quy trình thành một click.

CasaOS: dashboard miễn phí cho home-lab

CasaOS là gì. CasaOS của IceWhale là dashboard miễn phí và mã nguồn mở, chạy trên Docker và cung cấp màn hình chính, app store cùng file manager. Sản phẩm phát triển từ cộng đồng home-server, nên được thiết kế theo hướng home-lab: cài đặt nhanh, giao diện dễ dùng và ít bước cấu hình. CasaOS phù hợp với người thích vọc máy chủ và muốn có giao diện đẹp hơn cho Docker mà không phải trả phí.

Cài đặt. Chạy một dòng lệnh và không cần máy chủ mới cài:

curl -fsSL https://get.casaos.io | sudo bash

Trình cài đặt thêm một nhóm systemd service (casaos, casaos-gateway, casaos-app-management và các service liên quan). Xác nhận gateway đã khởi động trước khi mở trình duyệt:

systemctl status casaos-gateway

Khi đang chạy, dashboard nằm tại http://<your-ip> (HTTP thuần, cổng 80). Tạo một account local là có thể sử dụng.

Thêm app đầu tiên. Mở App Store, chọn app rồi bấm Install. CasaOS tạo một Docker Compose project ở phía sau và expose app qua một cổng trên host, chẳng hạn http://<your-ip>:8080. App Store có các app phổ biến cho home-server, nên việc cài Jellyfin media server trên VPS hoặc thư viện ảnh Immich tự host chỉ mất vài lần bấm. Nếu chưa chọn được photo server, nên đọc trước mức RAM tối thiểu và app điện thoại phân biệt PhotoPrism với Immich, vì trên máy CasaOS có 1GB RAM, lựa chọn này quyết định app có chạy được hay không. Bạn cũng có thể import bất kỳ docker-compose.yaml nào, đây mới là điểm mạnh thực sự: các app là container thông thường, không phải định dạng độc quyền.

TLS và backup là điểm yếu. Đây là chỗ giới hạn của việc “miễn phí” lộ rõ. CasaOS mặc định phục vụ mọi thứ qua HTTP thuần, kể cả dashboard của chính nó. CasaOS không có Let's Encrypt tích hợp và cũng không có chức năng backup theo lịch tích hợp. Dữ liệu nằm trong Docker volume tại /DATA, còn việc backup là trách nhiệm của bạn (một restic hoặc tar chạy bằng cron).

Kiểu lỗi: không có TLS và không có cảnh báo rõ ràng. Không có lỗi nào xuất hiện. Bạn cài app, mở http://<your-ip>:8080 và app hoạt động qua kết nối không mã hóa, khiến trình duyệt hiển thị “Not Secure.” Password và session cookie được truyền trên mạng dưới dạng cleartext. Nghiêm trọng hơn, CasaOS từng có các lỗ hổng remote code execution thực tế trong dashboard (CVE-2023-37265 và CVE-2023-37266, trong đó authentication bypass có thể kết hợp để chiếm toàn bộ host), nên expose trực tiếp cổng HTTP đó ra Internet là một rủi ro thực sự, không phải vấn đề về sở thích giao diện. Cách xử lý là không expose CasaOS trực tiếp. Đặt một reverse proxy phía trước để thực hiện TLS termination, chẳng hạn nginx với chứng chỉ Let's Encrypt từ Certbot, Caddy hoặc Cloudflare Tunnel, rồi forward đến CasaOS chỉ qua mạng nội bộ. Lưu ý rằng CasaOS đã bind cổng 80, nên proxy và CasaOS sẽ tranh chấp cổng này nếu bạn không chuyển CasaOS sang cổng khác trước.

Chi phí. Hoàn toàn miễn phí và không giới hạn số app. Đổi lại, bạn phải tự quản lý TLS, backup và hardening.

Coolify: PaaS tự host

Nó là gì. Coolify là một nền tảng-as-a-service mã nguồn mở, tự host, tương tự Heroku hoặc Vercel nhưng chạy trên máy chủ của bạn. Đơn vị triển khai chính của nó không phải là “cài ứng dụng đã đóng gói này”, mà là “deploy Git repository này”: kết nối repository, Coolify sẽ build repository đó bằng Nixpacks hoặc Dockerfile của bạn rồi triển khai, đồng thời redeploy sau mỗi lần push. Coolify cũng có các database và service cài bằng một lần nhấp. Nền tảng này hướng đến developer tự deploy code của mình và muốn có cơ chế push-to-deploy mà không phải thuê PaaS.

Cài đặt.

curl -fsSL https://cdn.coollabs.io/coolify/install.sh | sudo bash

Script này cài Docker và khởi động stack container riêng của Coolify. Kiểm tra các container đã healthy trước khi tiếp tục:

docker ps --format 'table {{.Names}}\t{{.Status}}'

Bạn phải thấy coolify, coolify-db, coolify-redis, coolify-realtimecoolify-proxy đều báo Up. Dashboard nằm tại http://<your-ip>:8000. Tạo tài khoản admin ngay lập tức, vì trang đăng ký vẫn mở cho đến khi tài khoản đầu tiên được tạo, và người truy cập trang đó trước sẽ kiểm soát server. Sau đó đặt domain cho instance và trỏ một wildcard DNS record (*.example.com hoặc *.apps.example.com) đến máy chủ để Coolify có thể cấp cho mỗi app được deploy một subdomain riêng.

Thêm app đầu tiên. Kết nối Git source (GitHub, GitLab hoặc URL của một repository thông thường), chọn branch, đặt domain rồi deploy. Traefik proxy tích hợp của Coolify định tuyến subdomain và yêu cầu cấp certificate. Với phần mềm có sẵn, catalogue Services cho phép deploy chỉ bằng vài lần nhấp: stack tự động hóa workflow n8n mà bạn có thể phải tự nối thủ công là một mục, và Uptime Kuma để monitor status page cũng vậy.

TLS và backup. Coolify tự động cấp certificate Let's Encrypt cho từng app thông qua Traefik đi kèm, nên mỗi subdomain được deploy đều có certificate. Backup ưu tiên database: bạn có thể lên lịch dump Postgres và MySQL vào storage tương thích S3. Backup toàn bộ instance (bao gồm chính cấu hình Coolify, nằm dưới /data/coolify) cần thao tác thủ công hơn, vì vậy hãy tự export và lưu cấu hình đó.

Chi phí và license. Bản self-hosted hoàn toàn mã nguồn mở và miễn phí, không giới hạn số lượng app. Có Coolify Cloud tùy chọn (có phí), trong đó control plane do dịch vụ host, còn app vẫn chạy trên server của bạn. Cách này tiện nhưng không bắt buộc.

Lỗi thường gặp: app deploy thành công nhưng domain không tải được. Dashboard trên http://<ip>:8000 vẫn hoạt động bình thường, build báo thành công, nhưng URL riêng của app trả về lỗi kết nối hoặc lỗi 404 page not found của Traefik. Điều này cho thấy vấn đề nằm ở proxy hoặc DNS, không phải ở app. Có 2 nguyên nhân phổ biến. Thứ nhất, cổng 80 hoặc 443 đã bị process khác chiếm khi proxy khởi động, nên container của proxy đã dừng với lỗi Docker:

Error response from daemon: driver failed programming external connectivity on endpoint coolify-proxy: Bind for 0.0.0.0:443 failed: port is already allocated

Thứ hai, wildcard DNS record bị thiếu, nên Traefik không bao giờ nhận được request cho hostname đó. Nếu toàn bộ server card trong Coolify hiển thị “Server is not reachable”, thì đây là lỗi khác: Coolify hoàn toàn không thể kết nối đến Docker socket của server, thường do Docker daemon đã dừng hoặc SSH key bị hỏng. Hãy xem nguyên nhân thực tế trong log trước khi phỏng đoán:

docker logs coolify-proxy --tail 100

Khắc phục từ trang Proxy: nhấn Restart Proxy, hoặc đặt lại cấu hình proxy về mặc định rồi khởi động lại, sau đó chờ khoảng 2 phút để proxy ổn định. Chỉ cho phép IP của bạn truy cập cổng 8000 (hoặc tạm thời mở lại khi proxy gặp lỗi), thay vì để cổng này mở cho toàn Internet. Cổng này phục vụ dashboard qua HTTP không mã hóa, và tài liệu của Coolify cho biết có thể đóng các cổng 8000, 6001 và 6002 sau khi dashboard được phục vụ qua domain riêng.

Mức overhead tài nguyên trên cùng một VPS

Đo ở trạng thái idle trên cùng một máy 4GB, trước khi triển khai workload thực tế. Hãy dùng free -mdocker stats --no-stream để kiểm tra máy của bạn thay vì tin vào một con số duy nhất, vì tổng mức sử dụng thay đổi theo các app bạn chạy.

  • CasaOS nhẹ nhất. Panel là một nhóm nhỏ các service Go; overhead dự kiến khoảng 150 đến 300 MB, chưa tính các container bạn chạy.
  • Coolify tự chạy một số container hỗ trợ (app, một Postgres, một Redis, một service realtime và Traefik), nên mức sử dụng idle khoảng 600 MB đến 1 GB trước khi bạn triển khai bất kỳ thứ gì.
  • Cloudron có mức sử dụng idle cao nhất vì luôn chạy nginx, database, mail stack và monitoring riêng, dù bạn có dùng chúng hay không; hãy dự trù 1 đến 1.5 GB khi idle. Vì vậy, Cloudron yêu cầu tối thiểu 2GB và chạy thoải mái hơn trên máy 4GB.

Trên VPS nhỏ 2GB, CasaOS để lại nhiều tài nguyên nhất cho các app thực tế, còn Cloudron để lại ít nhất. Nếu gói của bạn có 2GB và bạn muốn chạy Cloudron cùng mail server, hãy dự định nâng cấp máy.

So sánh việc cập nhật, sao lưu và mức độ lock-in

Cập nhật. Cloudron cập nhật platform và mọi app theo lịch đã được kiểm thử: ít tốn công nhất và được hướng dẫn nhiều nhất. Coolify cập nhật chính nó từ dashboard bằng một nút. CasaOS cập nhật panel qua install script hoặc apt, nhưng các app bạn đã cài là phần bạn phải tự pull và restart.

Lock-in, vấn đề bắt đầu rõ ở năm thứ hai. CasaOS có mức lock-in thấp nhất: các app của nó là những dự án Compose thông thường, nên bạn có thể sao chép docker-compose.yaml và các volume bên dưới /DATA sang bất kỳ host nào khác rồi tiếp tục sử dụng. Coolify ở mức trung gian: các deploy của bạn dùng Dockerfile và repo của chính bạn, nhưng cấu hình của chúng nằm trong database của Coolify, nên khi chuyển host, bạn phải tạo lại các project ở phía bên kia. Cloudron có mức lock-in cao nhất: các app được đóng gói theo Cloudron. Dữ liệu của bạn có thể được chuyển sạch qua hệ thống backup tốt của nó, nhưng phần đóng gói thì không, nên bạn phải deploy lại trên platform đích. Dữ liệu có tính portable, còn phần hạ tầng kết nối thì không.

Nên chọn nền tảng nào

Tóm tắt trước, sau đó là lựa chọn thay thế. Chọn Cloudron nếu bạn muốn máy chủ ít phải quản trị thủ công nhất trong ba lựa chọn, sẽ chạy nhiều app được đóng gói sẵn và chấp nhận trả phí hằng năm cho TLS, backup và update được quản lý. Chọn CasaOS nếu đây là home lab phía sau mạng riêng hoặc reverse proxy của bạn, bạn muốn một giao diện thân thiện cho Docker và không chấp nhận trả bất kỳ khoản phí nào. Chọn Coolify nếu bạn triển khai code riêng từ Git và muốn push-to-deploy kèm TLS tự động, nhưng không muốn chịu chi phí như một PaaS được host. Nếu không lựa chọn nào trong ba lựa chọn này phù hợp với bạn, phần tiếp theo sẽ đưa ra câu trả lời thẳng thắn.

Bỏ qua cả ba nếu...

Hãy đánh giá đúng quy mô của bạn. Nếu bạn chỉ chạy một hoặc hai ứng dụng, hoặc muốn biết và kiểm soát chính xác những gì đang có trên máy, hãy bỏ qua các panel. Chi phí overhead và mức độ lock-in không đáng có đối với một stack nhỏ, ổn định. Cách DIY là đặt một reverse proxy trước các file Compose của bạn: Traefik với TLS tự động phía trước nhiều ứng dụng Docker Compose cung cấp HTTPS tương đương thao tác một lần mà không kéo theo overhead của panel, còn bạn backup bằng một job restic chạy qua cron mà bạn thực sự hiểu.

Một service tối thiểu có gắn nhãn Traefik để so sánh
services:
  whoami:
    image: traefik/whoami
    labels:
      - traefik.enable=true
      - traefik.http.routers.whoami.rule=Host(`whoami.example.com`)
      - traefik.http.routers.whoami.tls.certresolver=le
    networks: [web]
networks:
  web:
    external: true

Traefik đọc các label đó, định tuyến hostname và lấy certificate: đây cũng là việc panel thực hiện, nhưng chỉ với vài dòng mà bạn có thể đọc.

Với một ứng dụng chính duy nhất, lý do còn rõ ràng hơn: cài Nextcloud trên Docker với TLS và routine backup riêng chỉ cần một file Compose và một certificate. Dựng cả một appliance chỉ để chạy ứng dụng đó sẽ chỉ tốn thêm chi phí mà không đem lại lợi ích. Nếu bạn vẫn đang quyết định chạy gì trước khi quyết định chạy bằng cách nào, hướng dẫn về những gì đáng tự host trong 2026 sẽ là điểm bắt đầu phù hợp hơn.

FAQ

Tôi có thực sự cần panel self-hosting không?

Chỉ khi bạn cần bốn việc mà panel tự động hóa cho nhiều app: cài đặt bằng một click, TLS tự động, backup theo lịch và quản lý người dùng. Với một hoặc hai service, Docker Compose thuần chạy sau Traefik cũng xử lý TLS tương tự nhưng ít overhead hơn nhiều và không bị lock-in. Panel phát huy hiệu quả khi bạn chạy nhiều app và thời gian của bạn đáng giá hơn lượng RAM mà panel sử dụng.

Panel nào phù hợp nhất cho người mới?

Với home lab không expose ra Internet nguy hiểm, CasaOS là lựa chọn dễ bắt đầu nhất: chạy một command là có UI thân thiện và không phải trả phí. Nhưng trước khi expose bất kỳ thứ gì, bạn phải đặt một reverse proxy có TLS termination ở phía trước, vì CasaOS dùng plain HTTP. Nếu muốn TLS và backup được quản lý sẵn và chấp nhận trả phí, Cloudron là lựa chọn hỗ trợ người dùng nhiều nhất trong giới hạn miễn phí 2 app.

Cloudron có miễn phí không?

Một phần. Gói miễn phí cho phép 2 app, phù hợp để dùng thử hoặc chạy một hệ thống rất nhỏ. Sau đó, Cloudron là subscription trả phí, tính theo tháng hoặc năm, với số app không giới hạn ở các gói trả phí. Đây là sản phẩm thương mại có gói miễn phí bị giới hạn, không phải free software, nên hãy đưa chi phí vào ngân sách nếu stack của bạn sẽ mở rộng.

Tôi có thể chạy các panel này cùng với những app hiện có không?

Cloudron: không. Nó yêu cầu một máy Ubuntu sạch và sẽ abort nếu nginx, Docker hoặc Node đã được cài đặt, vì Cloudron quản lý toàn bộ máy. CasaOS và Coolify linh hoạt hơn vì chúng cài stack Docker riêng và về nguyên tắc có thể dùng chung một máy, nhưng cả hai đều cần cổng 80 và 443, nên sẽ xung đột với web server hoặc proxy bạn đang chạy. Trên máy đã host sẵn các dịch vụ khác, panel thường là công cụ không phù hợp; hãy dùng Traefik và Compose thay thế.

Sau này tôi chuyển khỏi panel bằng cách nào?

Hãy lập kế hoạch chuyển đổi trước khi cần. Với CasaOS, hãy copy docker-compose.yaml của app và các volume /DATA sang host mới rồi khởi động lại chúng. Với Coolify, hãy export cấu hình của từng project và trỏ project đến cùng các repo trên máy đích. Với Cloudron, hãy restore dữ liệu từ backup vào các app vừa cài trên platform mới, vì package của Cloudron không thể chuyển theo; chỉ dữ liệu được chuyển. Trong mọi trường hợp, hãy test việc restore trên một máy tạm trước khi gỡ máy cũ.