Ban đầu, việc triển khai các dịch vụ dạng container có vẻ đáng sợ, nhưng thực tế lại khá dễ dàng, đặc biệt với sự hỗ trợ của các công cụ dành cho home lab hiện nay. Chắc chắn, việc chạy các lệnh Docker/Podman qua terminal là cách lý tưởng để xây dựng thư viện container của bạn. Tuy nhiên, chúng có thể trở nên khó khăn nếu bạn chưa quen với các tiện ích dòng lệnh, chứ chưa nói đến các bản phân phối máy chủ. Các phiên bản Docker và Podman trên máy tính để bàn có thể giúp người mới bắt đầu khá nhiều, nhưng các nền tảng container hóa còn đơn giản hóa hơn nữa nghệ thuật tự lưu trữ bằng cách cung cấp giao diện người dùng (UI) gọn gàng để kéo các template và triển khai chúng trong các container – tất cả chỉ bằng một nút bấm.
Tôi đã sử dụng CasaOS trong một thời gian dài, nhưng gần đây tôi bắt đầu tìm hiểu các nền tảng khác. Cuộc tìm kiếm này đã dẫn 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, mặc dù nó vẫn còn khá ít người biết đến.
Cosmos Server: Nền Tảng Quản Lý Container Bị Đánh Giá Thấp
Giao diện người dùng trực quan và kho ứng dụng đa dạng
Một giao diện dễ tiếp cận là yếu tố then chốt đối với một nền tảng lưu trữ container, và Cosmos Server được trang bị rất tốt ở khía cạnh này. Phần Home cung cấp một cái nhìn tổng quan gọn gàng về tất cả các container, cùng với tài nguyên CPU, mạng và bộ nhớ mà máy chủ Cosmos đang sử dụng. 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 không phải là tất cả những gì Cosmos có. Kho ứng dụng (hay còn gọi là Market) của nó được trang bị hàng tấn template container tiện lợi, 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 được sử dụng hơn trong danh mục của tôi. Mặc dù Cosmos Market bao gồm vô số công cụ tuyệt vời, nhưng chắc chắn nó đang thiếu Pi-hole, Snapdrop và một vài dịch vụ nổi bật khác.
Thêm các nguồn ứng dụng mới vào Cosmos Server để mở rộng kho template container.
May mắn thay, Cosmos Server có thể kéo các template container từ các kho ứng dụng khác, bao gồm cả kho được CasaOS sử dụng, bằng cách thêm các liên kết tương ứng vào phần Sources. Ngoài kho của CasaOS, tôi cũng đã thêm các kho ứng dụng TinyActive và Unofficial, nhờ đó tôi có thể truy cập một bộ sưu tập dịch vụ thậm chí còn lớn hơn từ máy chủ Cosmos của mình.
Quản lý mạng và lưu trữ dễ dàng
Giao diện quản lý Volumes (lưu trữ) trong Cosmos Server, hiển thị các tùy chọn quản lý ổ đĩa.
Việc ánh xạ cổng (port mapping) và gắn kết volume lưu trữ (mounting storage volumes) là những khía cạnh tẻ nhạt hơn trong quản lý container, dù vậy Cosmos Server đã loại bỏ một số phức tạp khỏi các tác vụ này. Ví dụ, thẻ Storage có thể hiển thị các thông số S.M.A.R.T. của các ổ đĩa được gắn vào máy chủ Cosmos trong phần Disks, trong khi menu Mounts cho phép bạn thêm các volume 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 volume hiện có. Thậm chí, bạn có thể hợp nhất các volume hoặc thiết lập lưu trữ Parity trực tiếp trên nền tảng lưu trữ container này.
Về mặt mạng, thẻ URL cho phép bạn thiết lập proxy cho các dịch vụ tự lưu trữ 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 home lab của họ. Quản lý chứng chỉ cũng đơn giản như vậy, 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ư theo dõi chúng bằng các tiện ích giám sát tích hợp.
Tích hợp Cron job và OpenID tiện lợi
Thêm tác vụ Cron job tự động hóa trong Cosmos Server, giúp quản lý dịch vụ hiệu quả.
Như thể vô số tùy chọn quản lý container vẫn chưa đủ, Cosmos Server 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 còn có hỗ trợ đăng nhập dựa trên OpenID, điều này khá 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 home lab của mình.
Một số tính năng trả phí gây tranh cãi
Các tính năng trả phí của Cosmos Server bao gồm VPN và sao lưu dữ liệu.
Trước khi tiếp tục, tôi muốn nói rằng tôi rất tôn trọng các nhà phát triển đứng sau các dự án self-hosting này, và không có gì sai nếu họ thêm một số dịch vụ bổ sung cho người dùng trả phí. Tuy nhiên, tôi không thích cách Cosmos triển khai các dịch vụ này – cả trong tài liệu của nó và bên trong giao diện web.
Nếu bạn truy cập trang GitHub của dự án, bạn sẽ 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 thấy chúng bên 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 trả phí, điều này có thể khá khó chịu nếu bạn là người dùng FOSS (Phần mềm Tự do Nguồn mở) như tôi và muốn chuyển sang Cosmos Server chính xác vì những tiện ích này.
Hướng Dẫn Triển Khai Cosmos Server Đơn Giản
Lựa chọn phương pháp cài đặt: Docker hoặc LXC
Triển khai Cosmos Server trên Debian bằng lệnh Docker, một trong các phương pháp cài đặt.
Giống như các đối thủ quản lý container khác, có một vài cách để bạn có thể triển khai Cosmos Server. Cách đầu tiên, và có lẽ là cách dễ dàng hơn, 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 hiện lệnh sau trong terminal, và quan sát nền tảng tự khởi động:
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 của mình, 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ể xóa thuộc tính --privileged
để giảm quyền bảo mật của nền tảng và ngăn chặn 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 phiên bản Cosmos của mình dưới dạng LXC trên máy chủ Proxmox. Bằng cách đó, tôi có thể dễ dàng phân bổ bao 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 dễ dàng. 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 của bạn và thực hiện lệnh này:
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/cosmos.sh)"
Theo mặc định, tập lệnh 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, con số này là quá ít đối với một nền tảng lưu trữ container. Vì vậy, tôi khuyên bạn nên chọn tùy chọn Nâng cao (Advanced options) và tự phân bổ 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 của mình để có quyền truy cập vào nền tảng và bắt đầu xây dựng thư viện container của mình.
Bạn nghĩ sao về Cosmos Server? Nền tảng tự lưu trữ container yêu thích của bạn là gì? Hãy chia sẻ ý kiến trong phần bình luận bên dưới!