Giao diện trang chủ quản lý CouchDB sau khi đăng nhập, hiển thị các database
Máy Tính

Tối ưu đồng bộ Obsidian miễn phí: Hướng dẫn tự lưu trữ với CouchDB và LiveSync

Obsidian là một công cụ ghi chú mạnh mẽ và linh hoạt, đã chinh phục được cộng đồng người dùng công nghệ nhờ khả năng tùy biến sâu rộng cùng triết lý quản lý kiến thức dựa trên đồ thị liên kết. Tuy nhiên, một trong số ít các tính năng trả phí của Obsidian là Obsidian Sync – dịch vụ đồng bộ hóa ghi chú trên nhiều thiết bị. Đối với những người muốn kiểm soát hoàn toàn dữ liệu của mình và không muốn phụ thuộc vào các dịch vụ đám mây trả phí, việc tìm kiếm một giải pháp tự lưu trữ (self-hosted) là điều tất yếu. Bài viết này sẽ đi sâu vào cách bạn có thể thiết lập một hệ thống đồng bộ ghi chú Obsidian miễn phí, “sống động” và hoạt động hoàn hảo ngay trên máy chủ tại gia của mình, sử dụng sự kết hợp giữa CouchDB và plugin LiveSync, mang lại trải nghiệm thậm chí còn tốt hơn cả giải pháp trả phí.

Để triển khai hệ thống này, bạn cần có khả năng chạy các container Docker và lý tưởng nhất là có thể truy cập máy chủ tại gia từ bên ngoài mạng nội bộ (ví dụ qua Tailscale hoặc các hệ thống truy cập từ xa khác). Nếu không có khả năng truy cập từ xa, ghi chú của bạn vẫn sẽ đồng bộ nhưng chỉ khi thiết bị của bạn nằm trong cùng mạng với máy chủ. Mặc dù Git hay Syncthing cũng là những lựa chọn phổ biến để đồng bộ ghi chú, giải pháp dựa trên CouchDB và LiveSync này đã chứng tỏ là phương án hiệu quả nhất mà chúng tôi từng trải nghiệm, đặc biệt với khả năng đồng bộ tức thì.

Tại sao CouchDB và LiveSync là bộ đôi hoàn hảo cho Obsidian?

Giải pháp đồng bộ hóa ghi chú Obsidian tự lưu trữ mà chúng ta sẽ khám phá dựa trên hai thành phần chính: CouchDB – một cơ sở dữ liệu mã nguồn mở và plugin LiveSync – một plugin cộng đồng của Obsidian. Cả hai đều miễn phí và mang lại khả năng kiểm soát dữ liệu vượt trội.

CouchDB: Căn cứ dữ liệu NoSQL mạnh mẽ

CouchDB là một cơ sở dữ liệu NoSQL hướng tài liệu (document-oriented), mã nguồn mở, nổi bật với tính năng lập phiên bản cho mọi thay đổi của tài liệu. Điều này hoàn toàn phù hợp với Obsidian, nơi mỗi ghi chú có thể được xem là một tài liệu riêng biệt. Plugin LiveSync sẽ đảm nhiệm vai trò đưa các ghi chú của bạn vào cơ sở dữ liệu CouchDB, đồng thời truy xuất và diễn giải các tài liệu đó để đưa ngược trở lại vào Obsidian trên các thiết bị khác. Kết quả là một hệ thống đồng bộ hóa được cho là tốt hơn Obsidian Sync, hoàn toàn miễn phí và tận dụng chính phần cứng của bạn để hoạt động.

LiveSync: Plugin đồng bộ tức thì, đa nền tảng

LiveSync cung cấp nhiều tùy chọn hữu ích để đồng bộ Obsidian của bạn với các thiết bị khác, kể cả trên di động. Với giải pháp này, bạn có thể thiết lập LiveSync trên điện thoại, laptop và máy tính cá nhân, và các ghi chú sẽ xuất hiện tức thì trên tất cả các thiết bị chỉ sau khi bạn thêm một ghi chú trên một thiết bị bất kỳ. Quá trình thiết lập LiveSync cực kỳ đơn giản và đã trở thành một trong những lợi ích lớn nhất của việc sở hữu một máy chủ tại gia. Khi cần ghi chú nhanh lúc đang ở ngoài, bạn có thể sử dụng ứng dụng di động của Obsidian hoặc một công cụ tương tự, và ngay lập tức xem được nội dung đó trên máy tính hoặc laptop của mình.

Đối với người dùng Obsidian, đây thực sự là một giải pháp không thể bỏ qua. Nó miễn phí, tự lưu trữ và trên các nền tảng như TrueNAS, bạn còn có thể dễ dàng tích hợp nó vào hệ thống sao lưu đám mây của mình. Để triển khai container Docker chứa CouchDB, chúng tôi sử dụng Dockge, nhưng bất kỳ nền tảng nào hỗ trợ Docker Compose đều có thể hoạt động.

Hướng dẫn chi tiết cài đặt CouchDB và LiveSync cho Obsidian

Phần này sẽ hướng dẫn bạn từng bước cách thiết lập CouchDB và plugin LiveSync để đạt được khả năng đồng bộ hóa ghi chú Obsidian tức thì. Đây có thể là phần tốn thời gian nhất nhưng cũng là phần quan trọng nhất của quá trình.

Chuẩn bị nền tảng: Docker và truy cập Home Server

Đầu tiên và quan trọng nhất, quá trình này được thực hiện dựa trên hướng dẫn chi tiết của người dùng /u/Timely_Anteater_9330 trên /r/selfhosted. Chúng ta sẽ sử dụng tệp Docker Compose của họ để triển khai dịch vụ này. Nếu bạn không sử dụng Unraid, bạn có thể xóa phần “labels” khỏi tệp compose. Trên TrueNAS với Dockge, bạn nên tạo một dataset riêng để lưu trữ các tệp của CouchDB và chỉnh sửa phần volumes để trỏ đến dataset đó. Ví dụ về cấu hình volumes có thể như sau (của bạn có thể khác):

  • /mnt/Storage/configs/CouchDB-Obsidian/data:/opt/couchdb/data
  • /mnt/Storage/configs/CouchDB-Obsidian/etc/local.d:/opt/couchdb/etc/local.d

Bạn cũng cần loại bỏ phần labels và đặt PUID và UID thành 1000 và 1000 để đảm bảo quyền truy cập.

Triển khai CouchDB với Docker Compose

Sau khi container của bạn đã chạy, bạn có thể truy cập CouchDB bằng cách điều hướng đến http://<IP_máy_chủ_của_bạn>:5984/_utils. Sau đó, bạn sẽ đăng nhập bằng thông tin xác thực đã khai báo trong tệp Docker Compose. Trang của bạn sẽ trông tương tự như hình ảnh dưới đây sau khi đăng nhập, mặc dù bạn sẽ chưa có tất cả các database như trong ví dụ.

Giao diện trang chủ quản lý CouchDB sau khi đăng nhập, hiển thị các databaseGiao diện trang chủ quản lý CouchDB sau khi đăng nhập, hiển thị các database

Tiếp theo, hãy vào thanh bên trái và nhấp vào Setup. Chọn Configure as single node và nhập lại thông tin xác thực giống như trong tệp Docker Compose của bạn. Sau đó, bạn có thể xác minh cài đặt và nếu mọi thứ đều đúng, một thông báo thành công sẽ hiển thị.

Tạo database và tùy chỉnh cho LiveSync

Bước tiếp theo là tạo cơ sở dữ liệu. Bạn nên tạo một cơ sở dữ liệu cho mỗi người dùng. Ví dụ, chúng tôi đặt tên là “obsidiandb”, nhưng bạn có thể chọn một quy ước đặt tên khác để phân biệt các database của mình. Đảm bảo tùy chọn “partitioning” được đặt thành “non-partitioned”. Bạn sẽ được chuyển hướng sau khi tạo.

Màn hình tạo database mới trong CouchDB với tùy chọn phân vùng &quot;non-partitioned&quot;Màn hình tạo database mới trong CouchDB với tùy chọn phân vùng "non-partitioned"

Bước quan trọng tiếp theo là kích hoạt cơ sở dữ liệu để hoạt động với LiveSync. Bạn cần tạo các cài đặt sau, được lấy từ script couchdb-init.sh trên GitHub của LiveSync. Bạn có thể thực hiện điều này bằng cách vào Configuration ở menu bên trái, sau đó nhấp vào nút Add option cho từng mục:

  • Section: chttpd, Name: require_valid_user, Value: true
  • Section: chttpd_auth, Name: require_valid_user, Value: true
  • Section: httpd, Name: WWW-Authenticate, Value: Basic realm="couchdb"
  • Section: httpd, Name: enable_cors, Value: true
  • Section: chttpd, Name: enable_cors, Value: true
  • Section: chttpd, Name: max_http_request_size, Value: 4294967296
  • Section: couchdb, Name: max_document_size, Value: 50000000
  • Section: cors, Name: credentials, Value: true
  • Section: cors, Name: origins, Value: app://obsidian.md,capacitor://localhost,http://localhost

Lưu ý rằng trong trường “origins” cho cors, bạn cũng sẽ muốn thêm bất kỳ địa chỉ IP hoặc tên miền nào khác mà bạn định truy cập từ đó. Mặc dù không được khuyến nghị, bạn cũng có thể vào phần CORS ở bên trái cấu hình và tắt hoàn toàn nó. Tuy nhiên, đây là một tính năng bảo mật quan trọng và nên được giữ bật.

Cài đặt và cấu hình plugin LiveSync trong Obsidian

Cuối cùng, hãy cài đặt plugin LiveSync từ phần community plugins của Obsidian và kích hoạt nó. Sau đó, bạn có thể tiến hành cấu hình. Mặc dù có tùy chọn “Connect with setup URI”, nhưng tùy chọn này không hoạt động hiệu quả. Chúng tôi khuyên bạn nên vào tab thứ tư (với biểu tượng vệ tinh nhỏ, như hình trên) và cấu hình thủ công.

Cấu hình kết nối plugin LiveSync với CouchDB trong Obsidian, hiển thị trường URL, username, password và tên databaseCấu hình kết nối plugin LiveSync với CouchDB trong Obsidian, hiển thị trường URL, username, password và tên database

Đảm bảo CouchDB được chọn, và sử dụng cùng tên người dùng và mật khẩu mà bạn đã sử dụng khi cấu hình máy chủ. Cuối cùng, tên database phải khớp với tên database trong CouchDB của bạn. Nhấp vào Test, và nó sẽ hoạt động! Bạn cũng có thể nhấp vào Check để đảm bảo mọi thứ đã được cấu hình chính xác, và nó có thể đưa ra một số gợi ý để khắc phục. Bạn cũng có thể cuộn xuống và bật mã hóa đầu cuối (end-to-end encryption) với một cụm mật khẩu, tính năng này rất khuyến khích để bảo mật dữ liệu của bạn.

Cuối cùng, chuyển sang tab tiếp theo và thay đổi chế độ đồng bộ thành LiveSync. Mọi thứ giờ đây sẽ hoạt động, và khi bạn gõ, dữ liệu của bạn sẽ được đồng bộ hóa với máy chủ CouchDB để có thể chia sẻ với các thiết bị khác cũng có quyền truy cập vào database của bạn. Chúng tôi chỉ gặp một vấn đề duy nhất mà không thể tìm ra nguyên nhân, nhưng giải pháp đơn giản là khởi động lại container CouchDB. Chúng tôi đã sử dụng nó trong nhiều tuần và vấn đề đó chỉ xảy ra một lần, vì vậy chúng tôi khá hài lòng với hiệu suất và sự ổn định của thiết lập này.

Ưu điểm nổi bật và kinh nghiệm thực tế khi sử dụng giải pháp này

Việc đồng bộ hóa ghi chú không nhất thiết phải phức tạp hay tốn kém. Mặc dù có một số cách để đồng bộ hóa ghi chú của bạn, như sử dụng Git, Syncthing, hoặc thậm chí là một cách đơn giản hơn qua Google Drive, nhưng giải pháp dựa trên CouchDB và LiveSync thực sự nổi bật nhờ tính năng “live sync” tức thì.

Người dùng trải nghiệm đồng bộ ghi chú Obsidian tức thì trên điện thoại và laptop, minh họa sự tiện lợi của LiveSyncNgười dùng trải nghiệm đồng bộ ghi chú Obsidian tức thì trên điện thoại và laptop, minh họa sự tiện lợi của LiveSync

Khả năng viết ghi chú trên điện thoại và có chúng ngay lập tức hiển thị trên laptop hoặc PC là một trải nghiệm không thể thay thế. Mặc dù có thể mất một chút thời gian để thiết lập ban đầu so với một số giải pháp khác, nhưng kết quả nhận được hoàn toàn xứng đáng với công sức bỏ ra. Đây cũng chính là lý do tại sao chúng tôi yêu thích Obsidian: mức độ kiểm soát đáng kinh ngạc mà nó trao cho người dùng. Bạn hoàn toàn có thể thực hiện những gì mình muốn; không có gì ngăn cản bạn thiết lập một giải pháp thay thế tiện lợi cho một trong số ít dịch vụ trả phí của nó, và đó là một động thái tuyệt vời để phục vụ người dùng một cách tốt nhất. Obsidian là một trong những ứng dụng ghi chú tốt nhất hiện nay, và giải pháp đồng bộ hóa tự lưu trữ này đã làm cho nó trở nên tuyệt vời hơn nữa.

Tài liệu tham khảo

Related posts

NixOS Containers: Giải pháp tự host độc đáo – Ưu nhược điểm chuyên sâu

Administrator

5 Ứng Dụng Mã Nguồn Mở Miễn Phí Thay Thế Phần Mềm Microsoft Mạnh Mẽ Nhất

Administrator

Wox: Giải Pháp Hoàn Hảo Thay Thế Windows Search, Tăng Năng Suất

Administrator