Obsidian là một công cụ ghi chú xuất sắc, thực sự đã thay đổi cách nhiều người dùng quản lý thông tin một cách hiệu quả, khác biệt so với các ứng dụng trước đây. Phần mềm này sở hữu vô vàn tùy chọn tùy chỉnh, giao diện đơn giản và dễ sử dụng, đồng thời mang lại cho người dùng khả năng kiểm soát đáng kinh ngạc. Khả năng kiểm soát này lớn đến mức bạn có thể dễ dàng tự lưu trữ 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 Obsidian. Với một máy chủ cá nhân (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 tự lưu trữ trực tiếp thay thế Obsidian Sync, hoạt động một cách hoàn hảo.
Để 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, và tốt nhất là có cách để truy cập máy chủ cá nhân từ xa. Nhiều chuyên gia thường sử dụng các giải pháp như Tailscale cho mục đích này, nhưng bất kỳ hệ thống truy cập từ xa nào khác cũng sẽ hoạt động hiệu quả. Mặc dù hệ thống này vẫn có thể hoạt động mà không cần truy cập máy chủ từ xa, nhưng ghi chú của bạn sẽ không đồng bộ hóa với máy chủ cho đến khi bạn trở lại cùng mạng. Trong khi một số người khác có thể sử dụng Git hoặc Syncthing để đồng bộ ghi chú, giải pháp này hiện là lựa chọn tối ưu nhất mà chúng tôi đã thử nghiệm cho đến nay.
Giới thiệu CouchDB và LiveSync: Bộ đôi miễn phí cho Obsidian
Hai dịch vụ miễn phí, mạnh mẽ
CouchDB là một cơ sở dữ liệu NoSQL hướng tài liệu mã nguồn mở, với mỗi phiên bản của một tài liệu đều được gắn số phiên bản. Đối với Obsidian, CouchDB là lựa chọn hoàn hảo, vì tất cả 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 đưa ghi chú của bạn vào cơ sở dữ liệu, đồng thời truy xuất và diễn giải các tài liệu đó để đưa ngược trở lại Obsidian. Kết quả là một hệ thống có thể nói là vượt trội 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 cung cấp nhiều tùy chọn hữu ích để đồng bộ hóa Obsidian với các thiết bị khác, và 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 LiveSync trên điện thoại, laptop và máy tính cá nhân, và ghi chú của chúng tôi xuất hiện tức thì trên tất cả các thiết bị ngay khi chúng tôi thêm một ghi chú trên bất kỳ thiết bị nào. Quá trình thiết lập vô cùng dễ dàng và đây là một trong những lợi ích tuyệt vời nhất mà máy chủ cá nhân của chúng tôi mang lại. Khi cần ghi chú nhanh khi đang ở bên ngoài, chúng tôi có thể sử dụng các ứng dụng như Blinko hoặc thêm vào ghi chú hiện có với Obsidian, và sau đó dễ dàng xem những gì đã thêm trên máy tính cá nhân hoặc laptop.
Đối với người dùng Obsidian, đây là một giải pháp không thể thiếu. Nó miễn phí, tự lưu trữ, và trên TrueNAS, bạn có thể dễ dàng tích hợp nó vào hệ thống sao lưu đám mây 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 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
Phần dài nhất của quá trình thiết lập
Giao diện trang chủ CouchDB sau khi đăng nhập và cài đặt.
Đầu tiên và quan trọng nhất, giải pháp này được thực hiện nhờ bài viết của người dùng /u/Timely_Anteater_9330 trên /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” khỏi 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 các tệp đó. Trong trường hợp của chúng tôi, phần volumes trông như sau, 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 đã loại bỏ phần labels và đặt PUID cùng UID là 1000 và 1000.
Khi container của bạn đã khởi động và chạy, bạn có thể điều hướng đến CouchDB bằng cách truy cập http://<địa chỉ IP 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 ở đầu phần này sau khi đăng nhập, mặc dù bạn sẽ chưa có tất cả các cơ sở dữ liệu như 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 thông tin xác thực tương tự như trong tệp Docker Compose của bạn. Bạn có thể xác minh quá trình cài đặt, và nếu bạn đã thực hiện đúng, nó sẽ hiển thị thông báo thành công.
Giao diện tạo database mới trong CouchDB cho Obsidian LiveSync.
Tiếp theo, hãy 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ì vậy trong trường hợp của chúng tôi, tên cơ sở dữ liệu chỉ là “obsidiandb”, nhưng bạn có thể chọn một quy ước đặt tên khác để phân biệt giữa các cơ sở dữ liệu của mình. Đảm bảo 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 cơ sở dữ liệu để hoạt động với LiveSync. Bạn sẽ 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 đi tới Configuration ở menu bên trái, và sau đó nhấp vào nút Add option cho từng cài đặt:
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ể đi tới phần CORS ở bên trái cấu hình của mình và tắt hoàn toàn. Tuy nhiên, đây là một tính năng bảo mật nên được giữ nguyên.
Màn hình cấu hình plugin LiveSync trong Obsidian với tùy chọn kết nối CouchDB.
Cuối cùng, cài đặt plugin LiveSync từ phần community plugins của Obsidian và kích hoạt nó. Sau đó, bạn có thể đi tới cấu hình. Mặc dù có tùy chọn Connect with setup URI, tùy chọn này không hoạt động với chúng tôi, và chúng tôi khuyên bạn nên đi tới 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 đã sử dụng khi cấu hình máy chủ. Cuối cùng, cơ sở dữ liệu phải khớp với tên cơ sở dữ liệu 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à kích hoạt mã hóa đầu cuối bằng cụm mật khẩu, tính năng này đã được chúng tôi bật trên phiên bản của mình.
Cuối cùng, hãy chuyển sang tab tiếp theo và thay đổi chế độ đồng bộ sang LiveSync. Mọi thứ giờ đây sẽ hoạt động, và khi bạn nhập liệu, dữ liệu của bạn sẽ được đồng bộ hóa với máy chủ CouchDB để sau đó có thể chia sẻ với các thiết bị khác cũng có quyền truy cập vào cơ sở dữ liệu của bạn. Chúng tôi chỉ gặp một vấn đề duy nhất mà không thực sự xác định được 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.
Đồng bộ ghi chú không hề khó
Nhiều lựa chọn nhưng đâu là tối ưu?
Người dùng tương tác với ứng dụng ghi chú Obsidian trên laptop.
Có nhiều 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í thực hiện một cách đơn giản hơn thông qua một công cụ như Google Drive. Tuy nhiên, chúng tôi thích tính chất “live” của công cụ này và thực tế là chúng tôi có thể viết trên điện thoại và truy cập ngay lập tức trên laptop hoặc máy tính cá nhân. Có thể quá trình thiết lập phức tạp hơn một chút so với một số người mong muốn, nhưng thành thật mà nói, nó hoạt động rất tốt, vì vậy chúng tôi không bận tâm đến 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 mà nó mang lại cho người dùng thậ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 để phục vụ người dùng. Obsidian là một trong những ứng dụng ghi chú tốt nhất hiện nay, và giải pháp này đã giúp trải nghiệm của chúng tôi trở nên tuyệt vời hơn nữa.