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

plang.pl

Benutzer
Contributor
Sehr erfahren
Mitglied seit
28. Okt 2020
Beiträge
15.028
Punkte für Reaktionen
5.401
Punkte
564
Dann muss ich zugeben, dass das Sinn ergibt :)
Danke
Ich mach mich morgen noch mal dran (hoffentlich :ROFLMAO:)
 
  • Like
Reaktionen: Adama

Esel08

Benutzer
Mitglied seit
10. Jul 2014
Beiträge
273
Punkte für Reaktionen
5
Punkte
24
Jetzt wollte ich im Ordner /Docker starten, bekomme den Fehler !!

/volume1/homes/Skywalker$ cd /volume1/docker
/volume1/docker$ docker-compose up -d
The Compose file './docker-compose.yml' is invalid because:
services.firefox-sync.ports contains an invalid type, it should be a number, or an object

ungültiger Typ ??
Code:
version: "3.8"

services:
  firefox-sync:
    image: mozilla/syncstorage-rs:0.12.5
    network_mode: bridge
    container_name: FirefoxSync_RS
    environment:
      SYNC_HOST: 0.0.0.0
      SYNC_HUMAN_LOGS: 1
      SYNC_MASTER_SECRET: ${SYNC_MASTER_SECRET}
      SYNC_SYNCSTORAGE__DATABASE_URL: mysql://${MYSQL_USER}:${MYSQL_PASS}@${DATABASE_SERVER}:${DATABASE_PORT}/syncstorage_rs
      SYNC_TOKENSERVER__ENABLED: "true"
      SYNC_TOKENSERVER__RUN_MIGRATIONS: "true"
      SYNC_TOKENSERVER__NODE_TYPE: mysql
      SYNC_TOKENSERVER__DATABASE_URL: mysql://${MYSQL_USER}:${MYSQL_PASS}@${DATABASE_SERVER}:${DATABASE_PORT}/tokenserver_rs
      SYNC_TOKENSERVER__FXA_EMAIL_DOMAIN: api.accounts.firefox.com
      SYNC_TOKENSERVER__FXA_OAUTH_SERVER_URL: https://oauth.accounts.firefox.com/v1
      SYNC_TOKENSERVER__FXA_METRICS_HASH_SECRET: ${METRICS_HASH_SECRET}
      SYNC_TOKENSERVER__ADDITIONAL_BLOCKING_THREADS_FOR_FXA_REQUESTS: 2
    ports:
      - ${EXTERNAL_PORT}:8000
    restart: always
Eigentlich sollte er sich doch den Port aus .env holen !!
Nach ändern in docker-compose.yml läuft es zwar ab, bekomme aber andere Fehlermeldung !
/volume1/docker$ docker-compose up -d
[24321] Failed to execute script docker-compose
Traceback (most recent call last):
File "urllib3/connectionpool.py", line 677, in urlopen
File "urllib3/connectionpool.py", line 392, in _make_request
File "http/client.py", line 1277, in request
File "http/client.py", line 1323, in _send_request
File "http/client.py", line 1272, in endheaders
File "http/client.py", line 1032, in _send_output
File "http/client.py", line 972, in send
File "docker/transport/unixconn.py", line 43, in connect
PermissionError: [Errno 13] Permission denied

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "requests/adapters.py", line 449, in send
File "urllib3/connectionpool.py", line 727, in urlopen
File "urllib3/util/retry.py", line 410, in increment
File "urllib3/packages/six.py", line 734, in reraise
File "urllib3/connectionpool.py", line 677, in urlopen
File "urllib3/connectionpool.py", line 392, in _make_request
File "http/client.py", line 1277, in request
File "http/client.py", line 1323, in _send_request
File "http/client.py", line 1272, in endheaders
File "http/client.py", line 1032, in _send_output
File "http/client.py", line 972, in send
File "docker/transport/unixconn.py", line 43, in connect
urllib3.exceptions.ProtocolError: ('Connection aborted.', PermissionError(13, 'Permission denied'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "docker/api/client.py", line 214, in _retrieve_server_version
File "docker/api/daemon.py", line 181, in version
File "docker/utils/decorators.py", line 46, in inner
File "docker/api/client.py", line 237, in _get
File "requests/sessions.py", line 543, in get
File "requests/sessions.py", line 530, in request
File "requests/sessions.py", line 643, in send
File "requests/adapters.py", line 498, in send
requests.exceptions.ConnectionError: ('Connection aborted.', PermissionError(13, 'Permission denied'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "docker-compose", line 3, in <module>
File "compose/cli/main.py", line 80, in main
File "compose/cli/main.py", line 189, in perform_command
File "compose/cli/command.py", line 70, in project_from_options
File "compose/cli/command.py", line 153, in get_project
File "compose/cli/docker_client.py", line 43, in get_client
File "compose/cli/docker_client.py", line 170, in docker_client
File "docker/api/client.py", line 197, in __init__
File "docker/api/client.py", line 222, in _retrieve_server_version
docker.errors.DockerException: Error while fetching server API version: ('Connection aborted.', PermissionError(13, 'Permission denied'))

Grüße
 
Zuletzt bearbeitet:

Adama

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
05. Mrz 2013
Beiträge
2.148
Punkte für Reaktionen
736
Punkte
154
Die Dateien liegen beide im selben Ordner? Die Datei ist UNIX-kodiert (LF statt CR+LF)?

Inzwischen ist die aktuelle Version übrigens "0.13.1"...

Edit: Ich seh grad an deiner Compose-Datei, du verwendest schon "SYNC_SYNCSTORAGE__DATABASE_URL" benutzt, dann muss es zwingend mindestens "0.13.0" sein...
 

Esel08

Benutzer
Mitglied seit
10. Jul 2014
Beiträge
273
Punkte für Reaktionen
5
Punkte
24
Habe auf : latest Version umgestellt 0.13.1
Ich nehme Notepad+ da muss ich mal schauen... Muss ich das compose durchführen als Root ? Könnte es mir vorstellen? Probiere ich Abends nochmals aus .

Danke Dir
 

Adama

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
05. Mrz 2013
Beiträge
2.148
Punkte für Reaktionen
736
Punkte
154
Stell nicht auf "latest" um, sondern explizit auf "0.13.1". Das latest-Tag ist für den Container nicht richtig gesetzt, mit "latest" bekommst du was uraltes.

Also ich mache es grundsätzlich unter root.
 

Esel08

Benutzer
Mitglied seit
10. Jul 2014
Beiträge
273
Punkte für Reaktionen
5
Punkte
24
@Adama

Jo das habe ich gemacht.
Nach docker-compose up -d
Docker startet laufend !

Kann das sein da mein Mysql nicht als Docker läuft , dass ich keinen Bridge Modus brauche sondern Host ????
 

Anhänge

  • FirefoxSync_RS.txt
    196,1 KB · Aufrufe: 12
Zuletzt bearbeitet:

plang.pl

Benutzer
Contributor
Sehr erfahren
Mitglied seit
28. Okt 2020
Beiträge
15.028
Punkte für Reaktionen
5.401
Punkte
564
So. Mit der geänderten ENV startet der Container und crasht auch nicht mehr.
Reverse Proxy angelegt. Das funktioniert alles soweit. Wenn ich die Adresse des Reverse Proxy aufrufe, erhalte ich die Mozilla Hilfeseite.
Dann die erforderlichen Einträge in die DB geschrieben und in Firefox die versteckte Einstellung geändert.
Nun habe ich noch 2 Fragen:
-Der Container Log ist komplett leer. Also da steht gar nix! Soll das so?
-Wie richte ich den Sync in Firefox ein? Wenn ich auf "Anmelden" gehe, lande ich auf der Mozilla Seite mit einem 500er Error:
Screenshot 2023-01-22 183453.png
 

Adama

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
05. Mrz 2013
Beiträge
2.148
Punkte für Reaktionen
736
Punkte
154
@plang.pl Zum einen musst du in "about:config" in ""identity.sync.tokenserver.uri"" deinen Syncserver eintragen.

Das sollt so aussehen:
Code:
http(s)://servername.domain.tld:(port)/1.0/sync/1.5

Du kannst übrigens mit
Code:
http(s)://servername.domain.tld:(port)/__heartbeat__
den Server testen.

Damit dann der Sync funktioniert, musst du ein Firefox-Konto anlegen, ohne das geht's nicht.
 
  • Like
Reaktionen: plang.pl

Adama

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
05. Mrz 2013
Beiträge
2.148
Punkte für Reaktionen
736
Punkte
154
@Esel08 Du musst natürlich als Ziel deine SQL-Datenbank angeben. Das hab ich ja am Anfang auch gehabt. Darauf basieren auch die ursprünglichen Compose-Dateien im Start-Post.

Ist das in deinem Fall die Datenbank auf der Syno selbst?
 

Esel08

Benutzer
Mitglied seit
10. Jul 2014
Beiträge
273
Punkte für Reaktionen
5
Punkte
24
@ Adama

Ja die datenbank ist auf der Syno dürfte ja Mariadb sein . Sie läuft auf Port 3307 und ip der Nas
Die habe ich in der .env angegeben. Brauche ich einen anderen Befehl weil es ja mariadb ist und nicht mysql ?? pymysql:// ??
 
Zuletzt bearbeitet:

plang.pl

Benutzer
Contributor
Sehr erfahren
Mitglied seit
28. Okt 2020
Beiträge
15.028
Punkte für Reaktionen
5.401
Punkte
564
http(s)://servername.domain.tld: port)/1.0/sync/1.5
Das hab ich alles gemacht. Eingetragen und Container testweise aufgerufen. Nur die Anmeldung bei Mozilla klappt nicht. Mittlerweile gehe ich aber eher von einem Problem aus, das nicht mit dem Docker-Container zusammenhängt (Firewall, DNS-Filter, AddOn, ...). Ich berichte
 

Adama

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
05. Mrz 2013
Beiträge
2.148
Punkte für Reaktionen
736
Punkte
154
@Esel08 Also du hast die IP deiner Syno genommen? Hast du auch die Datenbanken angelegt? Wie im ersten Post beschrieben?

@plang.pl Das sieht fast so aus. Ich hatte allerdings schon vor dem Sync-Server ein Firefox-Konto angelegt. Ich kann mir aber nicht vorstellen, warum das einen Unterschied machen sollte.

Der Heartbeat funktioniert? Da du das nicht ausdrücklich erwähnt hast, vermute ich das mal.
 
  • Like
Reaktionen: plang.pl

plang.pl

Benutzer
Contributor
Sehr erfahren
Mitglied seit
28. Okt 2020
Beiträge
15.028
Punkte für Reaktionen
5.401
Punkte
564
Was ist noch mal eben ein "Heartbeat"? Kann ich mir grad nix drunter vorstellen o_O
:ROFLMAO:
 

Esel08

Benutzer
Mitglied seit
10. Jul 2014
Beiträge
273
Punkte für Reaktionen
5
Punkte
24
@Adama
Benutzer und Datenbank angelegt , sobald er geschrieben hat soll man ja in der Datenbank nochwas anlegen. Ip ja die der Syno und port 3307

Da steht leider nix drin
 

Adama

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
05. Mrz 2013
Beiträge
2.148
Punkte für Reaktionen
736
Punkte
154
  • Like
Reaktionen: plang.pl

Adama

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
05. Mrz 2013
Beiträge
2.148
Punkte für Reaktionen
736
Punkte
154
@Esel08 Dein Bridge-Netz in Docker fängt mit 172.xxx.xxx.xxx an? Das Einzige was mir jetzt noch einfällt: Das der Container keine Berechtigung hat, um auf die Datenbank zuzugreifen.
 

Esel08

Benutzer
Mitglied seit
10. Jul 2014
Beiträge
273
Punkte für Reaktionen
5
Punkte
24
@Adama

Ok da muss ich morgen mal schauen, sage dir bescheid!
Sollte es so sein würde ich ja Host Modus brauchen damit er drauf kommt . Kann ich die Berechtigungen ändern ?

2. Danke Dir für Deine Hilfe finde ich echt Klasse 😜😘 Zumal der alte sync ja funktioniert! Bis diese Woche 😉
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Mitglied seit
28. Okt 2020
Beiträge
15.028
Punkte für Reaktionen
5.401
Punkte
564
achja sorry. Hatte ich wohl überlesen. Sieht aber gut aus, denke ich:
Screenshot 2023-01-22 203142.png


EDIT: Bevor hier jemand meckert, wegen der vollen DDNS Adresse: Die ist nicht erreichbar von extern
 

Adama

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
05. Mrz 2013
Beiträge
2.148
Punkte für Reaktionen
736
Punkte
154
Sollte es so sein würde ich ja Host Modus brauchen damit er drauf kommt . Kann ich die Berechtigungen ändern ?
Nein, das geht auch im Bridge-Modus...

Deswegen wird der User ja mit @172... angelegt, weil aus Sicht der Datenbank der User nicht aus 192.xxx.xxx.xxx kommt, sondern aus 172.xxx.xxx.xxx. Deswegen meinte ich, ob deine Bridge auch auf 172.xxx.xxx.xxx läuft, das ist eigentlich Standard beim Docker auf der Syno.
 

Adama

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
05. Mrz 2013
Beiträge
2.148
Punkte für Reaktionen
736
Punkte
154
@plang.pl Dann sind wir jedenfalls beim Container auf der sicheren Seite, der läuft...

Die beiden Werte aus dem ersten Post hast du in der Datenbank erzeugt?
 


 

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