1 คะแนน โดย GN⁺ 2025-03-03 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • การตั้งค่าเซิร์ฟเวอร์ Firefox Sync แบบโฮสต์เอง

    • หลังจากเปลี่ยนจาก Firefox ไปใช้ LibreWolf ก็เริ่มสนใจเซิร์ฟเวอร์ Firefox Sync แบบโฮสต์เอง
    • ตอนแรกพบคลังเก็บ Sync Server ของ Mozilla แต่พบว่าอยู่ในสถานะหยุดบำรุงรักษาแล้ว
    • จึงตัดสินใจเปลี่ยนไปใช้ syncstorage-rs ที่พัฒนาด้วย Rust
  • ความซับซ้อนและความสับสนของ Docker

    • ในเอกสารของ Docker มีจุดที่ชวนสับสน เช่น ปัญหาการให้เวอร์ชัน grpcio และ protobuf ตรงกัน และคำสั่งให้คัดลอกไฟล์ด้วยตนเอง
    • จากนั้นพบคลังเก็บ syncstorage-rs-docker จึงเจอการตั้งค่า Docker ที่ง่ายกว่า
  • การตั้งค่าเซิร์ฟเวอร์: Docker Compose และ MariaDB

    • เพิ่มบริการที่จำเป็นลงในไฟล์ docker-compose.yaml
    • ตอนตั้งรหัสผ่านฐานข้อมูล สิ่งสำคัญคือควรหลีกเลี่ยงอักขระพิเศษ
    • รันคอนเทนเนอร์ MariaDB และรันสคริปต์เริ่มต้นเพื่อเตรียมฐานข้อมูล
    • นำสแตกทั้งหมดขึ้นออนไลน์
  • การตั้งค่า Reverse Proxy ด้วย Caddy

    • อัปเดต Caddy reverse proxy ให้ชี้ไปยัง Syncserver ตัวใหม่
    • อัปเดตรายการ DNS และรีสตาร์ตพร็อกซีเพื่อให้เซิร์ฟเวอร์ทำงาน
  • ความท้าทายที่พบ

    • พบปัญหาการคงอยู่ของข้อมูลเมื่อรีสตาร์ตคอนเทนเนอร์ MariaDB
    • พบปัญหาพื้นที่เก็บข้อมูลบนเซิร์ฟเวอร์ไม่พอเนื่องจาก Docker image และไฟล์ชั่วคราว
    • ใช้เวลาพอสมควรกว่าจะหาเจอขั้นตอนการตั้งค่าที่ถูกต้อง
  • ความเห็นส่งท้าย

    • การตั้งค่าเซิร์ฟเวอร์ Firefox Sync แบบโฮสต์เองไม่ใช่งานที่ง่าย
    • เอกสารทางการค่อนข้างสับสน แต่ก็ทำได้สำเร็จด้วยความช่วยเหลือจากคลังเก็บ syncstorage-rs-docker
    • ใช้เวลาประมาณ 2 ชั่วโมง แต่ก็คุ้มค่า

1 ความคิดเห็น

 
GN⁺ 2025-03-03
ความคิดเห็นจาก Hacker News
  • เป็นการตั้งค่าที่ใช้โครงสร้างพื้นฐานของ Mozilla เพื่อรองรับบริการต่าง ๆ เช่น การยืนยันตัวตน อีเมล และเมตาดาต้าของบัญชี
  • หากสามารถย้ายบัญชีได้ ก็สามารถเชื่อมต่อสิ่งนี้ในภายหลังได้ และยังสามารถโฮสต์ทุกองค์ประกอบเองทั้งหมดได้เช่นกัน แต่จะซับซ้อนขึ้นเล็กน้อย
    • เอกสารและประสบการณ์ฝั่งนักพัฒนากำลังได้รับการปรับปรุง
  • Garuda Linux กำลังโฮสต์เซิร์ฟเวอร์ Firefox Sync ของตนเองสำหรับเบราว์เซอร์ FireDragon
    • กำลังใช้เซิร์ฟเวอร์ sync รุ่นเก่าที่ไม่ได้พัฒนาด้วย Rust
  • มีการแชร์ประสบการณ์ส่วนตัว โดยระบุว่าเวอร์ชันก่อนหน้าที่เขียนด้วย Python 2 ดีกว่ามาก
    • ไม่ต้องใช้ Docker หรือ Python แต่ตอนนี้ต้องใช้ MySQL และมีอาสาสมัครที่กำลังทำการรองรับ sqlite
    • ผู้มีส่วนร่วมหลักกำลังมุ่งเน้นไปที่การเขียนเหตุผลความจำเป็นสำหรับการเก็บเมตริก และการนำเฟรมเวิร์กเมตริกใหม่มาใช้
  • Canvas Browser Extensions มีเป้าหมายเพื่อซิงก์แท็บเบราว์เซอร์ไปยังโครงสร้างต้นไม้ไดเรกทอรีเสมือนที่โฮสต์เอง
    • ใช้ดัชนี lmdb และ roaring bitmap และมองย้อนกลับไปว่าควรใช้ rxdb หรือ pouchdb มากกว่า
    • องค์ประกอบฝั่งเซิร์ฟเวอร์กำลังถูกเขียนใหม่ และด้วยเครื่องมือใหม่ ข้อจำกัดที่ใหญ่ที่สุดของไอเดียนี้จึงกลายเป็นเวลา
  • ไว้วางใจ Mozilla ให้ดูแลข้อมูล แต่การตั้งค่าการยืนยันตัวตนซับซ้อน จึงอาจดีกว่าหากใช้บริการโฮสต์สาธารณะ
  • Floccus ซึ่งคล้ายกับ Firefox Sync นั้นตั้งค่าได้ง่ายกว่า หากต้องการเพียงการซิงก์บุ๊กมาร์กและแท็บ
  • MySQL และ Spanner เป็นเอนจินฐานข้อมูลที่รองรับอยู่ในปัจจุบัน และกำลังมีความพยายามเพื่อรองรับ sqlite และ Postgres
    • อินสแตนซ์แบบหลายผู้ใช้อาจเหมาะกว่าหากจัดเก็บผ่าน Postgres
  • มีคำถามว่า Firefox Sync เข้ารหัสแบบ E2E อยู่แล้ว แล้วข้อได้เปรียบด้านความเป็นส่วนตัวคืออะไร
  • โซลูชันโฮสต์เองดูซับซ้อนเกินไป และการมีเซิร์ฟเวอร์ซิงก์แบบเรียบง่ายที่ใช้ SQLite จะเป็นสิ่งที่เหมาะอย่างยิ่ง
  • go-syncstorage ยังไม่ได้นำไปใช้งานเต็มรูปแบบ แต่ได้ทดสอบกับผู้ใช้หลายแสนคนแล้วและมีความเสถียร