Obsidian đã chứng tỏ là một công cụ ghi chú xuất sắc, tạo nên sự khác biệt đáng kể so với các ứng dụng khác nhờ khả năng tùy biến mạnh mẽ, giao diện thân thiện và đặc biệt là sự kiểm soát tối đa mà nó trao cho người dùng. Mức độ kiểm soát này rộng lớn đến mức bạn hoàn toàn có thể tự xây dựng các giải pháp thay thế cho Obsidian Sync – một trong số ít các tính năng trả phí của công cụ này. Nhờ có một máy chủ tại nhà (home server) và một plugin Obsidian miễn phí, giờ đây bạn có thể sở hữu một giải pháp Obsidian Sync tự host hoạt động hoàn hảo và trực quan.
Để thiết lập hệ thống này, bạn cần có khả năng triển khai một vài Docker container. Lý tưởng nhất là bạn nên có cách truy cập máy chủ tại nhà từ xa, ví dụ như sử dụng Tailscale, hoặc bất kỳ hệ thống truy cập từ xa nào khác. Nếu không có khả năng truy cập từ xa, ghi chú của bạn vẫn sẽ được đồng bộ với máy chủ khi bạn quay lại cùng mạng cục bộ. Mặc dù nhiều người có thể sử dụng Git hoặc Syncthing để đồng bộ ghi chú Obsidian, giải pháp CouchDB và LiveSync này là lựa chọn tốt nhất mà chúng tôi đã thử cho đến nay.
Giới Thiệu CouchDB và LiveSync: Bộ Đôi Hoàn Hảo Cho Obsidian
Hai Dịch Vụ Miễn Phí Mạnh Mẽ
CouchDB là một hệ quản trị cơ sở dữ liệu NoSQL mã nguồn mở, định hướng tài liệu (document-oriented), với mỗi phiên bản của một tài liệu đều được lưu trữ theo dạng version. Đối với Obsidian, CouchDB là lựa chọn hoàn hảo vì mọi ghi chú của bạn có thể được tạo dưới dạng tài liệu. Plugin LiveSync có khả năng nhập ghi chú của bạn vào database, đồng thời truy xuất và diễn giải các tài liệu đó để chèn ngược lại vào Obsidian. Kết quả là một hệ thống được đánh giá là vượt trội hơn cả Obsidian Sync chính thức, trong khi hoàn toàn miễn phí và tận dụng chính phần cứng của bạn.
LiveSync cung cấp rất 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, thậm chí còn hoạt động tốt trên thiết bị di động. Chúng tôi đã thiết lập nó trên điện thoại, laptop và PC, và các ghi chú xuất hiện tức thì trên tất cả các thiết bị chỉ sau khi được thêm vào trên một thiết bị duy nhất. Việc thiết lập vô cùng đơn giản, và đây là một trong những lợi ích lớn nhất mà máy chủ tại nhà của chúng tôi mang lại. Khi cần ghi chú nhanh lúc đang ở ngoài, chúng tôi có thể sử dụng Blinko hoặc thêm vào một ghi chú hiện có trong Obsidian, và dù bằng cách nào, nội dung đã thêm sẽ ngay lập tức hiển thị trên PC hoặc laptop.
Với người dùng Obsidian, đây là một giải pháp không thể bỏ qua. Nó miễn phí, tự host, và trên các nền tảng như TrueNAS, bạ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 nếu muốn. Chúng tôi sử dụng Dockge để triển khai Docker container chứa CouchDB, nhưng bất kỳ nền tảng nào cho phép bạn sử dụng tệp Docker Compose đều có thể hoạt động.
Hướng Dẫn Thiết Lập CouchDB và Obsidian LiveSync Chi Tiết
Phần Phức Tạp Nhất Trong Quy Trình
Để bắt đầu, giải pháp này được thực hiện nhờ vào bài đăng của người dùng /u/Timely_Anteater_9330
trên subreddit /r/selfhosted
, và 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” trong tệp compose. Với TrueNAS và Dockge, chúng tôi đã tạo một dataset để lưu trữ các tệp CouchDB và sửa đổi phần volumes để trỏ đến đó. Trong trường hợp của chúng tôi, volumes sẽ trông như thế này, nhưng 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
Chúng tôi cũng đã xóa phần labels và đặt PUID cùng UID thành 1000.
Khi container của bạn đã khởi chạy, bạn có thể truy cập CouchDB bằng cách điều hướng đến http://<địa chỉ IP của máy chủ>:5984/_utils
, sau đó đăng nhập bằng thông tin xác thực có trong tệp Docker Compose của bạn. 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ư của chúng tôi. Đi tới thanh bên trái và nhấp vào Setup. Chọn Configure as single node và sau đó nhập lại các thông tin xác thực tương tự như trong tệp Docker Compose. Bạn có thể xác minh cài đặt của mình, và nếu mọi thứ đều đúng, nó sẽ hiển thị thông báo thành công.
Giao diện trang chủ CouchDB sau khi đăng nhập, hiển thị các database hiện có.
Tiếp theo, hãy tạo database. Bạn nên tạo một database riêng cho mỗi người dùng, vì vậy trong trường hợp của chúng tôi, database chỉ là “obsidiandb”, nhưng bạn có thể chọn quy ước đặt tên khác để phân biệt giữa các database của mình. Đảm bảo rằng tùy chọn “partitioning” được đặt thành “non-partitioned”, và bạn sẽ được chuyển hướng. Bước tiếp theo là kích hoạt database để 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 tùy chọn:
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ủa 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 nên được giữ bật.
Màn hình tạo database mới trong CouchDB, với tùy chọn 'non-partitioned' được chọn.
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 điều này không hoạt động với chúng tôi. Thay vào đó, 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. Đả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 đã 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. 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 ý để sửa lỗi. Bạn cũng có thể cuộn xuống và bật tính năng mã hóa end-to-end với một cụm mật khẩu, mà chúng tôi đã kích hoạt trên instance của mình.
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 đề mà không thể thực sự tìm ra nguyên nhân, nhưng giải pháp chỉ đơ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à điều đó 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à độ ổn định của thiết lập này.
Cài đặt kết nối cho plugin LiveSync trong Obsidian, hiển thị các trường cấu hình thủ công.
Đồng Bộ Ghi Chú Obsidian Không Hề Khó
Nhiều Tùy Chọn Đa Dạng
Có một vài cách để đồng bộ ghi chú của bạn, và đây chỉ là một trong số đó. Bạn có thể sử dụng Git, Syncthing, hoặc thậm chí là một giải pháp cơ bản hơn thông qua các công cụ như Google Drive. Tuy nhiên, chúng tôi yêu thích tính chất đồng bộ “live” của giải pháp cụ thể này, và thực tế là chúng tôi có thể viết trên điện thoại và ngay lập tức truy cập được trên laptop hoặc PC. Có thể sẽ có nhiều bước thiết lập hơn so với một số người mong muốn, nhưng thành thật mà nói, nó hoạt động thực sự tốt, vì vậy chúng tôi không bận tâm đến lượng thời gian đã bỏ ra, xét về những gì chúng tôi nhận được.
Đây cũng là lý do tại sao chúng tôi yêu thích Obsidian, vì mức độ kiểm soát được cấp cho người dùng là rất ấn tượng. Bạn có thể làm điều 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 những dịch vụ trả phí duy nhất của nó, và đó là một động thái tuyệt vời để mang lại lợi ích cho người dùng. Obsidian là một trong những ứng dụng ghi chú tốt nhất, và giải pháp tự host này đã làm cho nó trở nên tuyệt vời hơn nữa đối với chúng tôi.