1 Punkte von GN⁺ 2025-03-03 | 1 Kommentare | Auf WhatsApp teilen
  • Ein selbst gehostetes Firefox-Sync-Server-Setup

    • Nach dem Wechsel von Firefox zu LibreWolf entstand Interesse an einem selbst gehosteten Firefox-Sync-Server.
    • Zunächst wurde das Sync-Server-Repository von Mozilla gefunden, es wurde jedoch nicht mehr gepflegt.
    • Daher fiel die Entscheidung, stattdessen mit dem Rust-basierten syncstorage-rs weiterzumachen.
  • Die Komplexität und Verwirrung rund um Docker

    • In der Docker-Dokumentation gab es verwirrende Stellen, etwa Probleme mit passenden Versionen von grpcio und protobuf sowie Anweisungen zum manuellen Kopieren.
    • Mit dem Fund des Repositories syncstorage-rs-docker wurde eine einfachere Docker-Konfiguration möglich.
  • Server-Einrichtung: Docker Compose und MariaDB

    • Dem docker-compose.yaml-File wurden die benötigten Dienste hinzugefügt.
    • Beim Setzen des Datenbankpassworts ist es wichtig, Sonderzeichen zu vermeiden.
    • Der MariaDB-Container wurde gestartet und das Datenbankschema mit einem Initialisierungsskript eingerichtet.
    • Danach wurde der gesamte Stack online gebracht.
  • Reverse-Proxy-Konfiguration mit Caddy

    • Der Caddy-Reverse-Proxy wurde aktualisiert, damit er auf den neuen Syncserver zeigt.
    • Durch das Aktualisieren des DNS-Eintrags und einen Neustart des Proxys wurde der Server in Betrieb genommen.
  • Aufgetretene Herausforderungen

    • Beim Neustart des MariaDB-Containers traten Probleme mit der Datenpersistenz auf.
    • Durch Docker-Images und temporäre Dateien wurde der Speicherplatz auf dem Server knapp.
    • Es dauerte eine Weile, die richtigen Einrichtungsschritte zu finden.
  • Abschließende Gedanken

    • Das Einrichten eines selbst gehosteten Firefox-Sync-Servers ist keine einfache Aufgabe.
    • Die offizielle Dokumentation war verwirrend, aber dank des Repositories syncstorage-rs-docker war es dennoch möglich.
    • Es dauerte etwa zwei Stunden, aber es hat sich gelohnt.

1 Kommentare

 
GN⁺ 2025-03-03
Hacker-News-Kommentare
  • Es handelt sich um eine Konfiguration, die Mozilla-Infrastruktur nutzt, um Dienste wie Authentifizierung, E-Mail und Konto-Metadaten zu unterstützen.
  • Wenn eine Kontomigration möglich ist, kann man das später anbinden; es ist auch möglich, alle Komponenten selbst zu hosten, allerdings ist das etwas komplexer.
    • Die Dokumentation und die Developer Experience werden verbessert.
  • Garuda Linux hostet einen eigenen Firefox-Sync-Server für den FireDragon-Browser.
    • Dabei wird eine ältere Version des Sync-Servers verwendet, die nicht auf Rust basiert.
  • Jemand teilt persönliche Erfahrungen und erwähnt, dass die frühere, in Python 2 geschriebene Version deutlich besser gewesen sei.
    • Dafür werden weder Docker noch Python benötigt, derzeit aber MySQL; außerdem gibt es einen Freiwilligen für SQLite-Unterstützung.
    • Die Hauptbeitragenden konzentrieren sich darauf, eine Begründung für das Sammeln von Metriken zu verfassen und ein neues Metrik-Framework einzuführen.
  • Canvas Browser Extensions zielt darauf ab, Browser-Tabs in einen selbst gehosteten virtuellen Verzeichnisbaum zu synchronisieren.
    • Dabei werden lmdb und Roaring-Bitmap-Indizes verwendet; rückblickend meint man, man hätte rxdb oder pouchdb verwenden sollen.
    • Die Serverkomponente wird derzeit neu geschrieben, und durch die neuen Tools ist der größte begrenzende Faktor für die Idee nun die Zeit.
  • Man vertraut Mozilla seine Daten an, aber da die Einrichtung der Authentifizierung komplex ist, könnte die Nutzung des öffentlich gehosteten Dienstes besser sein.
  • Floccus, das Firefox Sync ähnelt, ist einfacher einzurichten, wenn man nur Lesezeichen- und Tab-Synchronisierung braucht.
  • MySQL und Spanner sind derzeit die unterstützten DB-Engines; es wird an Unterstützung für SQLite und Postgres gearbeitet.
    • Eine Multi-User-Instanz lässt sich möglicherweise besser mit Postgres speichern.
  • Es wird gefragt, worin der Datenschutzvorteil besteht, wenn Firefox Sync bereits E2E-verschlüsselt ist.
  • Die Self-Hosting-Lösung wirkt zu komplex; ideal wäre eine einfache Implementierung eines Sync-Servers mit SQLite.
  • go-syncstorage ist noch nicht vollständig ausgerollt, wurde aber mit Hunderttausenden Nutzern getestet und ist stabil.