KI-AGENT: Matrix-Stack in Docker Compose vorbereiten

This commit is contained in:
2026-05-18 14:58:27 +02:00
parent d9c3c8d07c
commit 3984e218db
6 changed files with 309 additions and 0 deletions

96
matrix/README.md Normal file
View File

@@ -0,0 +1,96 @@
# 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:
```bash
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:
```yaml
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
```bash
docker compose --profile matrix up -d
```
Ohne Profil startet weiterhin nur der bisherige FEDEO-Stack:
```bash
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.