Tôi đang phát triển Synch, một plugin đồng bộ mã nguồn mở cho Obsidian.
Tôi bắt đầu dự án này với câu hỏi liệu có thể tạo ra trải nghiệm như Obsidian Sync theo hướng mã nguồn mở hay không.
Mục tiêu là một giải pháp thay thế Obsidian Sync có thể tự triển khai, với đồng bộ nhanh, E2EE, lịch sử phiên bản và khả năng tự triển khai.
Vì đây là plugin Obsidian, nên không phải cài thêm ứng dụng riêng mà có thể dùng ngay trên môi trường desktop/mobile nơi Obsidian đang chạy.
Các tính năng hiện đang được hỗ trợ như sau.
- Mã hóa cục bộ nội dung tệp và metadata đường dẫn trước khi tải lên
- Đồng bộ thay đổi giữa nhiều thiết bị chỉ trong vài giây
- Lịch sử phiên bản
- Khôi phục tệp đã xóa
- Tự động hợp nhất khi xảy ra xung đột tệp
Về mặt kỹ thuật, nó chạy trên Cloudflare Workers + Durable Objects + R2.
- Ở phía client, nội dung tệp và metadata đường dẫn được mã hóa trước khi tải lên.
- Server chỉ lưu blob đã mã hóa và metadata đồng bộ.
- Durable Objects được dùng để quản lý trạng thái đồng bộ theo từng vault và thứ tự thay đổi.
- Nội dung tệp và lịch sử phiên bản được lưu trên R2.
Đối với những ai muốn tự triển khai, tôi cũng đã chuẩn bị sẵn tính năng triển khai một cú nhấp có thể chạy bằng tài khoản Cloudflare miễn phí.
Những ai thấy việc triển khai phiền phức có thể thử nhanh trước bằng hosted server.
GitHub: https://github.com/hjinco/synch
13 bình luận
Mình đã xem hướng dẫn tự host, đăng ký Cloudflare và bật R2 rồi, có vẻ là đã làm y hệt theo hướng dẫn, nhưng vẫn không đồng bộ được.. hu hu Không biết mình đã làm sai chỗ nào
Ồ.. tôi đã tự hỏi không biết họ làm thế nào, thấy hay đấy! Chỉ là nó bị gắn với Cloudflare nên hơi! tiếc một chút. haha
Trước đây tôi dùng Google Drive/DriveSync nhưng vẫn thấy hơi thiếu ổn, (dữ liệu mới nhất bị thiết bị khác ghi đè mất.. hoặc phát sinh xung đột..) nên đang cân nhắc Obsidian Sync, chắc phải thử một lần mới được! Cảm ơn bạn.
Tôi đã tạo tài khoản bằng self-hosting nhưng lại không thể đăng nhập bằng chính tài khoản đó.
Có lẽ là do tôi lỡ quên mật khẩu thôi^^
Nhưng hình như không có cách nào để đặt lại mật khẩu.
Bất đắc dĩ nên tôi đang xóa hết github repo, workers rồi thiết lập lại từ đầu.
Lần này kỳ lạ là khi đăng ký thì lại báo tài khoản đã tồn tại..
Khi tạo workers thì d1 và r2 cũng được tạo tự động, nên có lẽ bạn sẽ phải xóa cả d1 và r2 đang được liên kết nữa.
Tôi đã làm theo như bạn hướng dẫn và đã giải quyết được. Cảm ơn bạn.
Tự host cũng phải trả phí à?
Không, chỉ cần có tài khoản Cloudflare là được. Xem hướng dẫn tại https://synch.run/ko/self-hosting.
Ồ~ trông độ hoàn thiện có vẻ khá tốt đấy.
Nhưng khi tôi tạo một vault từ xa và đồng bộ trên 2 thiết bị, thì trong cây thư mục của mỗi bên lại xuất hiện thêm một vault nữa, và bên dưới nó cây thư mục gốc lại bị nhân đôi. Vốn dĩ là nó hoạt động như vậy sao?
Vốn dĩ đó không phải là hành vi diễn ra như vậy.
Hiện tượng đó chưa được tái hiện ở phía tôi hoặc các beta tester, nhưng nếu bạn thấy ổn thì vui lòng gửi email tới contact@synch.run hoặc để lại GitHub issue. Tôi sẽ kiểm tra chi tiết hơn và hỗ trợ bạn.
Tôi định xóa vault nhưng có vẻ đã xảy ra lỗi.
Xóa thất bại - quá trình purge của coordinator thất bại với trạng thái 500
Khác gì so với Obsidian LiveSync?
LiveSync dựa trên CouchDB nên có thể self-hosting linh hoạt hơn, trong khi Synch có kiến trúc phụ thuộc vào Cloudflare.
Đổi lại, chúng tôi tập trung vào việc giúp cả những người không biết cách thiết lập máy chủ cũng có thể triển khai chỉ với một nút bấm và dùng ngay, miễn là có tài khoản Cloudflare miễn phí.