matrixdotorg/synapse

Jaytie

Benutzer
Mitglied seit
02. Jul 2013
Beiträge
95
Punkte für Reaktionen
6
Punkte
8
Ah alles klar, dh. ich ersetze das Tag und führe 'Docker-Compose up -d' aus obwohl die Container schon laufen. Dann wird bei denen mit verändertem Tag ein Update ausgeführt.

Allerdings bedeutet das auch, dass ich selbst schauen muss, ob es Updates gibt. Es gibt ja sowas wie Watchtower womit man das automatisieren könnte. Muss ich mir bei Gelegenheit mal ansehen.

Danke dir!
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.468
Punkte für Reaktionen
356
Punkte
103
Dann wird bei denen mit verändertem Tag ein Update ausgeführt.
.
Jaein. Der alte Container, basierend auf dem nicht mehr gültigen Tag, wird gelöscht. Ein neuer Container, basierend auf dem nun gültigen Tag, wird erzeugt.

Es gibt Fälle, wo ein festes Tag (bspw. latest) immer auf das neueste Image zeigt. Docker-compose hat keine Möglichkeit zu erkennen, ob ein Tag immer noch dasselbe Image referenziert.
In diesen Fällen kann Watchtower dem Benutzer die Arbeit abnehmen selbst nachschauen zu müssen und ggf. mit `docker-compose pull` die Images und damit die Container zu aktuallisieren.

Bei unveränderlichen Tags hilft Watchtower nicht wirklich weiter, da sich hier das Image hinter dem Tag nie verändert. Selbst wenn das updaten mit Watchtower in solchen Fällen funktioniert, hat man spätestens mit dem nächsten 'docker-compose up -d' wieder genau das Image im Einsatz, dass in der docker-compose.yml hinterlegt ist. Kann aber auch sein, dass ich mich beim letzten Punkte irre.. Auf der DS habe ich nur noch Watchtower und einen Container mit einem veränderlichen Tag.
 

Jaytie

Benutzer
Mitglied seit
02. Jul 2013
Beiträge
95
Punkte für Reaktionen
6
Punkte
8
Alles klar, verstehe. Der Tag :latest ist mir derzeit noch zu riskant. Ich möchte mir nichts mit einem Update zerschießen, was ja auch die Automatisierung mit Watchtower erstmal ausschließt. Das schöne an Docker-Compose ist ja auch, dass man testweise schnell einen weiteren Container mit einem neueren Image starten und testen kann.
 

DerBjoern

Benutzer
Mitglied seit
04. Jun 2020
Beiträge
7
Punkte für Reaktionen
1
Punkte
3
Hallo,

leider habe ich keine für mich taugliche Schritt für Schritt Anleitung bis jetzt gefunden. Ich habe den Dockercontainer über die Dockeranwendung im punkt Registrierung herunter geladen und installiert. Leider finde ich nirgendwo was passendes wie ich Volumes mounten muss?
Habe es versucht meinen Ordner auf der Syno unter den Einstellungen ->Container->Bearbeiten->Volume auf
"/data" (hat er gar nicht angenommen)
"/synapse-data" (das hat er zumindest akzeptiert)
zu mounten. Leider wird nach dem Starten des Containers dieser gleich wieder beendet. Auch in dem gemounteten Ordner sind keine Daten wie configs etc. erstellt worden?
Was mache ich falsch, bzw. wie kann ich rausfinden was ich falsch mache??
Habe keine funktionierenden Anleitungen gefunden...
 

DerBjoern

Benutzer
Mitglied seit
04. Jun 2020
Beiträge
7
Punkte für Reaktionen
1
Punkte
3
ok, habe nun verstanden das ich erst die konfig generieren lassen muss. nun gebe ich folgenden befehl an nachdem ich mich mit putty per ssh verbunden habe und mir mit sudo su die macht geholt habe:

docker run -it --rm -v /data/:/docker/synapse/ -e SYNAPSE_SERVER_NAME=meinetolledomain.de -e SYNAPSE_REPORT_STATS=yes matrixdotorg/synapse:latest generate

da sagt er mir er kann data nicht mounten da er /data nicht findet.

auch mit

docker run -it --rm -v /opt/matrix/synapse/data:/docker/synapse/ -e SYNAPSE_SERVER_NAME=meinetolledomain.de -e SYNAPSE_REPORT_STATS=yes matrixdotorg/synapse:latest generate

klappt es nicht, da er auch da sagt das er /opt/matrix/synapse/data nicht findet.

wo liegt denn der data - ordner im container bzw. wo erfahre ich wo dieser ist?
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.468
Punkte für Reaktionen
356
Punkte
103
docker run -it --rm -v /opt/matrix/synapse/data:/docker/synapse/ -e SYNAPSE_SERVER_NAME=meinetolledomain.de -e SYNAPSE_REPORT_STATS=yes matrixdotorg/synapse:latest generate

Die beiden Pfade bei -v müssen umgedreht werden. Links vom Doppelpunkt ist der Pfad auf dem Host, hier solltest Du /volume1/docker/irgendwas nehmen. Rechts vom Doppelpunkt ist der Pfad im Container, dieser sollte der Image-Beschreibung exakt entsprechen.

Warum verwendest Du nicht einfach das docker-compose.yml aus https://www.synoforum.com/threads/matrix-synapse.1941/#post-8253? Es ist viel aufwändiger das setup mit einzelnen `docker run` oder über die UI zu verdrahten.
 
Zuletzt bearbeitet:

DerBjoern

Benutzer
Mitglied seit
04. Jun 2020
Beiträge
7
Punkte für Reaktionen
1
Punkte
3
@haydibe

oh mann was doof...
kaum dreht man es um klappt es auch...

Danke dir!

Die Geschichte mit dem compose muss ich mir mal anschauen. Steige grade erst so langsam in Docker ein....
 

DerBjoern

Benutzer
Mitglied seit
04. Jun 2020
Beiträge
7
Punkte für Reaktionen
1
Punkte
3
Ok, habe es mittlerweile ans Laufen bekommen. Jedoch habe ich die SSL-Geschicte noch nicht hinbekommen. Auf meiner Synology auf die meine Domain zeigt habe ich ein Zertifikat für die Domain mit Let's Encrypt erstellt. Diese Zertifikate liegen soweit ich rausgefunden habe auf der syno in folgendem Ordner: /usr/syno/etc/certificates/_archive in enstprechendem Unterordner.
ist es möglich die dort liegenden Zertifikate für Matrix gleich mitzunutzen ohne das man sie immer manuell nach aktualisierung ins data-Verzeichnis kopieren muss?
Aber vorher muss ich generell erst mal das ssl ans laufen bekommen. Hat jemand ein beispiel wie es in seiner homeserver.yaml aussieht oder in seiner compose?
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.468
Punkte für Reaktionen
356
Punkte
103
Was spricht gegen den Reverse Proxy in DSM? Der ist unter "Systemsteuerung" -> "Anwendungsportal" -> Reiter "Reverse-Proxy" zu finden. Einfach als Quelle HTTPS, einen Hostnamen aka. deinen Domainnamen und einen Port angeben. Das Ziel ist dann http, der hostname localhost oder deine NAS-IP und der Port eben der Container Port. Dann musst Du nur noch unter "Systemsteuerung" -> "Sicherheit" -> Reiter "Zertifikat" den Knopf "Konfigurieren" drücken und dann deiner Domain das entsprechende LE-Zertifikat zuordnen. Ich würde IMMER den Syno-Reverseproxy verwenden, es sei denn man braucht komplere Reverse-Proxy-Regeln.

Falls Du es doch zu Fuß machen willst. Erstell Dir doch einfach einen Symlink von /usr/syno/etc/certificates/_archive auf den docker share... ln -s /usr/syno/etc/certificate/_archive /volume1/docker/certificates und pass die permissions von 400 auf 444 an. Dann einfach aus docker/certificates/{kürzel für dien zert} auslesen.
 
  • Like
Reaktionen: DerBjoern

DerBjoern

Benutzer
Mitglied seit
04. Jun 2020
Beiträge
7
Punkte für Reaktionen
1
Punkte
3
Super! Das ist ja noch einfacher als gedacht.
Nun klappt das auch mit dem Webclient von Riot.im. ohne https wollte der irgendwie nicht so richtig.
Als nächstes muss ich dann mal schauen wie ich die liberation zu anderen servern in gange bekomme
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.468
Punkte für Reaktionen
356
Punkte
103
Die Konfigurations-Datei fehlt. Direkt zu Beginn der Docker Hub Beschreibung steht, dass man diese erst erzeugen muss. Das muss relativ neu sein.

Laut https://hub.docker.com/r/matrixdotorg/synapse, Abschnitt "Generating a configuration file" muss man zuerst das hier machen:
Bash:
docker run -it --rm \
    --mount type=volume,src=synapse-data,dst=/data \
    -e SYNAPSE_SERVER_NAME=my.matrix.host \
    -e SYNAPSE_REPORT_STATS=yes \
    matrixdotorg/synapse:latest generate

Den Parameter --mount type=volume,src=synapse-data,dst=/data kannst Du mit -v /volume?/docker/matrix/data:/data überführen (bitte dabei das ? bei /volume? durch die richtige Volume-Nummer ersetzten). Ansonsten würde ich vorsichtshalber alle Environment-Variable mittels -e übergeben.

Schalte deinen bestehende Container in der UI bitte vorher aus. Ein temporärer Container sollte starten, die Config generieren und danach automatisch wieder entfernt werden. Danach kannst Du deinen Container in der UI wieder starten.

Viel Erfolg!
 
Zuletzt bearbeitet:

3x3cut0r

Benutzer
Mitglied seit
21. Mai 2011
Beiträge
489
Punkte für Reaktionen
11
Punkte
24
Hi,
ich habe mittlerweile auch synapse mittels Docker-Container zum laufen bekommen. Würde sowohl mit als auch ohne TLS laufen. Habe mich dafür entschieden TLS wegzulassen und dafür den synapse hinter den Reverse Proxy zu stecken.

Jetzt habe ich eine Grundsätzliche Frage zu Synapse weil hier gibt es widersprüchliche Angaben in der Dokumentation:
Auf welchem Port läuft nun die Federation?
Wenn ich in der homeserver.yaml schaue steht hier unter Port 8008 auch resources und dort names: [client, federation]
Daher gehe ich davon aus das sowohl clients sich am port 8008 anmelden als auch die federation über diesen Port stattfindet ... richtig?
Wenn ich nun aber in die Dokumentation schaue steht hier:
https://github.com/matrix-org/synapse/blob/master/docs/federate.md
das die Federation standardmäßig über 8448 läuft und ich es mit einer sogenannten Delegation:
https://github.com/matrix-org/synapse/blob/master/docs/delegate.mdumleiten muss. Was nun?

Wie mache ich diese Delegation im ReverseProxy bzw. nginx bei der Syno?
Anders werde ich sonst keine Öffentlichen Räume auf matrix.org mit meinem eigenen Homeserver joinen können.
Kann da jemand helfen?

Danke
 

ChiliApple

Benutzer
Mitglied seit
04. Dez 2013
Beiträge
240
Punkte für Reaktionen
7
Punkte
24
die Docker Version benötigt ja Python 3.7/3.6 ?! habt ihr die händisch auf die DS installiert?
ich bekomme baim starten von Synapse auch immer die Fehlermeldungen ...

bG Udo

Starting synapse with config file /data/homeserver.yaml
stdout
17:56:17Traceback (most recent call last):
stdout
17:56:17 File "/usr/local/lib/python3.7/runpy.py", line 193, in _run_module_as_main
stdout
17:56:17 "__main__", mod_spec)
 

3x3cut0r

Benutzer
Mitglied seit
21. Mai 2011
Beiträge
489
Punkte für Reaktionen
11
Punkte
24
Also ich hab nur das Python 3.5 Paket installiert auf der Syno. Aber wenn du Docker als Paket installierst wird er auch die abhängigkeiten installieren und du musst nicht irgendwas händisch nachinstallieren.

Wenn Synapse eine bestimmte Python Version braucht, dann bringt die ja auch der Docker Container Ersteller mit und auch da muss nichts händisch installiert werden.

Zu deinem Problem:
Poste mal den kompletten Traceback und nicht nur einen Teil, sonst kann man da keine Rückschlüsse ziehen.
Welchen Container versuchst du denn zu starten?
Ich verwende matrixdotorg/synapse:v1.19.1 und der läuft ohne Probleme.
 

ChiliApple

Benutzer
Mitglied seit
04. Dez 2013
Beiträge
240
Punkte für Reaktionen
7
Punkte
24
Wenn Synapse eine bestimmte Python Version braucht, dann bringt die ja auch der Docker Container Ersteller mit und auch da muss nichts händisch installiert werden.

Hallo,

natürlich, darauf hab ich nicht gedacht ...

Also der PostgresSQL läuft und nach meiner Ansicht nach hätte ich die Variablen richtig eingetragen.
Da ich Probleme mit der Erstellung der homeserver.yaml hab, hab ich die Datei in den Docker Ordner gelegt, diese wird auch gefunden und verwendet, hab verschiedene Inhalte getestet o.E.

Anbei die Daten der Dockers
Danke, bG Udo
 

Anhänge

  • Bildschirmfoto 2020-09-11 um 12.48.26.png
    Bildschirmfoto 2020-09-11 um 12.48.26.png
    425 KB · Aufrufe: 11
  • Bildschirmfoto 2020-09-11 um 12.47.42.png
    Bildschirmfoto 2020-09-11 um 12.47.42.png
    481,2 KB · Aufrufe: 11
  • Bildschirmfoto 2020-09-11 um 12.48.03.png
    Bildschirmfoto 2020-09-11 um 12.48.03.png
    214 KB · Aufrufe: 11

3x3cut0r

Benutzer
Mitglied seit
21. Mai 2011
Beiträge
489
Punkte für Reaktionen
11
Punkte
24
Dein Fehler der dich interessieren sollte steht ganz unten: [Error 13] Permission Denied: /media_store
Du hast den Container mit UID=1045 gemappt. Hat der Ordner /media_store auch den Benutzer 1045 als Besitzer?
 

3x3cut0r

Benutzer
Mitglied seit
21. Mai 2011
Beiträge
489
Punkte für Reaktionen
11
Punkte
24
mappst du irgendwelche volumes? kann man leider nicht sehen von den screenshots
 

ChiliApple

Benutzer
Mitglied seit
04. Dez 2013
Beiträge
240
Punkte für Reaktionen
7
Punkte
24
nein nicht das ich wüsste, ich habe in der GUI den Docker Ordner angegeben und den Mount Pfad mit /data
 


 

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