Bộ app self-hosted thay thế Google Drive, Photos, Calendar cho homelab cá nhân
Có một thời điểm khá thú vị trong hành trình chơi homelab: bạn bắt đầu bằng việc dựng một con NAS cũ, cài vài container cho vui, rồi bỗng nhận ra gần như toàn bộ dữ liệu cá nhân quan trọng nhất của mình đang nằm trên dịch vụ của người khác. Tài liệu ở Google Drive, ảnh gia đình trong Google Photos, lịch làm việc trên Google Calendar, danh bạ trong Google Contacts. Tất cả rất tiện, nhưng đổi lại là sự phụ thuộc, giới hạn dung lượng, rủi ro khóa tài khoản, và cảm giác không thật sự “sở hữu” dữ liệu.
Self-hosted không nhất thiết là từ bỏ hoàn toàn cloud thương mại. Cách thực tế hơn là xây dựng một bộ app riêng trong homelab để lưu trữ, đồng bộ, xem ảnh, quản lý lịch và danh bạ — còn Google, iCloud hay OneDrive chỉ đóng vai trò phụ trợ hoặc backup. Bài viết này gợi ý một stack tương đối trưởng thành, dễ vận hành và phù hợp cho cá nhân hoặc gia đình nhỏ.
Mục tiêu của một bộ app thay thế Google
Trước khi cài container, nên xác định rõ nhu cầu. Một bộ thay thế Google Drive, Photos và Calendar tốt cần đáp ứng vài tiêu chí:
– Đồng bộ file đa thiết bị: laptop, desktop, điện thoại.
– Xem và chia sẻ ảnh mượt: có timeline, album, nhận diện metadata, backup ảnh từ điện thoại.
– Lịch và danh bạ chuẩn mở: hỗ trợ CalDAV/CardDAV để dùng với app mặc định trên iOS, Android, macOS, Thunderbird.
– Dễ backup và restore: dữ liệu cá nhân không nên bị “nhốt” trong database khó cứu.
– Bảo mật hợp lý: HTTPS, 2FA, phân quyền, không mở bừa mọi thứ ra Internet.
– Không quá nặng: homelab cá nhân thường chạy trên mini PC, NAS, Raspberry Pi hoặc server cũ.
Không có một app duy nhất thay thế hoàn hảo toàn bộ Google. Cách tốt nhất thường là kết hợp nhiều app, mỗi app làm tốt một việc.
Thay Google Drive: Nextcloud hoặc Seafile
Nextcloud: lựa chọn đa năng nhất
Nếu muốn một trung tâm dữ liệu cá nhân giống Google Workspace thu nhỏ, Nextcloud là cái tên nổi bật nhất. Nó hỗ trợ đồng bộ file, chia sẻ link, user/group, WebDAV, versioning, trash bin, office online, lịch, danh bạ, ghi chú và hàng trăm app mở rộng.
Ưu điểm lớn của Nextcloud là hệ sinh thái. Bạn có thể cài client trên Windows, macOS, Linux, Android, iOS; đồng bộ thư mục giống Google Drive; chia sẻ file cho người ngoài bằng link có mật khẩu và ngày hết hạn. Với homelab gia đình, Nextcloud cũng giúp tạo tài khoản riêng cho từng thành viên.
Tuy nhiên, Nextcloud cần được cấu hình cẩn thận. Nếu cài mặc định rồi ném lên Internet, trải nghiệm có thể chậm và dễ lỗi. Nên dùng PostgreSQL hoặc MariaDB, Redis cho file locking, PHP-FPM được tinh chỉnh, và reverse proxy như Caddy, Traefik hoặc Nginx Proxy Manager. Với dữ liệu lớn, hãy đặt thư mục data trên ổ riêng, ví dụ ZFS dataset hoặc Btrfs volume.
Phù hợp nếu bạn muốn: một cổng trung tâm cho file, lịch, danh bạ, chia sẻ và tích hợp nhiều thứ.
Seafile: nhanh, gọn, mạnh về đồng bộ file
Nếu ưu tiên thuần túy là đồng bộ file nhanh và ổn định, Seafile rất đáng cân nhắc. Nó không cố làm mọi thứ như Nextcloud, nhưng phần sync thường nhanh hơn, đặc biệt với nhiều file nhỏ. Seafile dùng mô hình thư viện, hỗ trợ versioning, chia sẻ link, mã hóa phía client cho một số thư viện.
Điểm trừ là dữ liệu được lưu theo định dạng riêng, không “nhìn thấy file gốc” trực tiếp trong filesystem như Nextcloud. Việc backup vẫn làm được, nhưng cần hiểu cơ chế của Seafile và backup cả data lẫn database đúng cách.
Phù hợp nếu bạn muốn: thay Google Drive với hiệu năng sync tốt, ít tính năng thừa.
Thay Google Photos: Immich là ứng viên sáng giá
Trong vài năm gần đây, Immich nổi lên như một trong những app self-hosted thay Google Photos tốt nhất. Nó có ứng dụng mobile để tự động backup ảnh/video, giao diện timeline đẹp, tìm kiếm theo metadata, album, chia sẻ, bản đồ, nhận diện khuôn mặt và machine learning.
Điểm mạnh của Immich là trải nghiệm gần với Google Photos hơn hẳn nhiều lựa chọn cũ. Bạn chụp ảnh trên điện thoại, app tự upload về server, sau đó xem lại theo ngày tháng, địa điểm, album. Với gia đình, Immich hỗ trợ nhiều user và chia sẻ thư viện khá tiện.
Nhưng cần lưu ý: Immich phát triển rất nhanh, đôi khi có breaking changes giữa các phiên bản. Vì vậy, không nên xem Immich là nơi lưu duy nhất. Hãy coi nó là ứng dụng quản lý và xem ảnh, còn dữ liệu gốc cần được backup riêng. Khi cập nhật, nên đọc release notes và backup database trước.
Cấu hình tối thiểu nên có:
– PostgreSQL cho metadata.
– Redis cho queue/cache.
– Storage riêng cho ảnh gốc.
– Backup định kỳ database và thư mục upload.
– Nếu có thể, dùng CPU tương đối khỏe hoặc GPU/NPU để xử lý machine learning nhanh hơn.
Một lựa chọn khác là PhotoPrism, ổn định và mạnh về indexing ảnh, nhưng trải nghiệm mobile backup và giao diện kiểu Google Photos thường không “đã” bằng Immich. Nếu bạn thích sự ổn định hơn tính năng mới, PhotoPrism vẫn rất đáng thử.
Thay Google Calendar và Contacts: Baikal, Radicale hoặc Nextcloud
Lịch và danh bạ không cần app quá hào nhoáng. Điều quan trọng nhất là hỗ trợ chuẩn CalDAV và CardDAV. Nhờ hai chuẩn này, bạn có thể dùng app lịch/danh bạ mặc định trên nhiều hệ điều hành mà không cần cài thêm client lạ.
Nextcloud Calendar và Contacts
Nếu đã dùng Nextcloud cho file, cách đơn giản nhất là bật app Calendar và Contacts. Chúng hoạt động đủ tốt cho cá nhân, gia đình nhỏ, nhóm nhỏ. Bạn có thể tạo nhiều calendar, chia sẻ lịch giữa user, đồng bộ với iPhone, Android, Thunderbird, macOS Calendar.
Ưu điểm là gom mọi thứ vào một nơi. Nhược điểm là nếu Nextcloud gặp sự cố, cả file, lịch và danh bạ đều bị ảnh hưởng. Với homelab nhỏ, điều này vẫn chấp nhận được nếu backup tốt.
Baikal: nhẹ và đúng việc
Baikal là server CalDAV/CardDAV nhẹ, đơn giản, rất phù hợp nếu bạn chỉ cần lịch và danh bạ. Nó không cố làm portal lớn, không nhiều phụ thuộc, dễ backup hơn. Giao diện quản trị tối giản, còn trải nghiệm chính diễn ra trên client như Apple Calendar, DAVx5, Thunderbird hoặc ứng dụng lịch trên điện thoại.
Phù hợp nếu bạn muốn: dịch vụ lịch/danh bạ riêng, nhẹ, ít rủi ro do app phức tạp.
Radicale: tối giản cho người thích cấu hình
Radicale cũng là lựa chọn nhẹ, viết bằng Python, dễ chạy trong container. Nó phù hợp với người thích cấu hình bằng file, dùng reverse proxy và authentication riêng. Radicale không bóng bẩy, nhưng rất bền nếu nhu cầu đơn giản.
Gợi ý stack thực tế cho homelab cá nhân
Một bộ app cân bằng giữa tiện dụng và dễ vận hành có thể như sau:
– File: Nextcloud hoặc Seafile.
– Ảnh: Immich.
– Lịch & danh bạ: Nextcloud Calendar/Contacts nếu đã dùng Nextcloud; Baikal nếu muốn tách riêng.
– Reverse proxy: Caddy, Traefik hoặc Nginx Proxy Manager.
– HTTPS: Let’s Encrypt hoặc Cloudflare Tunnel nếu không muốn mở port trực tiếp.
– Database: PostgreSQL cho Immich, MariaDB/PostgreSQL cho Nextcloud.
– Backup: Restic, BorgBackup, Kopia hoặc snapshot ZFS/Btrfs.
– Giám sát: Uptime Kuma, healthchecks, cảnh báo Telegram/Email.
Với người mới, combo dễ bắt đầu là Nextcloud + Immich + Caddy + Restic. Nextcloud lo file/lịch/danh bạ, Immich lo ảnh, Caddy lo HTTPS, Restic lo backup. Sau này nếu thấy Nextcloud quá nặng cho file sync, có thể thay bằng Seafile.
Backup mới là phần quan trọng nhất
Self-hosted mà không backup thì còn rủi ro hơn dùng Google. Ổ cứng có thể chết, database có thể lỗi, update có thể hỏng, bạn có thể xóa nhầm thư mục. Quy tắc thực tế là 3-2-1:
– 3 bản dữ liệu: bản chính và ít nhất 2 bản sao.
– 2 loại thiết bị/lưu trữ khác nhau: ví dụ NAS và ổ USB rời.
– 1 bản offsite: để ngoài nhà, hoặc cloud storage như Backblaze B2, Hetzner Storage Box, S3-compatible.
Với Immich, cần backup cả database PostgreSQL và thư mục upload/library. Với Nextcloud, backup database, config, data directory và danh sách app. Với Seafile, backup đúng theo tài liệu vì dữ liệu không đơn giản là file rời.
Quan trọng hơn: hãy thử restore định kỳ. Một bản backup chưa từng restore chỉ là một niềm tin đẹp.
Bảo mật khi mở dịch vụ ra Internet
Không nên đưa mọi container trực tiếp ra mạng. Hãy đặt tất cả sau reverse proxy, bật HTTPS, dùng mật khẩu mạnh và 2FA nếu app hỗ trợ. Nếu chỉ một mình bạn dùng, giải pháp an toàn hơn là truy cập qua VPN như WireGuard hoặc Tailscale thay vì public toàn bộ dịch vụ.
Một số nguyên tắc nên áp dụng:
– Chỉ mở port cần thiết, thường là 80/443 hoặc port VPN.
– Luôn cập nhật container image và hệ điều hành.
– Tách user admin và user dùng hằng ngày.
– Không dùng chung mật khẩu giữa các dịch vụ.
– Theo dõi log đăng nhập bất thường.
– Dùng firewall nội bộ, ví dụ UFW hoặc rule trên router.
Với dịch vụ chứa ảnh gia đình, tài liệu cá nhân, lịch làm việc, bảo mật không phải phần phụ. Nó là điều kiện để self-hosted có ý nghĩa.
Kết luận: thay Google theo từng bước, không cần cực đoan
Một homelab cá nhân có thể thay thế phần lớn Google Drive, Photos và Calendar, nhưng nên làm theo hướng thực tế. Đừng chuyển toàn bộ dữ liệu trong một đêm. Hãy bắt đầu với một dịch vụ dễ thấy giá trị nhất, thường là Immich cho ảnh hoặc Nextcloud cho file. Khi đã quen với backup, reverse proxy, cập nhật và restore, tiếp tục đưa lịch, danh bạ và tài liệu quan trọng về hệ thống riêng.
Stack đề xuất cho đa số người dùng là: Nextcloud cho Drive/Calendar/Contacts, Immich cho Photos, Caddy cho HTTPS, Restic hoặc Borg cho backup. Nếu cần đồng bộ file cực nhanh và ít tính năng phụ, thay Nextcloud bằng Seafile; nếu muốn lịch/danh bạ nhẹ và tách biệt, dùng Baikal.
Self-hosted không chỉ là tiết kiệm tiền cloud. Nó là cách hiểu dữ liệu của mình đang ở đâu, được sao lưu thế nào, ai có quyền truy cập, và điều gì xảy ra khi một dịch vụ lớn thay đổi chính sách. Khi làm đúng, homelab không chỉ là thú vui kỹ thuật — nó trở thành hạ tầng số cá nhân đáng tin cậy.