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

So sánh Nextcloud, Seafile, Syncthing tự host

So sánh Nextcloud, Seafile, Syncthing và object storage theo topology sync, chi phí thật trên VPS nhỏ, cùng lý do sync không thay thế backup.

Nên chạy giải pháp Dropbox tự host nào?

Bốn giải pháp thay thế Dropbox tự host đáng để bạn cân nhắc là Nextcloud, Seafile, Syncthing và object storage kết hợp với client. Chúng không thể thay thế lẫn nhau. Nextcloud phù hợp với hộ gia đình hoặc nhóm nhỏ, nơi người khác cần nhận file. Seafile phù hợp với cá nhân hoặc nhóm cần sync số lượng rất lớn file nhỏ, khi tốc độ sync quan trọng hơn cách dữ liệu được lưu trên disk. Syncthing phù hợp với một người cần sync các thiết bị của chính mình, khi không ai bên ngoài cần dùng link. Object storage phù hợp với lưu trữ archive: dung lượng rẻ và bạn hiếm khi mở dữ liệu.

Hãy chọn dựa trên cách sync hoạt động trước khi so sánh các tính năng. Danh sách tính năng thường trông giống nhau. Topology, tức máy nào giữ bản copy mà mọi máy khác đồng thuận, mới quyết định sau sáu tháng bạn còn hài lòng hay không.

Cấu trúc đồng bộ: một server lưu bản chính hoặc các peer không có server

Có 2 thiết kế, và phần lớn nội dung bên dưới phụ thuộc vào lựa chọn của bạn.

Một server lưu bản chính. Nextcloud, Seafile và object storage đều hoạt động theo cách này. Một máy, thường là VPS (virtual private server), giữ bản sao chính thức. Mọi thiết bị đều kết nối với máy đó. Laptop của bạn có thể tắt trong một tháng, sau đó bật lại và tự catch up. Điện thoại còn trống 6 GB có thể chỉ giữ một phần dữ liệu, trong khi server giữ toàn bộ dữ liệu. Trình duyệt có thể truy cập các file, nên mới có thể tạo share link.

Các peer không có server. Syncthing hoạt động theo cách này. Các thiết bị tự tìm nhau và trao đổi danh sách file trực tiếp qua kết nối được mã hóa. Không có bản sao nào là bản chính thức: file chỉ tồn tại trên các thiết bị đang giữ file đó, không tồn tại ở nơi nào khác. 2 thiết bị phải online cùng lúc thì thay đổi mới được truyền giữa chúng. Không có URL để gửi cho người khác, vì không có máy nào đang phục vụ một trang web.

Có 4 hệ quả, và đây là những vấn đề người dùng thường chỉ gặp về sau.

  • Gửi file cho người không muốn cài phần mềm cần một server lưu bản chính. Link là một URL, còn URL cần một process đang listen trên một port.
  • Truy cập file từ một máy bạn không kiểm soát, chẳng hạn laptop công ty, cần một server lưu bản chính.
  • Thiết bị đã tắt trong nhiều tuần sẽ catch up từ server mỗi khi được bật lại. Trong mô hình peer, thiết bị chỉ catch up khi một thiết bị khác đang giữ dữ liệu đó cũng online. Vì vậy, nhiều người dùng Syncthing chạy một instance trên VPS làm peer luôn online.
  • Dung lượng lưu trữ được tính khác nhau. Server lưu bản chính giữ 1 bản sao đầy đủ, cộng với phần dữ liệu mà mỗi thiết bị giữ cục bộ. 4 peer cùng chia sẻ một folder sẽ giữ 4 bản sao đầy đủ, vì mỗi peer giữ toàn bộ folder.

Nextcloud: người dùng, nhóm và liên kết công khai

Nextcloud là một ứng dụng web PHP. Ứng dụng lưu file của bạn dưới dạng file thông thường trong một thư mục dữ liệu và theo dõi chúng trong database. Bạn có thể chia sẻ một thư mục với một người dùng, một nhóm hoặc tạo liên kết công khai kèm password và ngày hết hạn. Lịch sử phiên bản được bật mặc định và file đã xóa trước tiên sẽ chuyển vào thùng rác. Desktop client hỗ trợ Linux, macOS và Windows; ứng dụng iOS và Android là ứng dụng chính thức. Nếu lý do bạn rời Dropbox là người khác cần nhận file của bạn, thì đây là lựa chọn phù hợp.

Đổi lại, hệ thống có nhiều thành phần. Một bản cài đặt thông thường chạy web server, PHP-FPM (trình quản lý tiến trình PHP), database như MariaDB hoặc PostgreSQL và Redis để khóa file. Một background job chạy mỗi 5 phút từ cron hoặc systemd timer. Trên VPS 1 GB, Nextcloud sẽ khởi động, nhưng một lần upload lớn hoặc một lệnh bảo trì occ chạy lâu có thể gặp out-of-memory killer. Hãy xem 2 GB là mức tối thiểu cho một nhóm nhỏ người dùng và dự kiến cần 4 GB khi bật thêm app. Chi phí khác là việc upgrade: app trong app store được build cho một bản core cụ thể, vì vậy hãy kiểm tra các app bạn phụ thuộc có hỗ trợ phiên bản major tiếp theo hay không trước khi upgrade.

Nextcloud chậm lại khi một account chứa hàng trăm nghìn file nhỏ, vì mỗi file tương ứng với một row trong bảng file cache và một file thực trên disk, còn desktop client phải duyệt từng file một. Ở quy mô hộ gia đình, vấn đề này hầu như không xuất hiện. Phần cài Nextcloud bằng Docker với TLS và backup trình bày về sizing, TLS (bảo mật lớp truyền tải) và backup. Hãy xem phần đó sau khi bạn đã quyết định dùng Nextcloud.

Có một cảnh báo về phạm vi sử dụng. Nextcloud cũng có thể chạy calendar, danh bạ, ghi chú và thư viện ảnh của bạn. Mỗi app được bật sẽ thêm background work và thêm một thành phần có thể chặn quá trình upgrade. Nếu vấn đề thực sự là ảnh, một công cụ chuyên dụng sẽ xử lý tốt hơn: xem Immich, lựa chọn tự host thay cho Google Photos. Nếu vấn đề thực sự là tài liệu và wiki, hãy xem các lựa chọn Notion tự host thay vì chồng thêm app lên file server. Chỉnh sửa các tài liệu đó trong browser cần thêm một office server. CODE server tích hợp của Collabora được cài dưới dạng app Nextcloud và phù hợp cho mục đích cá nhân hoặc nhóm nhỏ. Tuy nhiên, manual của Nextcloud cho biết server này chậm hơn một chút so với server độc lập và khuyến nghị dùng server riêng để có hiệu năng tốt hơn. Vì vậy, hãy cân nhắc OnlyOffice và Collabora trước khi cho rằng mức tối thiểu 2 GB vẫn đủ.

Seafile: được thiết kế cho số lượng rất lớn file nhỏ

Seafile chia mỗi file thành các block và lưu chúng trong object store nội bộ, được định danh bằng content hash, theo cùng ý tưởng mà git dùng cho các object của nó. Đơn vị đồng bộ và chia sẻ là library, không phải cây thư mục. Client upload các block và một commit thay vì gửi một request cho từng file. Vì vậy, việc đồng bộ một thư mục có 100,000 file nhỏ hoàn tất nhanh hơn nhiều so với giao thức xử lý từng file. Các block giống hệt nhau chỉ được lưu một lần, nên bản sao thứ hai của một file lớn gần như không tốn thêm dung lượng.

Đổi lại, các file trên server không còn là các file thông thường. Mở thư mục storage, bạn sẽ thấy các object file có tên dạng hexadecimal. Muốn lấy dữ liệu ra, bạn cần Seafile client hoặc các công cụ export và fsck riêng của Seafile. Backup vẫn hoạt động vì các object đó là file thông thường, nhưng bạn không thể restore một spreadsheet bằng cp. Hãy quyết định ngay xem điều này có chấp nhận được không, vì đây là đặc điểm mà nhiều người chỉ thấy hối tiếc về sau.

Seafile có community edition và paid professional edition. Ranh giới tính năng giữa hai bản có thể thay đổi theo từng release, nên hãy đọc điều khoản hiện tại trên website của Seafile trước khi lên kế hoạch triển khai team dựa trên một tính năng cụ thể. Seafile có client chính thức cho desktop và mobile. Encrypted library được mã hóa trên client, nên server chỉ lưu ciphertext mà không thể đọc. Nếu mất passphrase, library sẽ không thể đọc được, kể cả với bạn. Mở encrypted library trong browser đồng nghĩa với việc cung cấp passphrase cho web session. Vì vậy, mức bảo đảm cao nhất của cơ chế này chỉ áp dụng cho desktop client và mobile client.

Mức tiêu thụ tài nguyên gần với Nextcloud. Bạn phải chạy một database, một memory cache và 2 application process, nên 2 GB vẫn là mức tối thiểu hợp lý.

Syncthing: không cần đăng nhập

Syncthing là một binary Go duy nhất. Nó theo dõi các thư mục, tìm peer thông qua discovery server hoặc relay, rồi đồng bộ trực tiếp giữa các thiết bị. Không có account và không có trang đăng nhập cho những người mà bạn đồng bộ cùng. Bạn ghép nối hai thiết bị bằng ID và chấp nhận thư mục ở mỗi bên. Trong các lựa chọn ở đây, đây là phần mềm ít công sức vận hành nhất vì có rất ít thành phần cần chạy.

Điều bạn phải đánh đổi là toàn bộ khả năng chia sẻ. Mục tương ứng là Device pairing only, no links. Bạn không thể gửi link cho khách hàng, kế toán hoặc người thân. Mobile là khoảng trống còn lại: Community apps only, no official mobile app. Android app chính thức đã bị ngừng sau bản release cuối cùng vào tháng 12 năm 2024, và tài liệu của project hiện liệt kê các Android app do cộng đồng phát triển như Syncthing-Fork. Trên iOS, FAQ của chính project nói rõ: "Đội ngũ Syncthing hiện tại không có kế hoạch hỗ trợ iOS chính thức trong tương lai gần", vì iOS hạn chế xử lý nền đến mức khiến việc đồng bộ ổn định trở nên khó khăn. Người dùng iOS phải dùng app của bên thứ ba.

Mức sử dụng tài nguyên thấp, nhưng có một điểm cần biết. Syncthing giữ một mục index cho mỗi file mà nó đồng bộ, nên lượng memory và thời gian scan lần đầu tăng theo số lượng file, không phải theo tổng dung lượng. Lần đầu hash một thư mục lớn sẽ sử dụng CPU trong một khoảng thời gian, sau đó mức sử dụng sẽ ổn định. Trên gói VPS nhỏ nhất, nó vẫn chạy thoải mái.

Syncthing xử lý conflict bằng cách giữ cả hai phía. Khi hai thiết bị thay đổi cùng một file trong lúc không thể nhìn thấy nhau, Syncthing đổi tên một bản sao và giữ nó cạnh bản còn lại, nên bạn sẽ thấy các file như notes.sync-conflict-20260802-141530-K7MB3QT.md. Không có dữ liệu nào bị mất. Nhưng cũng không có dữ liệu nào được merge, và bạn phải tự xử lý conflict.

Object storage với client: lưu trữ giá rẻ, không phải thư mục sync

Object storage là một bucket tương thích với S3 (simple storage service), được self-host bằng MinIO hoặc thuê từ nhà cung cấp. Trước khi tự host, hãy biết rằng community repository của MinIO đã được archive và chuyển sang read-only từ April 25, 2026, được đánh dấu là không còn được maintain và không còn có pre-compiled binary từ cộng đồng. Vì vậy, cài đặt mới đồng nghĩa với việc phải build từ source và không có cam kết về các bản vá trong tương lai. Bạn truy cập bucket bằng một tool: rclone từ command line hoặc desktop client hiển thị bucket như một drive. Nếu muốn duyệt bucket từ web page thay vì shell, một số tool trong bài so sánh các file manager tự host có thể dùng S3 bucket làm backend và thêm share link riêng lên trên. Chia sẻ bằng presigned URL, tức một link do bạn tạo và có thời hạn hết hạn riêng. Versioning là một thiết lập của bucket: Bucket versioning, off by default. Bật tính năng này sau vẫn áp dụng cho các object đã có trong bucket. Các object đó sẽ có null version ID, và lần overwrite hoặc delete tiếp theo sẽ giữ bản sao đó thành version cũ thay vì xóa bỏ. Versioning không thể khôi phục dữ liệu đã bị overwrite hoặc delete trước khi bạn bật tính năng này. Vì vậy, hãy bật versioning khi tạo bucket.

Dùng bucket như thư mục sync là nguyên nhân gây lỗi. Mặc định không có gì theo dõi thư mục Documents của bạn. rclone bisync hỗ trợ sync hai chiều, còn tài liệu của rclone nói rõ rằng tính năng này cần được dùng cẩn thận. Điểm mạnh của object storage là làm lớp lưu trữ bên dưới: làm backup target hoặc lớp lưu trữ phía sau một ứng dụng. Object storage tương thích với S3 tự host bằng MinIO trình bày phần server.

Chi phí tài nguyên trong trường hợp này khá đặc biệt. MinIO chỉ là một binary và dùng ít tài nguyên khi idle. Chi phí thực tế bạn phải trả là disk, và trên VPS, đó là block volume thuê theo gigabyte, cộng với bandwidth dùng để di chuyển object vào và ra. Cả hai khoản này đều không xuất hiện trong free -h, vì vậy hãy đọc chi phí thực tế của một VPS mỗi tháng trước khi xác định dung lượng archive.

So sánh tính năng chia sẻ, client di động và versioning

Biểu đồSharing, mobile clients and versioning, by tool
Dữ liệu đằng sau biểu đồ này
[
  {
    "tool": "Nextcloud",
    "sharing": "Public links, users and groups",
    "mobile": "Official iOS and Android apps",
    "versioning": "On by default, plus trash"
  },
  {
    "tool": "Seafile",
    "sharing": "Public links with password and expiry",
    "mobile": "Official iOS and Android apps",
    "versioning": "Library history and snapshots"
  },
  {
    "tool": "Syncthing",
    "sharing": "Device pairing only, no links",
    "mobile": "Community apps only, no official mobile app",
    "versioning": "Optional per folder, off by default"
  },
  {
    "tool": "Object storage",
    "sharing": "Presigned URLs you generate",
    "mobile": "Third party clients only",
    "versioning": "Bucket versioning, off by default"
  }
]

Tất cả 4 tùy chọn được chia thành một nhóm rõ ràng. Ba tùy chọn có thể cung cấp file cho người không có gì ngoài một trình duyệt. Một tùy chọn chỉ giao tiếp với các thiết bị mà bạn đã sở hữu. Mục versioning của Seafile, Library history and snapshots, cần được lưu ý: lịch sử được lưu theo từng library, vì vậy khi xóa một library, lịch sử của library đó cũng bị chuyển vào system trash của Seafile. Admin có thể khôi phục library từ đó, nhưng khi system trash được dọn sạch thì lịch sử cũng mất theo.

Đưa dữ liệu của bạn ra lại

Chi phí thoát có thể dễ kiểm tra ngay bây giờ nhưng sẽ tốn kém nếu chỉ phát hiện sau này, vì vậy hãy kiểm tra trước khi cam kết.

Nextcloud lưu các file thực trong các thư mục thực, vì vậy một tar của thư mục dữ liệu sẽ cung cấp cho bạn các tài liệu ngay cả khi ứng dụng không bao giờ khởi động lại. Syncthing cũng làm như vậy trên mọi peer. Đây là phương án thoát tốt nhất trong nhóm này: các file chỉ đơn giản nằm trên từng thiết bị. Object store của Seafile cần Seafile hoặc các công cụ export của nó để ghép lại các block thành file. Object storage cần rclone hoặc công cụ tương đương; bạn có thể thực hiện việc này chỉ bằng một command.

Đồng bộ không phải là backup, và khoảng cách đó là nơi dữ liệu bị mất

Mọi công cụ ở đây đều sao chép các thay đổi giữa các máy. Xóa cũng là một thay đổi. Bạn xóa một thư mục trên laptop, client báo cho server, server áp dụng thay đổi đó, rồi mọi thiết bị khác cũng xóa thư mục này. Ransomware sử dụng cùng đường đi: nó mã hóa các file cục bộ, client phát hiện các file đã bị sửa đổi rồi tải các phiên bản đã mã hóa lên server. Quá trình đồng bộ đã hoạt động đúng. Dữ liệu của bạn vẫn mất.

Thùng rác và lịch sử phiên bản giúp giảm tác động của việc này. Nhưng chúng cũng hết hạn, có thể bị chính account gây ra lỗi xóa sạch, và nằm trên cùng disk với bản live. Khi một volume bị lỗi, cả file và lịch sử của chúng đều mất theo.

Backup là một bản sao riêng, nằm trên phần cứng riêng, được tạo theo lịch và bạn đã restore thành công ít nhất một lần. Hãy backup database trong cùng một lần chạy với các file. Restore thư mục dữ liệu của Nextcloud mà không có database sẽ tạo ra một instance không biết các file đó tồn tại. Sau đó chạy occ files:scan sẽ khôi phục các file nhưng làm mất các share và metadata phiên bản được lưu trong những bảng đó. Các phiên bản cũ vẫn là các file bên dưới data/[user]/files_versions, nên nội dung của chúng sẽ được khôi phục cùng thư mục dữ liệu. Backup restic theo lịch từ một VPS trình bày phiên bản được mã hóa và deduplicate của quy trình này, bao gồm cách kiểm tra restore thay vì mặc định cho rằng backup có thể dùng được.

Nên chọn gì

Với hầu hết người đọc bài này, tôi chọn Nextcloud. Sau khi rời Dropbox, điều nhiều người thiếu là khả năng gửi một link cho người sẽ không bao giờ cài thêm gì, và mở một file trên điện thoại. Nextcloud hỗ trợ cả hai việc này qua các client chính thức, và 2 GB RAM là mức chi phí hợp lý cho điều đó. Hãy chạy server miễn phí mà bạn tự cài đặt. Gói Enterprise của Nextcloud bắt đầu từ 100 người dùng. Các gói này bán cả tính năng lẫn hỗ trợ: tính đến October 17, 2026, trang pricing của Nextcloud liệt kê Nextcloud Assistant và Nextcloud Flow là chỉ được bao gồm trong gói Ultimate cao nhất, đồng thời giới hạn Whiteboard và phần lớn tích hợp bên thứ ba theo từng tier.

Tôi giữ nguyên 2 ngoại lệ. Nếu folder chỉ thuộc về bạn và chỉ được dùng trên phần cứng do bạn sở hữu, hãy chạy Syncthing. Bạn sẽ không phải patch server và cũng không phải bảo vệ web login. Nếu bạn sync một working directory có hàng trăm nghìn file, hãy chạy Seafile và chấp nhận storage opaque để đổi lấy tốc độ. Object storage nên nằm phía dưới công cụ bạn chọn, làm backup target, không nằm phía trước nó với vai trò sync tool.

FAQ

Syncthing có phải là hệ thống backup cho laptop của tôi không?

Không. Syncthing sao chép các thay đổi giữa các thiết bị, và việc xóa cũng là một thay đổi như mọi thay đổi khác. Vì vậy, file bạn vô tình xóa sẽ biến mất trên mọi thiết bị đã ghép nối trong vài giây. Tính năng versioning theo từng folder có thể giúp hạn chế việc này, nhưng mặc định bị tắt cho đến khi bạn bật trên từng folder. Hãy duy trì một bản backup thực sự trên phần cứng riêng, thực hiện theo lịch, rồi khôi phục từ bản đó một lần để xác nhận quy trình restore hoạt động.

Tôi có thể chạy Nextcloud và Syncthing trên cùng một VPS không?

Có. Hai ứng dụng listen trên các port khác nhau nên không xung đột. Không trỏ folder của Syncthing vào data directory của Nextcloud. Nextcloud theo dõi mọi file trong database, nên các file xuất hiện trên disk bên dưới directory này sẽ vẫn bị ẩn cho đến khi bạn chạy occ files:scan. Các file bị xóa bên dưới directory này cũng để lại những row trong database trỏ đến file không còn tồn tại. Hãy cấp cho Syncthing một directory riêng, hoặc gắn directory đó vào Nextcloud dưới dạng external storage để Nextcloud biết phải kiểm tra directory này.

Nextcloud và Seafile đều tạo được public link, kèm password tùy chọn và ngày hết hạn. Object storage cung cấp presigned URL, tự ngừng hoạt động sau khoảng thời gian bạn đặt. Syncthing không hỗ trợ cách này. Mô hình share của nó là ghép nối thiết bị, nên người kia phải cài Syncthing, cung cấp device ID cho bạn và accept folder.

Server cần bao nhiêu disk?

Với server lưu bản dữ liệu chính, hãy dự trù đủ dung lượng cho toàn bộ shared data, cộng thêm dung lượng cho version history và trash, cùng phần dung lượng tạm cho các upload đang xử lý. Version history là phần thường bị đánh giá thấp: nếu giữ mọi version của một file 2 GB thay đổi hằng ngày, dung lượng sẽ tăng rất nhanh. Vì vậy, hãy đặt retention policy ngay từ đầu. Đặt data trên một volume riêng giúp phần tăng trưởng này không ảnh hưởng đến root filesystem. Khi disk đầy, toàn bộ server sẽ dừng hoạt động thay vì chỉ một upload bị lỗi.

Bài viết này có hữu ích không?