1 điểm bởi GN⁺ 2025-03-03 | 1 bình luận | Chia sẻ qua WhatsApp
  • Thiết lập máy chủ Firefox Sync tự host

    • Sau khi chuyển từ Firefox sang LibreWolf, tác giả bắt đầu quan tâm đến việc tự host máy chủ Firefox Sync.
    • Ban đầu, tác giả tìm thấy kho lưu trữ Sync Server của Mozilla nhưng nó đã ở trạng thái ngừng bảo trì.
    • Tác giả quyết định chuyển sang syncstorage-rs dựa trên Rust để tiếp tục.
  • Sự phức tạp và rối rắm của Docker

    • Trong tài liệu Docker có những phần gây bối rối như vấn đề khớp phiên bản grpcioprotobuf, cùng các chỉ dẫn sao chép thủ công.
    • Tác giả phát hiện kho syncstorage-rs-docker và nhờ đó tìm được cách thiết lập Docker đơn giản hơn.
  • Cấu hình máy chủ: Docker Compose và MariaDB

    • Tác giả thêm các dịch vụ cần thiết vào tệp docker-compose.yaml.
    • Khi đặt mật khẩu cơ sở dữ liệu, điều quan trọng là tránh dùng ký tự đặc biệt.
    • Tác giả chạy container MariaDB và thực thi script khởi tạo để khởi tạo cơ sở dữ liệu.
    • Toàn bộ stack sau đó được đưa lên hoạt động.
  • Cấu hình reverse proxy bằng Caddy

    • Tác giả cập nhật reverse proxy Caddy để trỏ tới Syncserver mới.
    • Tác giả cập nhật bản ghi DNS và khởi động lại proxy để đưa máy chủ vào chạy.
  • Những thách thức đã gặp phải

    • Phát sinh vấn đề về tính bền vững dữ liệu khi khởi động lại container MariaDB.
    • Máy chủ bị thiếu dung lượng lưu trữ do image Docker và các tệp trung gian.
    • Việc tìm ra đúng các bước cấu hình đã tốn khá nhiều thời gian.
  • Suy nghĩ cuối cùng

    • Việc thiết lập máy chủ Firefox Sync tự host không phải là công việc dễ dàng.
    • Tài liệu chính thức khá rối, nhưng nhờ kho syncstorage-rs-docker mà việc này trở nên khả thi.
    • Mất khoảng 2 giờ, nhưng hoàn toàn xứng đáng.

1 bình luận

 
GN⁺ 2025-03-03
Ý kiến trên Hacker News
  • Đây là cấu hình sử dụng hạ tầng của Mozilla để hỗ trợ các dịch vụ như xác thực, email, metadata tài khoản, v.v.
  • Nếu có thể di chuyển tài khoản thì sau này có thể kết nối vào đây, và cũng có thể tự host toàn bộ các thành phần, nhưng sẽ phức tạp hơn một chút
    • Tài liệu và trải nghiệm phát triển đang được cải thiện
  • Garuda Linux đang tự host máy chủ Firefox Sync riêng cho trình duyệt FireDragon
    • Hiện đang dùng phiên bản máy chủ sync cũ, không dựa trên Rust
  • Chia sẻ trải nghiệm cá nhân và nhắc rằng phiên bản cũ viết bằng Python 2 tốt hơn nhiều
    • Không cần Docker hay Python, nhưng hiện tại cần MySQL, và đang có tình nguyện viên hỗ trợ cho SQLite
    • Các cộng tác viên chính đang tập trung vào việc viết phần biện minh cho thu thập metric và đưa vào framework metric mới
  • Canvas Browser Extensions nhắm tới việc đồng bộ các tab trình duyệt vào một cây thư mục ảo tự host
    • Sử dụng chỉ mục lmdb và roaring bitmap, và nhìn lại thì lẽ ra nên dùng rxdb hoặc pouchdb
    • Thành phần máy chủ đang được viết lại, và với các công cụ mới, giới hạn lớn nhất của ý tưởng này là thời gian
  • Vẫn tin tưởng Mozilla để giao dữ liệu, nhưng việc cấu hình xác thực khá phức tạp nên có thể dùng dịch vụ host công khai sẽ tốt hơn
  • Floccus, tương tự Firefox Sync, sẽ dễ thiết lập hơn nếu chỉ cần đồng bộ bookmark và tab
  • MySQL và Spanner hiện là các engine DB được hỗ trợ, còn hỗ trợ SQLite và Postgres đang được triển khai
    • Với instance nhiều người dùng, lưu trữ bằng Postgres có thể sẽ tốt hơn
  • Đặt câu hỏi rằng khi Firefox Sync đã được mã hóa E2E thì lợi ích về quyền riêng tư là gì
  • Giải pháp tự host có vẻ quá phức tạp, và lý tưởng nhất là một triển khai máy chủ đồng bộ đơn giản dùng SQLite
  • go-syncstorage chưa được triển khai hoàn toàn, nhưng đã được thử nghiệm với hàng trăm nghìn người dùng và khá ổn định