Neuer Firefox-Syncserver (Rust) in Docker mit MariaDB-Datenbank

Kurze Frage hier in den Thread. Ich habe einen Sync Server mittels den Paketen auf https://synocommunity.com/ aufgesetzt. Der Server läuft war, aber leider funktioniert der Sync nicht. Ich meine es müssten im Client ja auch Credentials des eigenen Sync Servers hinterlegt werden und nicht nur die URL. Wie konfiguriert ihr die Clients bei eurer Docker-Lösung?
 
  • Like
Reaktionen: zotac94
Die Anmeldung läuft auch in diesem Fall über den Mozilla-Account. Nur die eigentlich Daten liegen dann beim eigenen Sync-Server.

Was im Browser konfiguriert werden muss, siehst du im ersten Post, dort siehst du auch, wie du testen kannst, ob der Server korrekt arbeitet.

Ich kann aber nicht sagen, wie das mit dem von dir verwendeten Paket ist.

Das Paket setzt aber auch auf dem aktuellen Rust-Syncserver auf, nicht auf dem alten?
 
Hallo Adama,

danke für den Hinweis. Auf welchem Sever das Paket aufsetzt weiss ich nicht, aber da es vom 2024-11-25 12:36:21 ist dachte ich, dass es nicht wirklich alt ist.

Korrekt der Auth läuft über den normalen Mozilla Account. Die Daten sollen dann auf dem NAS liegen.
Der Server scheint zu laufen und erkannt zu werden. Der Sync-Token wird auch abgeholt. Aus dem Rest werde ich noch nicht ganz schlau. Hab das Log mal angefügt.

1737748065044 Sync.LogManager DEBUG Flushing file log
1737748065045 Sync.RemoteTabs INFO Generating tab list with filter
1737748065049 Sync.RemoteTabs INFO Generating tab list with filter
1737748065050 FirefoxAccounts TRACE not checking freshness of profile as it remains recent
1737748065051 FirefoxAccounts TRACE not checking freshness of profile as it remains recent
1737748065051 FirefoxAccounts TRACE not checking freshness of profile as it remains recent
1737748065051 FirefoxAccounts TRACE not checking freshness of profile as it remains recent
1737748065065 Sync.RemoteTabs INFO Final tab list has 0 clients with 0 tabs.
1737748065066 Sync.RemoteTabs INFO Final tab list has 0 clients with 0 tabs.
1737748065067 Sync.LogManager DEBUG Log cleanup threshold time: 1736884065067
1737748065070 Sync.LogManager DEBUG Done deleting files.
1737748108562 Sync.Engine.Tabs.Tracker DEBUG Detected a tab change, but conditions aren't met for a quick write - bumping score
1737748109761 Sync.Engine.Tabs.Tracker DEBUG Detected a tab change, but conditions aren't met for a quick write or a score bump
1737748111367 Sync.RemoteTabs INFO Doing a tab sync.
1737748111367 Sync.Service DEBUG User-Agent: Firefox/134.0.2 (Windows NT 10.0; Win64; x64) FxSync/1.136.0.20250120135430.desktop
1737748111367 Sync.Service INFO Starting sync at 2025-01-24 20:48:31 in browser session zsCQE_zn52g9
1737748111367 Sync.Service DEBUG In sync: should login.
1737748111367 Sync.Service INFO User logged in successfully - verifying login.
1737748111367 Sync.RemoteTabs INFO Generating tab list with filter
1737748111372 FirefoxAccounts TRACE not checking freshness of profile as it remains recent
1737748111373 Sync.SyncAuthManager DEBUG unlockAndVerifyAuthState already has (or can fetch) sync keys
1737748111373 Sync.Status DEBUG Status.login: error.login.reason.network => success.status_ok
1737748111373 Sync.Status DEBUG Status.service: error.login.failed => error.login.failed
1737748111373 Sync.Service DEBUG Fetching unlocked auth state returned success.status_ok
1737748111373 FirefoxAccounts TRACE not checking freshness of profile as it remains recent
1737748111373 Sync.SyncAuthManager INFO Getting sync key
1737748111373 FirefoxAccounts DEBUG getOAuthToken enter
1737748111373 FirefoxAccounts TRACE getCachedToken returning cached token
1737748111373 FirefoxAccounts DEBUG getOAuthToken returning a cached token
1737748111373 Sync.SyncAuthManager INFO Getting a sync token from: http://192.168.2.104:8132/1.0/sync/1.5
1737748111373 Sync.SyncAuthManager DEBUG Getting a token using OAuth
1737748111373 Services.Common.TokenServerClient DEBUG Beginning OAuth token exchange: http://192.168.2.104:8132/1.0/sync/1.5
1737748111374 Services.Common.RESTRequest DEBUG GET request to http://192.168.2.104:8132/1.0/sync/1.5
1737748111380 Sync.RemoteTabs INFO Final tab list has 0 clients with 0 tabs.
1737748138388 Sync.Engine.Tabs.Tracker DEBUG Detected a tab change, but conditions aren't met for a quick write or a score bump
1737748141393 Services.Common.RESTRequest DEBUG GET http://192.168.2.104:8132/1.0/sync/1.5 500
1737748141393 Services.Common.TokenServerClient DEBUG Got token response: 500
1737748141393 Services.Common.TokenServerClient INFO Server-reported error: {"location":"internal","name":"","description":"Server error"}
1737748141393 Sync.SyncAuthManager ERROR Non-authentication error in _fetchTokenForUser: TokenServerClientServerError({"now":"2025-01-24T19:49:01.393Z","message":"Server error.","cause":"general","response_body":"{\"status\":\"internal-error\",\"errors\":[{\"location\":\"internal\",\"name\":\"\",\"description\":\"Server error\"}]}","response_headers":{"content-length":"101","x-weave-timestamp":"1737748113.49","vary":"Origin, Access-Control-Request-Method, Access-Control-Request-Headers","content-type":"application/json","date":"Fri, 24 Jan 2025 19:49:03 GMT"},"response_status":500})(resource://services-common/tokenserverclient.sys.mjs:28:36) JS Stack trace: TokenServerClientServerError@tokenserverclient.sys.mjs:90:16
_processTokenResponse@tokenserverclient.sys.mjs:306:19
_tokenServerExchangeRequest@tokenserverclient.sys.mjs:239:19
1737748141394 Sync.Status DEBUG Status.login: success.status_ok => error.login.reason.network
1737748141394 Sync.Status DEBUG Status.service: error.login.failed => error.login.failed
1737748141394 Sync.SyncAuthManager INFO Failed to fetch the cluster URL: TokenServerClientServerError({"now":"2025-01-24T19:49:01.393Z","message":"Server error.","cause":"general","response_body":"{\"status\":\"internal-error\",\"errors\":[{\"location\":\"internal\",\"name\":\"\",\"description\":\"Server error\"}]}","response_headers":{"content-length":"101","x-weave-timestamp":"1737748113.49","vary":"Origin, Access-Control-Request-Method, Access-Control-Request-Headers","content-type":"application/json","date":"Fri, 24 Jan 2025 19:49:03 GMT"},"response_status":500})(resource://services-common/tokenserverclient.sys.mjs:28:36) JS Stack trace: TokenServerClientServerError@tokenserverclient.sys.mjs:90:16
_processTokenResponse@tokenserverclient.sys.mjs:306:19
_tokenServerExchangeRequest@tokenserverclient.sys.mjs:239:19
1737748141395 Sync.Service DEBUG verifyLogin failed: TokenServerClientServerError({"now":"2025-01-24T19:49:01.393Z","message":"Server error.","cause":"general","response_body":"{\"status\":\"internal-error\",\"errors\":[{\"location\":\"internal\",\"name\":\"\",\"description\":\"Server error\"}]}","response_headers":{"content-length":"101","x-weave-timestamp":"1737748113.49","vary":"Origin, Access-Control-Request-Method, Access-Control-Request-Headers","content-type":"application/json","date":"Fri, 24 Jan 2025 19:49:03 GMT"},"response_status":500})(resource://services-common/tokenserverclient.sys.mjs:28:36) JS Stack trace: TokenServerClientServerError@tokenserverclient.sys.mjs:90:16
_processTokenResponse@tokenserverclient.sys.mjs:306:19
_tokenServerExchangeRequest@tokenserverclient.sys.mjs:239:19
1737748141395 Sync.Status DEBUG Status.login: error.login.reason.network => error.login.reason.network
1737748141395 Sync.Status DEBUG Status.service: error.login.failed => error.login.failed
1737748141396 Sync.ErrorHandler ERROR Sync encountered a login error
1737748141396 Sync.SyncScheduler DEBUG Clearing sync triggers and the global score.
1737748141397 Sync.SyncScheduler DEBUG Next sync in 3600000 ms. (why=schedule)
1737748141398 Sync.Service DEBUG Exception calling WrappedLock: Error: Login failed: error.login.reason.network(resource://services-sync/service.sys.mjs:1041:15) JS Stack trace: onNotify@service.sys.mjs:1041:15
1737748141398 Sync.Service DEBUG Not syncing: login returned false.
1737748141399 FirefoxAccounts DEBUG FxAccountsProfileClient: Requested profile
1737748141399 FirefoxAccounts DEBUG getOAuthToken enter
1737748141399 FirefoxAccounts TRACE getCachedToken returning cached token
1737748141399 FirefoxAccounts DEBUG getOAuthToken returning a cached token
 
Muss man nicht irgendwo das PW für den User der MariaDB im Browser hinterlegen? Wenn nur der Auth Server nach Mozilla den Account prüft, dann könnte man ja die DB immer einfach so anfragen. Während der Installation wird nur das MariaDB root PW angefragt.

Ich kann das PW vom User ffsync manuell in der MariaDB setzen, aber im FF finde ich nichts.
 
Ach so, du meinst den Datenbank-User. Ja klar, der Syncserver muss ja die Datenbank ansprechen können.

Wie das bei Docker aussieht, siehst du auch im ersten Post. Wie das in dem Paket gelöst ist, vermag ich nicht zu sagen.
 
Ja, da sehe ich wie der User angelegt wird, aber irgendwie verstehe ich immer noch nicht wie der FF Browser sich der DB gegenüber authentifiziert. Man gibt dem Browser ja nur sie URL.
 
Die Datenbankverbindung besteht zwischen dem Syncserver und der Datenbank. Der Browser benötigt nur die URI und den Mozilla-Account...

Wenn du "http(s)://<your_server>:<port>/__heartbeat__" aufrufst, was bekommst du zurück?
 
Ah ok, dann werden die Daten quasi mit den Mozilla Account Credentials zugeordnet und verschlüsselt in der DB abgelegt. Der Syncserver und die DB wissen dann gar nicht was sie ablegen.

Wenn ich das eingebe kommt eine 0 zurück.
 
Dann hat dein Syncserver keine Verbindung zur Datenbank. Es muss sowas in der Art zurück kommen:
heartbeat.png

Aber wie das bei diesem Paket eingestellt werden muss, da bin ich raus. Ich nutze die Docker-Variante, die ich im ersten Post beschreibe.
 
Zuletzt bearbeitet:
ok, also liegt das Problem zwischen Sync Server und DB.

Wenn ich http://ip-adresse:8132/1.0/sync/1.5 eingebe, kommt wie erwartet unter JSON:

{"status": "error", "errors": [{"location": "body", "name": "", "description": "Unauthorized"}]}

Edit: Nach komplettem Löschen und Neuinstallieren kommt der gewünschte Screen:

ffsync.jpg

Verbindung steht. Logs schreiben Success Sync, aber der Mobile FF auf Android mag noch nicht Trotzdem Danke schon mal.
 
Zuletzt bearbeitet:
Kurze Frage hier in den Thread. Ich habe einen Sync Server mittels den Paketen auf https://synocommunity.com/ aufgesetzt. Der Server läuft war, aber leider funktioniert der Sync nicht. Ich meine es müssten im Client ja auch Credentials des eigenen Sync Servers hinterlegt werden und nicht nur die URL. Wie konfiguriert ihr die Clients bei eurer Docker-Lösung?

Danke dir vielmals mit dem Tipp der Synocommunity! Bin eigentlich kein Fan von den Synology Paketen wenns auch Dockercontainer gibt. Aber hier wars mir einfach eine Nummer zu gross für den Moment. Habs probiert gehabt, aber die Kommunikation mit der Datenbank nicht hingekriegt.
Jedenfalls hab ich nun das Paket installiert, während der Installation meine URL angegeben, Reverseproxy eingerichtet und done!
 
Hallo, ja hatte ich. FF Daten gelöscht, dann neu installiert. Erst die Sync Debug Settings freigeschaltet und dann dort die URL des Sync Servers eingegeben. Dann erst der Login mit dem Mozilla Account. Sync geht leider nicht.

@zotac94 gerne. Bei dir hat das geklappt mit dem FF Mobile?
 
Bei mir hats geklappt, ja.
Hast dus im richtigen Feld eingetragen? Es gibt ja bei Sync Debug drei Felder: Benutzerdefinierter Kontoserver, Sync-Server & Push-Server (hatte es da zuerst im falschen eingetragen). Beim Sync-Server hab ich da einfach dieselbe URL eingetragen wie am PC und mich danach neu eingeloggt.
Oder ist eventuell deine Sync-URL von aussen nicht erreichbar?

Was ich mich beim Paket aus der Synocommunity noch Frage, ist wo die ganzen Daten denn abgelegt werden. Würde die gerne mit in mein Hyper Backup einschliessen.
 
Ich habe es unter Sync Server eingetragen. Aber vielleicht bin zu doof den Service richtig zu nutzen. Ich habe nun Testweise einen zweiten Windows PC aktiviert und dort auch FF drauf. Laut logs alles successfull aber ich kann keine Tabs synchronisieren. Es erscheinen keine offenen Tabs der anderen Geräte. Ich dachte man kann auch manuell Tabs als synced markieren.

Laut Logs ist die Tab Liste leer.

Ich bin in einem WLAN. Dann sollte der Zugriff ja gehen, zumal der Heartbeat ja geht.

Hast du am NAS noch was freigegeben?

Der Reverse-Proxy ist ja nur bei SSL nötig oder?

Edit: So zwischen den Desktop FF Geräten klappt es jetzt. Irgendwie stellt sich manchmal die URL nach einem Logout zurück. Nur der mobile FF zickt immer noch.
 
Zuletzt bearbeitet:
@zotac94 Nach deiner Aussage nehme ich an du nutzt HTTPS, korrekt? Wie hast du den Reverse Proxy eingerichtet? Kann man da ein selbst signiertes Zertifikat nutzen? Für eine lokale IP bekommt man ja kein Zertifikat einer CA.
 
Genau. Ich habe bei der Einrichtung vom Syncserver statt meiner IP, direkt meine Domain angegeben. Danach habe ich im Anmeldeportal der Synology einen Reverseproxyeintrag erstellt wie folgt:
1738167773804.png

Als Zertifikat habe ich ein Wildcardzertifikat von Letsencrypt. Somit ist der Syncserver unter https://sync.xyz.com erreichbar, entsprechend mit gültigem Zertifikat.
 
Nein, ich habe meine eigene (gekaufte) Domain. Aber ich denke das nimmt sich nichts vom Prinzip her.
 
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat