Obsidian là một công cụ ghi chú xuất sắc, đã thực sự “thay đổi cuộc chơi” với rất nhiều người dùng nhờ khả năng tùy biến vượt trội, sự đơn giản trong sử dụng và quyền kiểm soát đáng kinh ngạc mà nó trao cho người dùng. Khả năng kiểm soát này 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ùy chọn trả phí mà công cụ này cung cấp. Nhờ máy chủ cá nhân (home server) của tôi và một plugin Obsidian miễn phí, giờ đây tôi đã có một giải pháp thay thế Obsidian Sync được tự host, hoạt động trực tiếp và hoàn hảo.
Để thiết lập hệ thống này, bạn sẽ cần khả năng triển khai một vài container Docker, và tốt nhất là có cách truy cập máy chủ cá nhân của bạn từ xa. Tôi đang sử dụng Tailscale cho việc 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. Mặc dù hệ thống này vẫn có thể hoạt động mà không cần truy cập từ xa, ghi chú của bạn sẽ không thể đồng bộ với máy chủ cho đến khi bạn trở lại cùng mạng. Trong khi những người khác có thể sử dụng Git hoặc Syncthing để đồng bộ ghi chú, đây là tùy chọn tốt nhất mà 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í Dành Cho Bạn
CouchDB là một cơ sở dữ liệu NoSQL mã nguồn mở, định hướng tài liệu, trong đó mỗi phiên bản của một tài liệu đều được quản lý. Đố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 đó để chèn ngược lại vào Obsidian. Kết quả là một hệ thống có thể nói là tốt hơn Obsidian Sync, trong khi hoàn toàn miễn phí và tận dụng phần cứng của chính bạn để thực hiện.
LiveSync có 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, và thậm chí còn hoạt động tốt trên thiết bị di động. Tôi đã thiết lập nó trên điện thoại, laptop và PC của mình, và ghi chú của tôi xuất hiện tức thì trên tất cả các thiết bị ngay khi 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 cực kỳ dễ dàng, và đây là một trong những lợi ích lớn nhất mà máy chủ cá nhân của tôi mang lại. Khi tôi cần ghi chú khi ra ngoài, tôi sẽ sử dụng Blinko hoặc thêm vào một ghi chú hiện có bằng Obsidian, và bằng cách nào đi nữa, tôi đều có thể xem những gì đã thêm trên PC hoặc laptop của mình.
Đối với người dùng Obsidian, đây là một giải pháp không thể bỏ qua. Nó miễn phí, được tự host, và trên TrueNAS, bạn có thể dễ dàng tích hợp nó như một phần của giải pháp sao lưu đám mây nếu muốn. Tôi đang sử dụng Dockge để triển khai container Docker chạy 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 Chi Tiết
Các Bước Cấu Hình Quan Trọng Nhất
Đầu tiên và quan trọng nhất, việc này có thể thực hiện được nhờ bài đăng của /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” của tệp compose. Trên TrueNAS với Dockge, tôi đã tạo một dataset để lưu trữ các tệp CouchDB và sửa đổi phần volumes để trỏ đến chúng. Trong trường hợp của tôi, volumes 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
Tôi đã xóa phần labels và cũng đặt PUID và UID thành 1000 và 1000.
Sau khi container của bạn đã hoạt động, bạn có thể truy cập CouchDB bằng cách vào http://<IP_hoặc_Domain_của_server>:5984/_utils
, và sau đó đăng nhập bằng thông tin xác thự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 bạn đăng nhập, mặc dù bạn rõ ràng sẽ chưa có tất cả các cơ sở dữ liệu như tôi. Hãy vào thanh bên trái và nhấp vào Setup. Chọn Configure as single node và sau đó nhập lại thông tin xác thực giống như trong tệp Docker Compose của bạn. Bạn có thể xác minh cài đặt của mình, và giả sử bạn đã làm đúng mọi thứ, nó sẽ hiển thị thông báo thành công.
Giao diện trang chủ CouchDB sau khi đăng nhập thành công, hiển thị các cơ sở dữ liệu.
Tiếp theo, hãy tạo cơ sở dữ liệu. Bạn sẽ muố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 tôi, 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 giữa các cơ sở dữ liệu 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 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ừ tập lệnh 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, 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ể vào phần CORS ở bên trái cấu hình của mì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ữ nguyên.
Cửa sổ tạo cơ sở dữ liệu mới trong CouchDB, với tùy chọn đặt tên và loại phân vùng.
Tích Hợp LiveSync Plugin Vào 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ể vào cấu hình. Mặc dù có tùy chọn Connect with setup URI, nhưng nó không hoạt động với tôi, và 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. Đả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 đúng, 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 (end-to-end encryption) bằng một cụm mật khẩu, mà tôi đã bật trên phiên bản của mình.
Cấu hình plugin LiveSync trong Obsidian, cho phép người dùng nhập thông tin CouchDB server để kết nối.
Cuối cùng, hãy vào 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 gõ, dữ liệu của bạn sẽ được đồng bộ hóa với máy chủ CouchDB để sau đó nó có thể được 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. Tôi chỉ gặp một vấn đề mà tôi không thực sự tìm ra nguyên nhân, nhưng giải pháp đơn giản là khởi động lại container CouchDB. 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 tôi khá hài lòng với hiệu suất và độ ổn định của thiết lập cụ thể này.
Đồng Bộ Ghi Chú Obsidian Không Còn Là Vấn Đề Khó Khăn
Đa Dạng Các Lựa Chọn Đồng Bộ
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, bạn có thể sử dụng Syncthing, và bạn thậm chí có thể làm điều gì đó đơn giản hơn một chút thông qua một công cụ như Google Drive. Tuy nhiên, tôi thích tính năng “live” của công cụ cụ thể này, và thực tế là tôi có thể viết trên điện thoại và nó ngay lập tức có thể truy cập trên laptop hoặc PC của tôi. Có thể sẽ tốn nhiều thời gian thiết lập hơn 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 tôi không bận tâm đến lượng thời gian đã bỏ ra, với những gì tôi nhận được.
Biểu tượng Obsidian và các công cụ ghi chú khác, minh họa sự đa dạng trong quản lý ghi chú và khả năng đồng bộ.
Đây cũng là lý do tại sao tôi yêu thích Obsidian, vì mức độ kiểm soát được cấp cho người dùng 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 để làm hài lòng 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 này đã làm cho nó trở nên tốt hơn nữa đối với tôi.
Việc tự host giải pháp đồng bộ ghi chú Obsidian bằng CouchDB và plugin LiveSync không chỉ là một lựa chọn tiết kiệm chi phí mà còn mang lại cho bạn toàn quyền kiểm soát dữ liệu của mình. Với khả năng đồng bộ tức thì trên mọi thiết bị và độ ổn định đã được kiểm chứng, đây chắc chắn là một cải tiến đáng giá cho trải nghiệm Obsidian của bạn. Nó một lần nữa khẳng định rằng Obsidian không chỉ là một công cụ ghi chú mà còn là một nền tảng linh hoạt, cho phép người dùng tùy chỉnh và mở rộng không giới hạn.
Bạn đã thử cách nào để đồng bộ ghi chú Obsidian chưa? Hãy chia sẻ ý kiến và kinh nghiệm của bạn về giải pháp tự host này, hoặc các phương pháp khác mà bạn thấy hiệu quả trong phần bình luận bên dưới nhé!