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

Adama

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
05. Mrz 2013
Beiträge
2.148
Punkte für Reaktionen
736
Punkte
154
Zur Sicherheit nachgefragt: Bezieht sich dein "same same" auf alle meine Fragen?

Weil deine Variablen nach deinem Screenshot nicht wie bei mir aussehen.

Wie erstellst du eigentlich den Container? Ich mach das ganz klassisch über SSH mit "docker-compose up -d".

Die Datenbank sollte eigentlich Zugriff gewähren über 172.%, es sei denn, dein Docker-Netzwerk benutzt eine andere IP-Adresse.
 

Psy87

Benutzer
Mitglied seit
09. Dez 2010
Beiträge
120
Punkte für Reaktionen
10
Punkte
18
Same same war für die Rechte der beiden DBs. War etwas kurz angebunden und deine "edits" kamen später.
Ich fang gerade nochmal bei 0 an.
Die Variablen sind weiter oben in der Compose yaml.
Ich erstelle mit Portainer, daraus war der obere Screenshot. die .env liest er dann in einzelne Zeilen ein.
Mein Docker Bridge läuft auch über 172.xxx
Besten dank für die Geduld.
Ich hab auch im Thread Verlauf gesehen, dass das Problem schon vorkam...
 

Adama

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
05. Mrz 2013
Beiträge
2.148
Punkte für Reaktionen
736
Punkte
154
Ok, dann sind wir wieder auf dem selben Level... :)

Mich irrtiert bei deinem ersten Screenshot unten die Anzeige der Variablen. Meine Ausgabe ist auch aus Portainer, allerdings aus dem Container selber. Sehen bei dir die Variablen im Container selbst genauso aus wie in der Compose-Datei?
 

Psy87

Benutzer
Mitglied seit
09. Dez 2010
Beiträge
120
Punkte für Reaktionen
10
Punkte
18
Die ENV Liste aus dem Container: wie bei dir
Er startet den Container jetzt auch nicht. Kein Eintrag im Log. Status: "starting" ...

CRYPTOGRAPHY_DONT_BUILD_RUST1
PATH/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
RUST_LOGwarn
SYNC_HOST0.0.0.0
SYNC_HUMAN_LOGS1
SYNC_MASTER_SECRETxX3)9umgnXxX3)9umgnX
SYNC_SYNCSTORAGE__DATABASE_URLmysql://sync_rs:PW@192.168.178.21:3307/syncstorage_rs
SYNC_TOKENSERVER__ADDITIONAL_BLOCKING_THREADS_FOR_FXA_REQUESTS2
SYNC_TOKENSERVER__DATABASE_URLmysql://sync_rs:PW@192.168.178.21:3307/tokenserver_rs
SYNC_TOKENSERVER__ENABLEDtrue
SYNC_TOKENSERVER__FXA_EMAIL_DOMAINapi.accounts.firefox.com
SYNC_TOKENSERVER__FXA_METRICS_HASH_SECRETxX3)9umgnXxX3)9umgnXxX3)9umgnX
SYNC_TOKENSERVER__FXA_OAUTH_SERVER_URLhttps://oauth.accounts.firefox.com/v1
SYNC_TOKENSERVER__NODE_TYPEmysql
SYNC_TOKENSERVER__RUN_MIGRATIONStrue
 

Adama

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
05. Mrz 2013
Beiträge
2.148
Punkte für Reaktionen
736
Punkte
154
Das sieht gut aus...

Das "Starting" bleibt bei mir etwa 30 Sekunden stehen, das liegt am Health Check (interval: 30s). Wenn der Container startet und richtig arbeitet, dann bleibt das Log leer. Das wäre auch richtig.

Aber bei dir bleibt das "Starting" minutenlang stehen?

Schau doch mal in den Datenbanken, ob er Tabellen angelegt hat...
 

Psy87

Benutzer
Mitglied seit
09. Dez 2010
Beiträge
120
Punkte für Reaktionen
10
Punkte
18
Ja, das bleibt bestehen, keine Änderung. Es gibt einfach keine DB Verbindung, es ist zum Mäusemelken...
Tabellen werden keine angelegt...
 

Adama

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
05. Mrz 2013
Beiträge
2.148
Punkte für Reaktionen
736
Punkte
154
Hab' leider nicht mehr im Kopf, wo die Logs der MariaDB liegen. Vielleicht könnte man da sehen, was passiert (oder nicht passiert).

Ich hab' ja inzwischen auf eine Docker-MariaDB umgestellt, um mal was aktuelles da zu haben.

Edit: Die Fehlermeldung ist immer noch dieselbe?

Edit 2: Stell doch mal die RUST_LOG-Variable auf "debug", vielleicht sehen wir da etwas mehr
 
Zuletzt bearbeitet:

Psy87

Benutzer
Mitglied seit
09. Dez 2010
Beiträge
120
Punkte für Reaktionen
10
Punkte
18
Zu edit2: scheint nicht zu funktionieren, er startet den Container nicht.

Also ich werde nun versuchen auf die MariaDB im Docker zu setzen... dazu dann wohl auch phpmyadmin im Container... 🙃 Da kommt ja was zusammen...
 

Ulfhednir

Benutzer
Sehr erfahren
Mitglied seit
26. Aug 2013
Beiträge
3.475
Punkte für Reaktionen
1.087
Punkte
194
Ja, das bleibt bestehen, keine Änderung. Es gibt einfach keine DB Verbindung, es ist zum Mäusemelken...
Tabellen werden keine angelegt...
Lese nur zufällig mit.. Firewall geprüft? Hatte hier auch schon einmal meine Problemchen, wenn ich aus einem Container die MariaDB ansprechen wollte.
Ggf. muss der Port zusätzlich angegeben werden.

-- Bin wieder raus!
 

Adama

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

Ulfhednir

Benutzer
Sehr erfahren
Mitglied seit
26. Aug 2013
Beiträge
3.475
Punkte für Reaktionen
1.087
Punkte
194
Die ENV Liste aus dem Container: wie bei dir
Er startet den Container jetzt auch nicht. Kein Eintrag im Log. Status: "starting" ...

CRYPTOGRAPHY_DONT_BUILD_RUST1
PATH/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
RUST_LOGwarn
SYNC_HOST0.0.0.0
SYNC_HUMAN_LOGS1
SYNC_MASTER_SECRETxX3)9umgnXxX3)9umgnX
SYNC_SYNCSTORAGE__DATABASE_URLmysql://sync_rs:PW@192.168.178.21:3307/syncstorage_rs
SYNC_TOKENSERVER__ADDITIONAL_BLOCKING_THREADS_FOR_FXA_REQUESTS2
SYNC_TOKENSERVER__DATABASE_URLmysql://sync_rs:PW@192.168.178.21:3307/tokenserver_rs
SYNC_TOKENSERVER__ENABLEDtrue
SYNC_TOKENSERVER__FXA_EMAIL_DOMAINapi.accounts.firefox.com
SYNC_TOKENSERVER__FXA_METRICS_HASH_SECRETxX3)9umgnXxX3)9umgnXxX3)9umgnX
SYNC_TOKENSERVER__FXA_OAUTH_SERVER_URLhttps://oauth.accounts.firefox.com/v1
SYNC_TOKENSERVER__NODE_TYPEmysql
SYNC_TOKENSERVER__RUN_MIGRATIONStrue
Noch ein Hinweis: Der Standardport von MariaDB auf der DS ist übrigens 3306 anstelle 3307
-- wieder weg
 

Adama

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
05. Mrz 2013
Beiträge
2.148
Punkte für Reaktionen
736
Punkte
154
Guter Hinweis, bei mir war der nur auf 3307 weil ich vorher noch die MariaDB5 drauf hatte. Dann wählt die 10er den nächsten Port.
 

Ulfhednir

Benutzer
Sehr erfahren
Mitglied seit
26. Aug 2013
Beiträge
3.475
Punkte für Reaktionen
1.087
Punkte
194
Ja.. das Problem kenne ich.. hab mich erst letzte Woche ans Herz gegriffen und alle Anwendungen auf 3306 umgestellt. Musste leider feststellen, das ich n8n vergessen hatte und meine Webhooks ins Leere speicherten. :rolleyes:
 

Psy87

Benutzer
Mitglied seit
09. Dez 2010
Beiträge
120
Punkte für Reaktionen
10
Punkte
18
Bin schon beide Ports durch und die waren auch richtig eingetragen... Etwas frustrierend so viel Energie und Zeit auch von euch da zu investieren und nicht zu finden, wo der Haken ist...
Vorerst bin ich wieder bei der alten SyncServer Version mit lokaler SQLite Datei...
 

Ulfhednir

Benutzer
Sehr erfahren
Mitglied seit
26. Aug 2013
Beiträge
3.475
Punkte für Reaktionen
1.087
Punkte
194
Letzte Idee: Installiere mal als HOST-Network anstelle der Bridge.
 

DamitsTut

Benutzer
Mitglied seit
12. Apr 2023
Beiträge
24
Punkte für Reaktionen
1
Punkte
3
Hoi Zusammen

Vor Jahren hatte ich den FFSync-Server auf DSM 5.x ... Nun versuche ich seit einiger Zeit den hier von Euch beschriebenen Firefox Syncserver (Rust) in Docker zum Laufen zu bringen. Ich kriege es allerdings nicht hin. Darum habe ich Eure Tipps und Hinweise aus diesem Beitrag verwendet und mehrfach durchgespielt, sowohl mit Programmversionen Firefox Syncserver (Rust) als auch mit den Variablen. Ich bin das erste Mal mit DSM und Programmen mit meinem Latein am Ende. Aber vielleicht mache ich ja auch nur eine Kleinigkeit falsch und bemerke es nicht. Ich hätte 2 Fragen an Euch und wäre froh um einen Hinweis ...

___________________________
Frage #1

Was ich in Euren Beiträgeng nicht sehen konnte sind eventuell erforderliche Systemvoraussetzungen für das Docker-Image. Gibt es hier welche? Ich verwende eine DS720+ mit DSM 6.2.4-25556 Version 6 und den installierten Paketen/Programmen ...

Docker 20.10.3-0554 MariaDB 10.3.29-0070 Perl 5.28.3-0077 PHP 7.4.30-0009 phpMyAdmin 4.9.7-0193
WebStation 2.1.10-0160 ActiveBackUp 2.5.0-2631 Kopano4S 1.17 (Docker-Image)

Mehr habe ich nicht installiert. Benötigt der Firefox Syncserver (Rust) noch ein weiteres Paket oder Docker-Image?

___________________________
Frage #2

Angefangen habe ich mit Firefox Syncserver (Rust) 0.12.4 und aktuell mit der Version 0.13.6. Ich starte den Container aus Docker heraus (weiss leider nicht, wie das mit docker-compose geht). Ich lande immer bei demselben Ergebnis.

1681293412935.png

Die aktuell verwendeten Variablen sind:

COMPOSE_PROJECT_NAME=ffsync_rs
MYSQL_USER=MEINUSER
MYSQL_PASS=MEINPASSWORT
MASTER_SECRET=MEINMASTERSECRET
METRICS_HASH_SECRET=MEINMETRICSHASHSECRET
DATABASE_SERVER=IP-VON-SYNOLOGY
DATABASE_PORT=3307
EXTERNAL_PORT=MEINPORT

SYNC_HOST: 0.0.0.0
SYNC_HUMAN_LOGS: 1
SYNC_MASTER_SECRET: ${MASTER_SECRET}
SYNC_DATABASE_URL: mysql://${MYSQL_USER}:${MYSQL_PASS}@${DATABASE_SERVER}:${DATABASE_PORT}/FirefoxSync
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}/FirefoxToken
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
RUST_LOG: warn

___________________________

Ich wäre froh, Ihr könntet mir einen Hinweis geben, an welcher Stelle ich ansetzen und nachschauen sollte. Falls ich dazu nicht alle erforderlichen Infos angegeben habe, bitte Bescheid geben, liefere ich dann gerne nach.

Danke Euch im Voraus ...
 

Adama

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
05. Mrz 2013
Beiträge
2.148
Punkte für Reaktionen
736
Punkte
154
Du kannst nicht einfach die Variablen aus der Compose-Datei in den Container übertragen. "${MYSQL_USER}" z.B. muss mit dem entsprechenden Datenbankuser gefüllt sein. Das holt sich Docker-Compose aus der .env-Datei aus dem ersten Post.

Docker-compose ist - eigentlich - ganz einfach. Du öffnest eine SSH-Verbindung zu deiner Syno und gehst in das Verzeichnis, wo die compose-Dateien liegen.

Dann musst du nur ein "docker-compose up -d" auf der Konsole ausführen. Das lädt das Image und erzeugt den Container, wie du es in den Compose-Dateien festgelegt hast.
 

Ulfhednir

Benutzer
Sehr erfahren
Mitglied seit
26. Aug 2013
Beiträge
3.475
Punkte für Reaktionen
1.087
Punkte
194
Oder wer es bequemer per Frontend möchte, kann das geschilderte Compose auch per Portainer durchführen. Ebenso mit Import der .ENV-File.
Portainer sollte sowieso jeder auf seiner Gurke installieren. Auch mit DSM 7.2 ist die GUI zur Administration schrecklich.
 
  • Like
Reaktionen: Adama

DamitsTut

Benutzer
Mitglied seit
12. Apr 2023
Beiträge
24
Punkte für Reaktionen
1
Punkte
3
Hoi Adama

Vielen Dank für die Hilfe. Das war der Fehler. "docker-compose" ist einfach und funktioniert.

Ich konnte den Start des Image testen und Log-Dateien von MariaDB und Docker-Container prüfen. Leider ändert das Nichts und gibt mir auch keinen Anhaltspunkt. In den Log-Dateien von MariaDB ist Nichts eingetragen. Das Docker-Image startet nicht. Ich erhalte nach wie vor die gleiche Rückmeldung im Protokoll des Docker-Containers:

thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: ApiError { kind: Db(DbError { kind: DieselConnection(BadConnection("Can't connect to MySQL server on 'IP : PORT' (111)")), status: 500, backtrace: 0: <syncserver_db_common::error:: DbError as core::convert::From<syncserver_db_common::error:: DbErrorKind>>::from

(PS: Ich habe meine "IP-PORT" für den Post hier entfernt. Sind beim Start des Docker-Image korrekt eingetragen.)

Es ist, als ob Firefox Syncserver 0.13.6 nicht auf die MariaDB zugreifen kann. Ich habe den MariaDB-Port in der Firewall der DiskStation geprüft. Ist korrekt angegeben. Dann habe ich einen Versuch gemacht und in der ".env"-Datei unter DATABASE_SERVER anstatt der IP-Adresse einfach mal "localhost" eingetragen. Damit erhalte ich beim Start des Docker-Image dann die Fehlermeldung:

thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: ApiError { kind: Db(DbError { kind: DieselConnection(BadConnection("Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)")), status: 500, backtrace: 0: <syncserver_db_common::error:: DbError as core::convert::From<syncserver_db_common::error:: DbErrorKind>>::from

Habe mit WinSCP im Verzeichnis '/var/run/mysqld/' nachgeschaut. Dort liegt keine Datei 'mysqld.sock' sondern nur die Datei 'mysqld10.sock'. Kann es sein, dass deswegen die Datenbank nicht gefunden wird? Muss man auf der DiskStation explizit MariaDB installiert haben und funktioniert es mit MariaDB10 gar nicht?
 
Zuletzt bearbeitet:

Esel08

Benutzer
Mitglied seit
10. Jul 2014
Beiträge
273
Punkte für Reaktionen
5
Punkte
24
So da mache ich mal mit :)
Heute neu aufgelegt, siehe Anhang Fehlermeldung :

Docker Protokoll steht nichts drin...
 

Anhänge

  • 2023-04-13 10_49_50-Greenshot.png
    2023-04-13 10_49_50-Greenshot.png
    232,2 KB · Aufrufe: 15
  • 2023-04-13 11_06_31-Greenshot_cr.png
    2023-04-13 11_06_31-Greenshot_cr.png
    103,1 KB · Aufrufe: 12
Zuletzt bearbeitet:


 

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