Matrix Server auf Unraid Home Server installieren?


waylin2

Recommended Posts

Hallo zusammen, ich hätte ein paar kurze Fragen zur Installation von einem Matrix Chat Server unter Unraid.

1. Reicht für den Betrieb von Matrix eine dyndns Adresse oder braucht man dafür eine vollwertige Domain?.

2. Welche Container soll ich genau dafür nehmen denn es gibt meiner Auffassung nach mehrere Docker Container unter Unraid die mit Matrix in Zusammenhang stehen.

 

Folgende Container sind mir in dem Zusammenhang aufgefallen:

matrix und 

synapse-admin und 

element-web von A75G

Benötige ich diese drei alle oder nur bestimmte Container?.

3. Wie sieht es mit der Einrichtung von Matrix aus macht dort ein Revers Proxy sinn , Habe bereits folgenden Revers Proxy Laufen NginxProxyManager von Djoss.

 

Für Hilfe bei der Einrichtung wäre ich echt dankbar, denn ich habe leider keine Anleitung zur Einrichtung eines Matrix Servers in Kombination mit Unraid gefunden.

Außerdem habe ich noch das Problem dass mein Englisch nicht sonderlich gut ist deswegen hatte ich hier auf deutschsprachige Hilfe gehofft.

 

Viele liebe Grüße! Waylin

Link to comment
  • 1 month later...

Hey,

Ich habe mich gestern mit Matrix auch mal beschäftigt und mir einen aufgesetzt.

On 7/6/2022 at 3:27 PM, waylin2 said:

1. Reicht für den Betrieb von Matrix eine dyndns Adresse oder braucht man dafür eine vollwertige Domain?.

Es reicht eine dyndns Adresse.

On 7/6/2022 at 3:27 PM, waylin2 said:

2. Welche Container soll ich genau dafür nehmen denn es gibt meiner Auffassung nach mehrere Docker Container unter Unraid die mit Matrix in Zusammenhang stehen.

Du brauchst nur einen Docker. Ich habe den Matrix-Synapse Docker genommen.

On 7/6/2022 at 3:27 PM, waylin2 said:

3. Wie sieht es mit der Einrichtung von Matrix aus macht dort ein Revers Proxy sinn , Habe bereits folgenden Revers Proxy Laufen NginxProxyManager von Djoss.

Ich benutze SWAG und es war kein problem Matrix dort einzubinden.

 

Ich bin zwar auch kein Experte aber falls du noch Probleme hast kann ich dir ja vielleicht helfen.

Link to comment
  • 2 weeks later...

Moin BuTscH Erstmal vielen Dank für deine Antwort und sorry dass ich jetzt erst darauf reagieren kann.

Deine Tipps haben mir schon mal sehr viel weitergeholfen die einzigen Probleme die ich jetzt noch habe sind die folgenden.

 

1. Ich bekomme die Telefoniefunktion die in Matrix integriert sein sollen irgendwie nicht ans laufen habe aber die Vermutung dass bei dem Docker Images was ich verwende der coturn Server fehlt und die Telefonie somit gar nicht funktionieren kann. Hast du damit Erfahrung?

2. Das nächste Problem was ich habe ist das Android Geräte wenn sie im Stand-by sind keine Push Benachrichtigungen bekommen die Frage die sich für mich abschließend nicht klären ließ ist liegt es an der App auf dem Gerät oder am Server hast du diesbezüglich auch schon mal solche Probleme gehabt?

 

Für eine Antwort wäre ich echt dankbar.

 

LG Waylin

Link to comment
2 hours ago, waylin2 said:

1. Ich bekomme die Telefoniefunktion die in Matrix integriert sein sollen irgendwie nicht ans laufen habe aber die Vermutung dass bei dem Docker Images was ich verwende der coturn Server fehlt und die Telefonie somit gar nicht funktionieren kann. Hast du damit Erfahrung?

Ja das ist richtig, du benötigst dafür einen Turn Server. Da ich schon einen laufen hatte für Nextcloud habe ich diesen auch für Matrix verwendet.
Das wäre der Stun-Turn-Server von ich777.

Dieser ist super leicht einzurichten einfach domain, passwort, und Land auswählen, dann noch den Port in deinem Router freigeben.

Dann musst du nur noch die homeserver.yaml von deinen Matrix Server berarbeiten dies einfügen und durch deine Domain+Port und Passwort des Turn Servers ersetzen.

turn_uris: [ "turn:turn.matrix.org?transport=udp", "turn:turn.matrix.org?transport=tcp" ]
turn_shared_secret: "n0t4ctuAllymatr1Xd0TorgSshar3d5ecret4obvIousreAsons"
turn_user_lifetime: 86400000
turn_allow_guests: True

Hier auch auch nochmal der Link zum Wik: https://matrix-org.github.io/synapse/v1.39/turn-howto.html

 

2 hours ago, waylin2 said:

2. Das nächste Problem was ich habe ist das Android Geräte wenn sie im Stand-by sind keine Push Benachrichtigungen bekommen

Das hört sich für mich ganz so an das irgendein Energiesparmodus die App im hintergrund killt. Schau mal in deinen App einstellungen vom Android system nach ob du dort was findest.

Ich kann zumindest sagen das bei mir und meinen bekannten, die Element app auf android zuverlässig push nachrichten versendet.
 

Link to comment
  • 1 month later...

Hallo Zusammen,

 

ich habe Matrix-Synapse auch installiert und soweit ist auch erstmal alles gut.

 

Server ist von Außen erreichbar unter:

 

matrix.jomisa.eu

 

Nur bekomme keine Verbindung zur Federation.

 

Quote

2022-10-07 20:53:01,700 - synapse.http.matrixfederationclient - 709 - WARNING - POST-582 - {GET-O-3} [matrix.org] Request failed: GET matrix://matrix.org/_matrix/federation/v1/publicRooms?include_all_networks=false&limit=20: HttpResponseException('401: Unauthorized')
2022-10-07 20:53:01,701 - synapse.http.server - 107 - INFO - POST-582 - <XForwardedForRequest at 0x14d10f59d0a0 method='POST' uri='/_matrix/client/r0/publicRooms?server=matrix.org' clientproto='HTTP/1.1' site='8448'> SynapseError: 502 - Failed to fetch room list
2022-10-07 20:53:01,702 - synapse.access.http.8448 - 459 - INFO - POST-582 - 79.252.106.116 - 8448 - {@sascha:matrix.jomisa.eu} Processed request: 16.344sec/0.001sec (0.003sec, 0.001sec) (0.000sec/0.000sec/0) 59B 502 "POST /_matrix/client/r0/publicRooms?server=matrix.org HTTP/1.1" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Element/1.11.5 Chrome/104.0.5112.81 Electron/20.0.3 Safari/537.36" [0 dbevts]

 

Port 8008 & 8448 leite ich vom Router zu NgnixPM und von da aus auf 8448.

 

# https://matrix-org.github.io/synapse/latest/usage/configuration/config_documentation.html
server_name: "matrix.jomisa.eu"
pid_file: /data/homeserver.pid
listeners:
  - port: 8448
    tls: false
    type: http
    x_forwarded: true
    bind_addresses: ['172.19.0.3'] # Either set to 0.0.0.0 or ip address it uses for network bridge.
    resources:
      - names: [client, federation]
        compress: false
database:
  name: sqlite3
  args:
    database: /data/homeserver.db
log_config: "/data/matrix.jomisa.eu.log.config"
media_store_path: /data/media_store
registration_shared_secret: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
report_stats: false
macaroon_secret_key: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
form_secret: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
signing_key_path: "/data/matrix.jomisa.eu.signing.key"
trusted_key_servers:
  - server_name: "matrix.org"
federation_domain_whitelist:
    - example.com
    - matrix.org
    - something.net
suppress_key_server_warning: true
# I recommend enabling this if you want outside users to be able to access your public rooms.
# I believe they can still join your rooms via an invite if this option is disabled.
allow_public_rooms_over_federation: true

# Enable registration for new users.
enable_registration: true 
enable_registration_without_verification: true

 

 

Wo ist denn hier mein Denkfehler?

 

Edited by Sascha Hermann
Link to comment

Einfach mal ein schuß ins blaue haste du dies zu deinem ReversProxy hinzugefügt?

 location /.well-known/matrix/client {
                return 200 '{"m.server": {"base_url": "deinematrixadresse:443"}}';
                default_type application/json;
                add_header Access-Control-Allow-Origin *;
        }
        
        location /.well-known/matrix/server {
                default_type application/json;
                add_header Access-Control-Allow-Origin *;
                return 200 '{"m.server":"deinematrixadresse:443"}';
        }

 

Danach solltest du eigentlich in der Lage sein mit leuten von anderen Matrix servern zu schreiben.

 

Hier bei Step 7 gut berschrieben
https://theselfhostingblog.com/posts/self-hosting-your-own-matrix-server-on-a-raspberry-pi/

Edited by BuTscH
Link to comment
  • 3 weeks later...

Ganz vielen Dank. Leider bleibt der Fehler bestehend.

 

Traceback (most recent call last):
  File "/usr/local/lib/python3.10/dist-packages/urllib3/connection.py", line 174, in _new_conn
    conn = connection.create_connection(
  File "/usr/local/lib/python3.10/dist-packages/urllib3/util/connection.py", line 95, in create_connection
    raise err
  File "/usr/local/lib/python3.10/dist-packages/urllib3/util/connection.py", line 85, in create_connection
    sock.connect(sa)
ConnectionRefusedError: [Errno 111] Connection refused

 

Der, wie ich glaube, relevante Teil meiner Config:

 

server_name: "meine.domain.de"
pid_file: /data/homeserver.pid
web_client_location: https://element.domain.de
public_baseurl: https://meine.domaim.de
listeners:
  - port: 8008
    tls: false
    type: http
    x_forwarded: true
    bind_addresses: ['0.0.0.0']
    resources:
      - names: [client,federation]
        compress: false
database:
  name: psycopg2
  args:
    user: matrix
    password: "DBPW!"
    database: synapse
    host: UNRAID_IP
    port: 5432
    cp_min: 5
    cp_max: 10

 

Link to comment

Sieht für mich so aus als ob du nicht zu deiner database connecten kannst.

Benutzt du den Matrix-Synapse Docker? Falls ja

Versuch zum testen mal die Standard config die der Server beim ersten start erstellt.
Wenn es dort klappt weißt du zumindest das es daran liegt ^^

 

Edit:

Zu Postgres hab ich folgendes gefunden vielleicht hilft dir das ja weiter:

https://github.com/matrix-org/synapse/blob/develop/docs/postgres.md

 

Ansonsten kann ich leider nicht viel dazu sagen da ich die Interne sqlite3 Database vom Matrix Server benutze.

Edited by BuTscH
Link to comment

Merkwürdig... 🤨

ich habe grade zum testen mal einen ganz frischen Matrix-Synapse Docker erstellt die Standard config so gelassen wie sie vom server erstellt wird und konnte mit:

register_new_matrix_user -c /data/homeserver.yaml http://0.0.0.0:8008

im Docker sofort ohne Probleme einen User erstellen.

Benutzt du denn den Matrix-Synapse Docker? Oder einen anderen?

Link to comment

Herzlichen Dank dir. Ich hab nun auch nochmal frisch gestartet. Tatsächlich hatte ich den Matrix Docker gewählt. Mit dem Matrix Synapse Docker und der SQLite DB geht es nun. Danke danke. 

 

Federation hat dann gestern Abend auch noch geklappt. Ich benutze den NgnixProxyManager und habe unter Advanced folgendes eingetragen:

 

location /.well-known/matrix/server {
     return 200 '{"m.server": "matrix.meinedomain.de:443"}';
     default_type application/json;
     add_header Access-Control-Allow-Origin *;

}

     location /.well-known/matrix/client {
     return 200 '{"m.homeserver": {"base_url": "https://matrix.meinedomain.de"}}';
     default_type application/json;
     add_header Access-Control-Allow-Origin *;

  }

 

Link to comment
On 10/26/2022 at 9:54 AM, m1rc0 said:

Herzlichen Dank dir. Ich hab nun auch nochmal frisch gestartet. Tatsächlich hatte ich den Matrix Docker gewählt. Mit dem Matrix Synapse Docker und der SQLite DB geht es nun. Danke danke. 

 

Federation hat dann gestern Abend auch noch geklappt. Ich benutze den NgnixProxyManager und habe unter Advanced folgendes eingetragen:

 

location /.well-known/matrix/server {
     return 200 '{"m.server": "matrix.meinedomain.de:443"}';
     default_type application/json;
     add_header Access-Control-Allow-Origin *;

}

     location /.well-known/matrix/client {
     return 200 '{"m.homeserver": {"base_url": "https://matrix.meinedomain.de"}}';
     default_type application/json;
     add_header Access-Control-Allow-Origin *;

  }

 

 

Oh, mann. Das war es auch bei mir. Den ersten Block hatte ich eingetragen, aber den zweiten Block nicht.

 

Endlich klappt es mit der Federation. Habe mich  2 Wochen tot gegoogelt und probiert.

 

Danke Euch!!!!!!

Link to comment
  • 2 months later...

Moin Zusammen   

hab synapse mit nginx und duckdns am laufen komme mit dem pc auch rein konnte benutzer erstellen  aber mit dem handy keine chance  weiß wer rat ?

 

 

Ok nach dem neustart geht gar nix mehr ^^ nur das unter der url der matrix server läuft das wars auch 

Edited by Lordgizmo
Link to comment

ja mein fehler sry 

hier meine matrix config 

 

Spoiler

# Configuration file for Synapse.
#
# This is a YAML file: see [1] for a quick introduction. Note in particular
# that *indentation is important*: all the elements of a list or dictionary
# should have the same indentation.
#
# [1] https://docs.ansible.com/ansible/latest/reference_appendices/YAMLSyntax.html
#
# For more information on how to configure Synapse, including a complete accounting of
# each option, go to docs/usage/configuration/config_documentation.md or
# https://matrix-org.github.io/synapse/latest/usage/configuration/config_documentation.html
server_name: "matrix.gizmocloud5.duckdns.org"
pid_file: /data/homeserver.pid
listeners:
  - port: 8008
    tls: false
    type: http
    x_forwarded: true
    resources:
      - names: [client, federation]
        compress: false
database:
  name: sqlite3
  args:
    database: /data/homeserver.db
log_config: "/data/matrix.gizmocloud5.duckdns.org.log.config"
media_store_path: /data/media_store
registration_shared_secret: "zensiert"
report_stats: false
macaroon_secret_key: "zensiert"
form_secret: "zensiert"
signing_key_path: "/data/matrix.gizmocloud5.duckdns.org.signing.key"
trusted_key_servers:
  - server_name: "matrix.org"
  
suppress_key_server_warning: true
  
  # Enable registration for new users.
enable_registration: true
enable_registration_without_verification: true
registration_shared_secret: "zensiert"
trusted_third_party_id_servers:
    - matrix.org
    - vector.im
    - riot.im
    - matrix.gizmocloud5.duckdns.org

allow_public_rooms_over_federation: true
allow_public_rooms_without_auth: false
enable_search: true
push:
include_content: true
group_unread_count_by_room: true


# vim:ft=yaml

beim aufrufen der url zeigt er das Matrix läuft 

 

so nginx ist wie folgt konfiguriert sie bild

im advanced tab hab ich folgendes stehen 

 

location /.well-known/matrix/server {
     return 200 '{"m.server": "matrix.gizmocloud5.duckdns.org"}';
     default_type application/json;
     add_header Access-Control-Allow-Origin *;

}

     location /.well-known/matrix/client {
     return 200 '{"m.homeserver": {"base_url": "https://matrix.gizmocloud5.duckdns.org:443"}}';
     default_type application/json;
     add_header Access-Control-Allow-Origin *;

  }

 

ports in der fritz sind frei 

 

Bild_2023-01-28_104418283.png

Link to comment
5 hours ago, Lordgizmo said:

genau matrix ist ein chat server den ich in verbindung mit element benutzen möchte.

 

Das beantwortet nicht meine Frage. Nutzt der zur Kommunikation HTTP/HTTPS oder ein anderes Protokoll? Das ist wichtig, denn Nginx unterstützt nur HTTP/HTTPS.

 

5 hours ago, Lordgizmo said:

Im bild sieht man das er läuft

Nun dann liegt das Problem wohl bei der Applikation und nicht beim Proxy. Check die Logs von Matrix.

Link to comment
4 hours ago, mgutt said:

Das beantwortet nicht meine Frage. Nutzt der zur Kommunikation HTTP/HTTPS oder ein anderes Protokoll? Das ist wichtig, denn Nginx unterstützt nur HTTP/HTTPS.

 

Nun dann liegt das Problem wohl bei der Applikation und nicht beim Proxy. Check die Logs von Matrix.

nutzt http      ich check die logs wenn ich wieder in der nähe bin   

 

und lese mir mal den artikel von fir3drag0n durch 

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.