Quay lại danh sách
Tin tức công nghệ

Tự host Immich trên VPS kết hợp Cloudflare R2: Giải pháp sao lưu ảnh không giới hạn thay thế Google Photos

30 tháng 5, 2026

Đặt vấn đề: Khi Google Photos không còn 'miễn phí' và bài toán chi phí lưu trữ doanh nghiệp

Trong kỷ nguyên số, dữ liệu hình ảnh và video không chỉ là tài sản cá nhân mà còn là tài nguyên quan trọng của các doanh nghiệp, đặc biệt là các đơn vị hoạt động trong lĩnh vực truyền thông, marketing, và thương mại điện tử. Nhiều năm qua, Google Photos đã khẳng định vị thế độc tôn nhờ giao diện mượt mà, tính năng tìm kiếm thông minh bằng AI và khả năng đồng bộ hóa mạnh mẽ. Tuy nhiên, kể từ khi chính sách lưu trữ miễn phí không giới hạn bị bãi bỏ, chi phí duy trì các gói dung lượng lớn (Google One) đã trở thành một gánh nặng tài chính đáng kể khi quy mô dữ liệu tăng dần theo thời gian.

Bên cạnh rủi ro về mặt chi phí, việc phụ thuộc hoàn toàn vào các nền tảng đám mây tập trung (Public Cloud) cũng đặt ra nhiều thách thức lớn về quyền riêng tư dữ liệu (data privacy), nguy cơ quét quét bản quyền nhầm lẫn dẫn đến khóa tài khoản vĩnh viễn, và sự hạn chế trong việc tùy biến tính năng theo nhu cầu doanh nghiệp. Từ đây, xu hướng Self-hosting (Tự vận hành hệ thống) nổi lên như một lời giải hoàn hảo, giúp tổ chức vừa làm chủ hoàn toàn dữ liệu, vừa tối ưu hóa chi phí vận hành hàng tháng.

Immich là gì? Tại sao đây là giải pháp thay thế Google Photos hoàn hảo nhất?

Immich là một ứng dụng sao lưu hình ảnh và video nguồn mở (Open-source) được phát triển với tốc độ chóng mặt và sở hữu cộng đồng người dùng đông đảo. Điểm đặc biệt của Immich là giao diện người dùng (UI/UX) được thiết kế cực kỳ tương đồng với Google Photos từ ứng dụng di động (iOS/Android) cho đến phiên bản Web, giúp người dùng chuyển đổi nền tảng mà không mất thời gian làm quen lại từ đầu.

Các tính năng cốt lõi vượt trội của Immich bao gồm:

  • Tốc độ đồng bộ cực nhanh: Hỗ trợ tải lên đa luồng, tự động sao lưu ngầm trên điện thoại ngay khi có ảnh mới.
  • Nhận diện khuôn mặt và vật thể bằng AI: Tích hợp sẵn các mô hình học máy (Machine Learning) mạnh mẽ chạy trực tiếp trên máy chủ của bạn để phân loại album theo người, địa điểm và đồ vật mà không gửi dữ liệu ra bên ngoài.
  • Quản lý đa người dùng (Multi-user): Phù hợp cho cả gia đình hoặc đội ngũ doanh nghiệp, mỗi thành viên có không gian lưu trữ riêng tư tuyệt đối nhưng vẫn có thể chia sẻ album chung dễ dàng.
  • Hỗ trợ định dạng toàn diện: Xử lý mượt mà các file ảnh RAW, ảnh động (Live Photos), và các định dạng video chất lượng cao mà không bị nén giảm chất lượng như các giải pháp thông thường.

Mô hình kiến trúc tối ưu: VPS kết hợp Cloudflare R2 Object Storage

Nếu chỉ cài đặt Immich lên một máy chủ ảo (VPS) thông thường, bạn sẽ sớm đối mặt với bài toán cạn kiệt dung lượng ổ cứng (SSD/NVMe). Chi phí để nâng cấp dung lượng lưu trữ trên VPS thường rất đắt đỏ và không linh hoạt. Để giải quyết triệt để vấn đề này, kiến trúc tối ưu nhất hiện nay là tách rời phần xử lý (Compute) và phần lưu trữ (Storage).

"Kiến trúc kết hợp giữa VPS hiệu năng cao và Object Storage giúp hệ thống tận dụng tối đa sức mạnh tính toán của CPU để xử lý AI/thumbnails, đồng thời đẩy toàn bộ dữ liệu gốc lưu trữ tại đám mây vô hạn với chi phí tiệm cận bằng 0."

Trong mô hình này, chúng ta sử dụng:

  1. VPS (Ubuntu Server): Đóng vai trò làm cổng kết nối, chạy mã nguồn Immich qua Docker, xử lý các tác vụ xử lý ảnh, tạo thumbnail, và chạy mô hình AI nhận diện khuôn mặt. Bạn chỉ cần một VPS cấu hình vừa phải (ví dụ: 2-4 Cores CPU, 4GB-8GB RAM).
  2. Cloudflare R2 Storage: Là dịch vụ lưu trữ đối tượng (Object Storage) tương thích chuẩn S3. Điểm cộng lớn nhất của Cloudflare R2 so với Amazon S3 hay Google Cloud Storage là hoàn toàn miễn phí chi phí băng thông tải ra (Zero Egress Fees) và chi phí lưu trữ cực rẻ ($0.015/GB/tháng, miễn phí 10GB đầu tiên). Điều này giúp triệt tiêu hoàn toàn nỗi lo về chi phí phát sinh khi người dùng tải video hoặc đồng bộ lượng lớn dữ liệu.

Hướng dẫn chi tiết các bước triển khai Immich và Cloudflare R2

Bước 1: Khởi tạo Bucket trên Cloudflare R2 và cấu hình S3 API

Trước tiên, bạn cần truy cập vào trang quản trị Cloudflare, điều hướng đến mục R2 Storage và tạo một Bucket mới (ví dụ tên: immich-data-storage). Tiếp theo, hãy tạo API Token với quyền "Edit" để lấy các thông tin quan trọng bao gồm: Access Key ID, Secret Access Key, và Endpoint URL phục vụ cho việc kết nối từ VPS.

Bước 2: Cấu hình Mount Cloudflare R2 vào VPS bằng Rclone hoặc GeeseFS

Để Immich có thể đọc/ghi dữ liệu trực tiếp vào Cloudflare R2 giống như một thư mục local trên ổ cứng, chúng ta cần sử dụng một công cụ trung gian. GeeseFS hoặc Rclone là hai lựa chọn phổ biến nhất nhờ hiệu năng cao và độ trễ thấp.

Tiến hành cài đặt Rclone trên VPS Ubuntu và cấu hình kết nối tới Cloudflare R2 theo các thông số đã lấy ở Bước 1. Sau đó, thiết lập một lệnh mount tự động (systemd service) để gắn kết Bucket R2 vào thư mục /mnt/immich trên VPS.

Bước 3: Triển khai Immich bằng Docker Compose

Immich được khuyến khích triển khai thông qua Docker Compose để đảm bảo tính ổn định và dễ dàng cập nhật. Bạn tải file cấu hình chính thức từ kho lưu trữ của Immich về VPS. Điểm mấu chốt trong file .env là chỉnh sửa đường dẫn lưu trữ dữ liệu (UPLOAD_LOCATION) trỏ chính xác về thư mục đã mount Cloudflare R2 (/mnt/immich).

Sau khi cấu hình hoàn tất, khởi chạy hệ thống bằng lệnh: docker compose up -d. Toàn bộ các container bao gồm Immich Server, Immich Microservices, và cơ sở dữ liệu PostgreSQL sẽ tự động được thiết lập và vận hành đồng bộ.

Đánh giá hiệu năng thực tế và bài toán chi phí kinh tế

Qua thử nghiệm thực tế với thư viện ảnh lên tới 500GB (hơn 100.000 file ảnh và video), hệ thống hoạt động vô cùng ổn định. Nhờ việc tận dụng băng thông nội bộ chất lượng cao của Cloudflare, tốc độ tải ảnh gốc từ R2 về thiết bị di động gần như không có độ trễ phân biệt so với việc lưu trên ổ SSD cục bộ của VPS. Quá trình xử lý AI (nhận diện khuôn mặt, trích xuất metadata) diễn ra mượt mà trên VPS nhờ tận dụng tốt tài nguyên CPU đa nhân.

Về mặt chi phí, hãy cùng làm một bài toán so sánh chi tiết cho nhu cầu lưu trữ 2TB dữ liệu:

  • Google One (Gói 2TB): Khoảng 225.000 VNĐ/tháng ($9.99/tháng), giới hạn dung lượng cố định, không thể mở rộng hơn trừ khi nâng cấp lên gói doanh nghiệp đắt đỏ.
  • Giải pháp VPS + Cloudflare R2: Chi phí VPS (khoảng $6 - $10/tháng) + Chi phí lưu trữ Cloudflare R2 (2000GB x $0.015 = $30/tháng). Tổng chi phí khoảng $36 - $40/tháng.

Mặc dù chi phí ban đầu cho 2TB của giải pháp tự host có thể cao hơn một chút so với Google One, nhưng lợi ích thực sự nằm ở khả năng mở rộng tuyến tính không giới hạn. Khi dữ liệu tăng lên 5TB, 10TB hoặc thậm chí 50TB, Google One hoàn toàn không đáp ứng được, trong khi với Cloudflare R2, bạn chỉ trả đúng $0.015 cho mỗi GB tăng thêm mà không cần thay đổi hạ tầng VPS hay lo lắng về băng thông.

Kết luận: Có nên chuyển dịch sang Immich kết hợp Cloudflare R2?

Tự vận hành hệ thống lưu trữ ảnh bằng Immich phối hợp Cloudflare R2 không chỉ đơn thuần là một giải pháp tiết kiệm chi phí, mà đó là lời khẳng định về quyền làm chủ dữ liệu tối cao của doanh nghiệp và cá nhân trong kỷ nguyên số. Mặc dù đòi hỏi một chút kiến thức kỹ thuật về quản trị máy chủ ở giai đoạn thiết lập ban đầu, nhưng sự ổn định, tính năng bảo mật tuyệt đối, và khả năng mở rộng không giới hạn mà hệ thống này mang lại hoàn toàn xứng đáng với công sức đầu tư.

Nếu bạn hoặc doanh nghiệp của bạn đang sở hữu kho tài nguyên hình ảnh khổng lồ và mong muốn tìm kiếm một nền tảng chuyên nghiệp, độc lập và bảo mật cao, Immich và Cloudflare R2 chắc chắn là sự kết hợp công nghệ không thể bỏ qua trong năm nay.

Tự host Immich trên VPS kết hợp Cloudflare R2: Giải pháp sao lưu ảnh không giới hạn thay thế Google Photos | DPTCloud