Matrix ist ein offenes Chat-Netzwerk. Wenn Sie Ihren eigenen Matrix-Homeserver betreiben, liegen Ihre Nachrichten und Konten auf Ihrem Server, und Sie können weiterhin mit Menschen auf anderen Matrix-Servern sprechen. Diese Anleitung installiert Synapse, den Referenz-Homeserver, mit Docker und PostgreSQL hinter HTTPS.
Was Sie zuerst wissen sollten
- Föderation. Ihr Server kann mit anderen kommunizieren, was bedeutet, dass er Bandbreite und Speicherplatz für die Räume nutzt, denen Sie beitreten. Kleine private Server sind genügsam. Der Beitritt zu sehr großen öffentlichen Räumen nicht.
- Größe. 2 vCPUs und 4 GB RAM passen zu einer kleinen Gruppe. Siehe Matrix-Server-Hosting.
- Domain. Sie brauchen eine Domain. Der Servername (zum Beispiel
example.com) ist Teil jeder Benutzer-ID und lässt sich später nicht ändern.
Schritt 1: Die Konfiguration erzeugen
mkdir -p ~/synapse && cd ~/synapse
docker run -it --rm -v $(pwd)/data:/data \
-e SYNAPSE_SERVER_NAME=example.com \
-e SYNAPSE_REPORT_STATS=no \
matrixdotorg/synapse:latest generate
Schritt 2: Auf PostgreSQL umstellen
SQLite ist der Standard, aber PostgreSQL ist für alles jenseits eines Tests besser. Bearbeiten Sie data/homeserver.yaml und ersetzen Sie den Block database:
database:
name: psycopg2
args:
user: synapse
password: CHANGE_ME
database: synapse
host: db
cp_min: 5
cp_max: 10
Schritt 3: Compose-Datei
services:
db:
image: postgres:16
restart: unless-stopped
environment:
POSTGRES_USER: synapse
POSTGRES_PASSWORD: CHANGE_ME
POSTGRES_DB: synapse
POSTGRES_INITDB_ARGS: "--encoding=UTF-8 --lc-collate=C --lc-ctype=C"
volumes:
- ./pgdata:/var/lib/postgresql/data
synapse:
image: matrixdotorg/synapse:latest
restart: unless-stopped
depends_on: [db]
ports:
- "127.0.0.1:8008:8008"
volumes:
- ./data:/data
docker compose up -d
docker compose logs -f synapse
Schritt 4: HTTPS und Föderation
Stellen Sie Synapse unter matrix.example.com bereit und veröffentlichen Sie eine Delegationsdatei, damit Ihr Servername example.com bleibt:
matrix.example.com {
reverse_proxy 127.0.0.1:8008
}
example.com {
handle /.well-known/matrix/server {
header Content-Type application/json
respond `{"m.server": "matrix.example.com:443"}`
}
handle /.well-known/matrix/client {
header Content-Type application/json
header Access-Control-Allow-Origin *
respond `{"m.homeserver": {"base_url": "https://matrix.example.com"}}`
}
}
Testen Sie die Föderation mit dem Matrix Federation Tester, sobald das DNS aktiv ist.
Schritt 5: Benutzer anlegen und die Registrierung sperren
docker compose exec synapse register_new_matrix_user -c /data/homeserver.yaml http://localhost:8008
Belassen Sie enable_registration auf false in homeserver.yaml, es sei denn, Sie möchten offene Registrierungen.
Clients und Sorgfalt
Nutzen Sie Element oder einen beliebigen Matrix-Client und melden Sie sich mit Ihrem Servernamen an. Sichern Sie den Ordner data und die Postgres-Daten und halten Sie Synapse aktuell. Lesen Sie zuerst die Server-Härtung.