Files
FEDEO/matrix/README.md

2.6 KiB

Matrix-Stack in der FEDEO Compose

Der Matrix-Stack liegt in derselben docker-compose.yml wie FEDEO und ist über das Compose-Profil matrix aktivierbar.

Enthaltene Dienste

  • matrix-db: PostgreSQL für Synapse
  • matrix-redis: Redis für Synapse und LiveKit
  • matrix-synapse: Matrix Homeserver
  • matrix-well-known: Auslieferung von .well-known/matrix/client und .well-known/matrix/server
  • matrix-turn: coturn für stabile WebRTC-Verbindungen
  • matrix-livekit: LiveKit SFU für MatrixRTC-Konferenzen
  • matrix-rtc-jwt: MatrixRTC Authorization Service für LiveKit-JWTs

Vorbereitung

Lege im Repo eine .env auf Basis von .env.example an und passe mindestens diese Werte an:

  • MATRIX_SERVER_NAME
  • MATRIX_HOMESERVER_HOST
  • MATRIX_RTC_HOST
  • MATRIX_TURN_HOST
  • MATRIX_POSTGRES_PASSWORD
  • MATRIX_TURN_SHARED_SECRET
  • LIVEKIT_KEY
  • LIVEKIT_SECRET

Passe außerdem die Dateien in matrix/well-known/ an, falls die Domains nicht fedeo.de, matrix.fedeo.de und call.fedeo.de heißen.

Synapse-Konfiguration erzeugen

Synapse benötigt vor dem ersten Start eine generierte homeserver.yaml. Der Befehl bleibt innerhalb derselben Compose:

docker compose --profile matrix run --rm \
  -e SYNAPSE_SERVER_NAME="${MATRIX_SERVER_NAME}" \
  -e SYNAPSE_REPORT_STATS=no \
  matrix-synapse generate

Danach matrix/synapse/homeserver.yaml prüfen und mindestens diese Punkte setzen:

public_baseurl: "https://matrix.fedeo.de/"

database:
  name: psycopg2
  args:
    user: synapse
    password: "<MATRIX_POSTGRES_PASSWORD>"
    database: synapse
    host: matrix-db
    cp_min: 5
    cp_max: 10

redis:
  enabled: true
  host: matrix-redis

turn_uris:
  - "turn:<MATRIX_TURN_HOST>:3478?transport=udp"
  - "turn:<MATRIX_TURN_HOST>:3478?transport=tcp"
turn_shared_secret: "<MATRIX_TURN_SHARED_SECRET>"
turn_user_lifetime: "1h"

experimental_features:
  msc3266_enabled: true
  msc4222_enabled: true

max_event_delay_duration: 24h
rc_message:
  per_second: 0.5
  burst_count: 30
rc_delayed_event_mgmt:
  per_second: 1
  burst_count: 20

Start

docker compose --profile matrix up -d

Ohne Profil startet weiterhin nur der bisherige FEDEO-Stack:

docker compose up -d

Hinweise

  • Die Matrix-Services sind bewusst im bestehenden Compose-Stack definiert, damit FEDEO nicht in mehrere Deployment-Dateien zerfällt.
  • Die aktuellen Ports für TURN und LiveKit müssen auf der Firewall des Servers freigegeben werden.
  • Federation sollte erst nach einer expliziten Entscheidung geöffnet werden. Für B2B-Kommunikation ist eine Allowlist sinnvoll.
  • Die Werte in .env.example sind Platzhalter und nicht produktionssicher.