กำลังพัฒนาปลั๊กอินซิงก์โอเพนซอร์สสำหรับ Obsidian ชื่อ Synch
เริ่มต้นโปรเจ็กต์นี้จากคำถามว่า จะสามารถสร้างประสบการณ์แบบ Obsidian Sync ด้วยโอเพนซอร์สได้หรือไม่
เป้าหมายคือเป็นทางเลือกแทน Obsidian Sync ที่รองรับการซิงก์อย่างรวดเร็ว, E2EE, ประวัติเวอร์ชัน และสามารถนำไป deploy เองได้
เนื่องจากมาในรูปแบบปลั๊กอินของ Obsidian จึงไม่ใช่วิธีที่ต้องติดตั้งแอปแยกต่างหาก แต่สามารถใช้งานได้ในสภาพแวดล้อมเดสก์ท็อป/มือถือที่ Obsidian ทำงานอยู่
ขณะนี้รองรับฟีเจอร์ดังต่อไปนี้
- เข้ารหัสเนื้อหาไฟล์และเมทาดาทาเส้นทางไฟล์บนเครื่องก่อนอัปโหลด
- ซิงก์การเปลี่ยนแปลงระหว่างหลายอุปกรณ์ได้ภายในไม่กี่วินาที
- ประวัติเวอร์ชัน
- กู้คืนไฟล์ที่ลบไปแล้ว
- รวมไฟล์อัตโนมัติเมื่อเกิดการชนกันของไฟล์
ในเชิงเทคนิค ระบบทำงานบน Cloudflare Workers + Durable Objects + R2
- เข้ารหัสเนื้อหาไฟล์และเมทาดาทาเส้นทางไฟล์ที่ฝั่งไคลเอนต์ก่อนอัปโหลด
- เซิร์ฟเวอร์จะเก็บเฉพาะ blob ที่เข้ารหัสแล้วและเมทาดาทาสำหรับการซิงก์
- ใช้ Durable Objects เพื่อจัดการสถานะการซิงก์และลำดับการเปลี่ยนแปลงในระดับ vault
- เนื้อหาไฟล์และประวัติเวอร์ชันจะถูกเก็บไว้ใน R2
สำหรับผู้ที่อยากลอง deploy เอง ได้เตรียม one-click deployment ที่สามารถนำไป deploy ด้วยบัญชี Cloudflare ฟรีไว้แล้ว
ส่วนผู้ที่ไม่สะดวกกับการ deploy ก็สามารถทดลองใช้งานแบบง่าย ๆ ได้ก่อนผ่าน hosted server
GitHub: https://github.com/hjinco/synch
13 ความคิดเห็น
ฉันดูคู่มือ self-hosting แล้ว สมัคร Cloudflare เปิดใช้งาน R2 และทำตามเหมือนกันทุกอย่างแล้ว
แต่ซิงก์ไม่ได้เลย.. ฮือๆ ไม่รู้ว่าผิดตรงไหน
โอ้.. ตอนแรกก็สงสัยว่าเขาทำกันยังไง แต่ดีเลยครับ! แอบเสียดายนิดหน่อยที่ทั้งหมดผูกกับ Cloudflare อยู่ ฮ่าๆ
ก่อนหน้านี้ผมใช้ Google Drive/DriveSync อยู่แล้วรู้สึกว่ายังมีอะไรขาด ๆ อยู่ (อย่างเช่นข้อมูลล่าสุดถูกอุปกรณ์อื่นทำหายไปบ้าง.. หรือเกิดการชนกันบ้าง..) ก็เลยกำลังคิดเรื่อง Obsidian Sync อยู่ คงต้องลองใช้ดูสักครั้งแล้วครับ! ขอบคุณครับ
ฉันสร้างบัญชีแบบ self-hosted ไว้ แต่ตอนนี้กลับล็อกอินด้วยบัญชีเดิมไม่ได้
คงเป็นความผิดพลาดที่ฉันลืมรหัสผ่านเองนี่แหละ ^^
แต่ดูเหมือนจะไม่มีวิธีรีเซ็ตรหัสผ่านเลย
สุดท้ายเลยต้องลบทั้ง GitHub repo และ workers แล้วตั้งค่าใหม่ทั้งหมด
แต่คราวนี้แปลกตรงที่ตอนสมัครสมาชิกกลับขึ้นว่ามีบัญชีนี้อยู่แล้ว..
ตอนสร้าง workers ระบบจะสร้าง d1 และ r2 ให้อัตโนมัติด้วย ดังนั้นน่าจะต้องลบ d1 และ r2 ที่เชื่อมต่ออยู่ด้วยครับ
ฉันทำตามที่คุณบอกแล้วและแก้ปัญหาได้ ขอบคุณนะครับ
ถ้าโฮสต์เองก็ยังต้องเสียเงินด้วยเหรอ?
ไม่ครับ แค่มีบัญชี Cloudflare ก็พอ ดูคู่มือได้ที่ https://synch.run/ko/self-hosting
โอ้~ ดูเหมือนว่าทำออกมาได้สมบูรณ์พอสมควรเลยนะครับ
แต่พอลองสร้าง remote vault แล้วซิงก์บนอุปกรณ์ 2 เครื่อง กลับมี vault เพิ่มขึ้นมาอีกอันในแต่ละโฟลเดอร์ทรี แล้วภายใต้ vault นั้นก็มีโฟลเดอร์ทรีเดิมซ้ำขึ้นมา แบบนี้เป็นปกติอยู่แล้วหรือเปล่าครับ?
เดิมทีไม่ได้เป็นพฤติกรรมที่ควรจะเกิดขึ้นแบบนั้น
ปรากฏการณ์นั้นทั้งผมและผู้ทดสอบเบต้ายังไม่สามารถทำให้เกิดซ้ำได้ แต่ถ้าสะดวก รบกวนส่งอีเมลมาที่ contact@synch.run หรือเปิด GitHub issue ไว้ได้เลยครับ/ค่ะ ผมจะตรวจสอบเพิ่มเติมอย่างละเอียดและช่วยเหลือให้ครับ/ค่ะ
พยายามลบ vault แต่เกิดข้อผิดพลาดขึ้นครับ
ลบไม่สำเร็จ - การล้างข้อมูลของ coordinator ล้มเหลวโดยมีสถานะ 500
ต่างจาก Obsidian LiveSync อย่างไร?
LiveSync ใช้ CouchDB เป็นฐาน จึงสามารถ self-hosting ได้อเนกประสงค์กว่ามาก ขณะที่ Synch เป็นโครงสร้างที่ผูกติดกับ Cloudflare
แต่แทนที่จะเป็นแบบนั้น เราโฟกัสกับการทำให้คนที่ตั้งค่าเซิร์ฟเวอร์ไม่เป็น แค่มีบัญชี Cloudflare แบบฟรีก็สามารถกดปุ่มเดียวเพื่อ deploy แล้วใช้งานได้ทันที