Image default
Máy Tính

Cosmos Server: Nền tảng quản lý container mạnh mẽ và thân thiện cho Homelab

Mặc dù ban đầu có vẻ phức tạp, việc triển khai các dịch vụ dạng container đã trở nên khá dễ dàng, đặc biệt với sự hỗ trợ của vô số công cụ dành cho homelab hiện nay. Chắc chắn, việc chạy các lệnh Docker/Podman thông qua terminal là cách lý tưởng để xây dựng thư viện container của bạn. Tuy nhiên, phương pháp này có thể quá khó khăn nếu bạn chưa quen với các tiện ích dòng lệnh (CLI), chứ chưa nói đến các bản phân phối máy chủ chuyên dụng. Các phiên bản desktop của Docker và Podman đã giúp ích rất nhiều cho người mới, nhưng các nền tảng container hóa còn đơn giản hóa nghệ thuật self-hosting (tự lưu trữ) bằng cách cung cấp giao diện người dùng (UI) trực quan. Với các nền tảng này, bạn có thể dễ dàng lấy các mẫu ứng dụng và triển khai chúng vào container chỉ với một nút bấm.

Là một người dùng CasaOS trong thời gian dài, gần đây tôi bắt đầu tìm kiếm các nền tảng khác. Cuộc tìm kiếm này đã đưa tôi đến với Cosmos Server, và sau vài tuần sử dụng, tôi thực sự ngạc nhiên về mức độ hữu ích của ứng dụng này, dù nó vẫn còn khá “ẩn mình” trong cộng đồng.

Cosmos Server: Nền tảng quản lý container ấn tượng nhưng bị đánh giá thấp

Giao diện trực quan và kho ứng dụng đa dạng từ nhiều nguồn

Một giao diện dễ sử dụng là yếu tố then chốt cho một nền tảng quản lý container, và Cosmos đã thể hiện rất tốt ở khía cạnh này. Phần Home (Trang chủ) cung cấp cái nhìn tổng quan rõ ràng về tất cả các container đang chạy, cùng với mức độ sử dụng CPU, mạng và bộ nhớ của máy chủ Cosmos. Cá nhân tôi đánh giá giao diện của Cosmos cao hơn Runtipi về mặt thẩm mỹ.

Tuy nhiên, giao diện đẹp mắt không phải là tất cả những gì Cosmos có. Kho ứng dụng (hay Market như cách gọi ở đây) được trang bị hàng tấn mẫu container hữu ích, từ các ứng dụng được cộng đồng yêu thích như Nextcloud, Immich, Jellyfin và Vaultwarden, cho đến Paperless-ngx, Kavita và nhiều ứng dụng ít phổ biến hơn trong kho của tôi. Mặc dù Cosmos Market bao gồm rất nhiều công cụ thú vị, nhưng rõ ràng nó vẫn còn thiếu Pi-hole, Snapdrop và một vài dịch vụ nổi bật khác.

Giao diện Cosmos Server cho phép thêm các kho ứng dụng (Marketplace) khác như CasaOS, mở rộng thư viện containerGiao diện Cosmos Server cho phép thêm các kho ứng dụng (Marketplace) khác như CasaOS, mở rộng thư viện container

May mắn thay, Cosmos có thể kéo các mẫu container từ các kho ứng dụng khác, bao gồm cả kho được sử dụng bởi CasaOS, bằng cách thêm các liên kết tương ứng vào mục Sources (Nguồn). Ngoài kho của CasaOS, tôi cũng đã thêm các kho TinyActive và Unofficial, nhờ đó tôi có thể truy cập vào một bộ sưu tập dịch vụ lớn hơn nữa từ máy chủ Cosmos của mình.

Quản lý mạng và lưu trữ dễ dàng

Việc ánh xạ cổng (mapping ports) và gắn kết ổ đĩa (mounting storage volumes) thường là những khía cạnh tẻ nhạt hơn trong quản lý container. Tuy nhiên, Cosmos đã loại bỏ bớt phần nào sự phức tạp của các tác vụ này. Ví dụ, tab Storage (Lưu trữ) có thể hiển thị các chỉ số S.M.A.R.T. của các ổ đĩa được gắn vào máy chủ Cosmos trong phần Disks (Đĩa), trong khi menu Mounts (Gắn kết) cho phép bạn thêm các ổ đĩa lưu trữ mới vào container của mình cũng như sửa đổi cấu hình cho các ổ đĩa hiện có. Thậm chí, bạn có thể hợp nhất các ổ đĩa (merge volumes) hoặc thiết lập bộ lưu trữ Parity trực tiếp trên nền tảng quản lý container này.

Về mặt mạng, tab URL cho phép bạn thiết lập proxy cho các dịch vụ self-hosted của mình, điều này cực kỳ hữu ích cho những người thích sử dụng tên miền tùy chỉnh cho các tiện ích homelab của họ. Quản lý chứng chỉ SSL cũng đơn giản không kém, và bạn thậm chí có thể cấu hình các quy tắc bảo mật mạnh mẽ cho container của mình cũng như giám sát chúng bằng các tiện ích giám sát tích hợp sẵn.

Tab Storage trên Cosmos Server hiển thị thông tin S.M.A.R.T của ổ đĩa và quản lý các ổ đĩa vật lýTab Storage trên Cosmos Server hiển thị thông tin S.M.A.R.T của ổ đĩa và quản lý các ổ đĩa vật lý

Tích hợp Cron jobs và OpenID nâng cao khả năng tự động hóa và bảo mật

Như thể vô số tùy chọn quản lý container vẫn chưa đủ, Cosmos còn bao gồm một số tiện ích tự động hóa thông qua tích hợp Cron job. Ngoài ra, nền tảng này còn hỗ trợ đăng nhập dựa trên OpenID, điều này rất hữu ích nếu bạn sử dụng dịch vụ xác thực như Authentik để kích hoạt quyền truy cập dễ dàng và an toàn vào homelab của mình.

Cài đặt Cron job trong Cosmos Server để tự động hóa các tác vụ quản lý container và dịch vụ homelabCài đặt Cron job trong Cosmos Server để tự động hóa các tác vụ quản lý container và dịch vụ homelab

Hạn chế: Một số tính năng quan trọng bị giới hạn bởi Paywall

Trước khi đi sâu vào phần này, tôi muốn bày tỏ sự tôn trọng đối với các nhà phát triển đứng sau các dự án self-hosting, và việc họ thêm một số dịch vụ bổ sung cho người dùng trả phí hoàn toàn không có gì sai. Tuy nhiên, tôi không mấy hài lòng với cách Cosmos triển khai các dịch vụ này – cả trong tài liệu và trong giao diện web.

Nếu bạn truy cập trang GitHub của dự án, bạn sẽ nhận thấy các tùy chọn VPN và Backup được đề cập trong tài liệu, và những người tinh mắt có thể đã nhận ra chúng trong giao diện web. Thật không may, cả hai dịch vụ này đều bị khóa sau một bức tường phí (paywall), điều này có thể khá khó chịu nếu bạn là người dùng mã nguồn mở (FOSS) như tôi và muốn chuyển sang Cosmos chính vì những tiện ích này.

Các tính năng trả phí (Premium) trong Cosmos Server, bao gồm VPN và VPN, được giới hạn sau paywallCác tính năng trả phí (Premium) trong Cosmos Server, bao gồm VPN và VPN, được giới hạn sau paywall

Cài đặt Cosmos Server đơn giản cho mọi người

Triển khai qua Docker hoặc LXC: Lựa chọn linh hoạt

Giống như các đối thủ cạnh tranh trong lĩnh vực quản lý container, có một vài cách bạn có thể triển khai Cosmos. Cách đầu tiên, và có lẽ là dễ dàng nhất, yêu cầu bạn phải cài đặt Docker trên máy chủ của mình. Sau đó, tất cả những gì bạn phải làm là thực thi lệnh sau trong terminal, và nền tảng sẽ tự động khởi chạy:

sudo docker run -d --network host --privileged --name cosmos-server -h cosmos-server --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /var/run/dbus/system_bus_socket:/var/run/dbus/system_bus_socket -v /:/mnt/host -v /var/lib/cosmos:/config azukaar/cosmos-server:latest

Nếu bạn đặc biệt quan tâm đến bảo mật của máy chủ Cosmos, bạn có thể thiết lập một container rootless để tránh sử dụng lệnh sudo. Tương tự, bạn có thể loại bỏ thuộc tính --privileged để giảm quyền bảo mật của nền tảng và ngăn chặn việc leo thang đặc quyền, mặc dù điều đó có thể gây ra một số vấn đề về lâu dài.

Riêng tôi, tôi thích chạy Cosmos dưới dạng LXC trên máy chủ Proxmox của mình. Bằng cách đó, tôi có thể dễ dàng cấp phát nhiều lõi CPU, bộ nhớ và tài nguyên lưu trữ cho nó. Hơn nữa, gói Proxmox VE Helper-Scripts dành cho Cosmos giúp quá trình cài đặt trở nên cực kỳ đơn giản. Nếu bạn chưa từng sử dụng kho lưu trữ này, chỉ cần truy cập tab Shell của nút Proxmox và thực thi lệnh sau:

bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/cosmos.sh)"

Theo mặc định, script này gán 2 lõi CPU (hoặc đúng hơn là v-cores), 2GB RAM và 8GB dung lượng đĩa cho LXC Cosmos của bạn, điều này là quá ít đối với một nền tảng quản lý container. Vì vậy, tôi khuyên bạn nên chọn tùy chọn Advanced (Nâng cao) và tự gán thêm tài nguyên hệ thống cho Cosmos Cloud của mình.

Sau khi bạn đã triển khai máy chủ Cosmos, bạn sẽ phải chọn một cơ sở dữ liệu và tạo tài khoản người dùng để truy cập nền tảng và bắt đầu xây dựng thư viện container của mình.

Triển khai Cosmos Server dưới dạng container Docker trên hệ điều hành Debian với các lệnh cài đặt cơ bảnTriển khai Cosmos Server dưới dạng container Docker trên hệ điều hành Debian với các lệnh cài đặt cơ bản

Chọn nền tảng container phù hợp cho nhu cầu Self-hosting của bạn

Nếu bạn không phải là fan của Cosmos, có một số công cụ tuyệt vời khác cho phép bạn tự host container từ giao diện web dựa trên menu. Tôi đã sử dụng CasaOS trong một thời gian dài, và nó khá dễ triển khai trên bất kỳ bản phân phối Linux nào. Đối với các nhà phát triển, Yunohost là một giải pháp thay thế tiện lợi, mặc dù bạn sẽ phải dành toàn bộ máy ảo (VM) hoặc một hệ thống phần cứng trần (bare-bones system) cho nó. Đối với người dùng Raspberry Pi, Runtipi và UmbrelOS là những lựa chọn đáng cân nhắc, nhưng UmbrelOS có yêu cầu cài đặt phần cứng trần giống như Yunohost và đi kèm với quá nhiều ứng dụng liên quan đến tiền điện tử theo ý tôi (mặc dù giao diện người dùng của nó rất đẹp mắt).

Cosmos Server mang đến một giải pháp quản lý container mạnh mẽ và thân thiện, lý tưởng cho những người đam mê homelab muốn đơn giản hóa việc self-hosting. Mặc dù có một vài hạn chế về tính năng trả phí, những ưu điểm về giao diện trực quan, khả năng mở rộng kho ứng dụng và quản lý tài nguyên linh hoạt đã biến nó thành một đối thủ đáng gờm.

Bạn đã sẵn sàng khám phá Cosmos Server chưa? Hãy cài đặt và trải nghiệm ngay hôm nay để đưa homelab của bạn lên một tầm cao mới. Đừng ngần ngại chia sẻ trải nghiệm và suy nghĩ của bạn về nền tảng này trong phần bình luận bên dưới!

Related posts

5 Ứng Dụng Windows Tuyệt Vời Không Có Trên Microsoft Store Bạn Nên Thử Ngay

Administrator

Papra: Đối Thủ Mới Tiềm Năng Trong Lĩnh Vực Quản Lý Tài Liệu Tự Host

Administrator

Git Không Chỉ Dành Cho Lập Trình Viên: Khám Phá Lợi Ích Khi Tự Host Git Server

Administrator