OffshoreVps
Anleitungen3 Okt. 20267 Min. LesezeitVon dem OffshoreVps-Team

So hosten Sie einen Matrix-Server (Synapse) auf einem VPS

Betreiben Sie Ihren eigenen Matrix-Homeserver mit Synapse, PostgreSQL und Docker: Konfiguration, HTTPS, Föderations-Delegation, Benutzer und Registrierung.

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.

Terminalfenster auf einem VPS mit den Befehlen zum Hosten eines Matrix-Servers, beginnend mit „mkdir -p ~/synapse && cd ~/synapse“
Die Art von Befehlen, die Sie in dieser Anleitung auf Ihrem Server ausführen.

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
Die Schritte dieser Anleitung in der Reihenfolge: 1. Was Sie zuerst wissen sollten; 2. Die Konfiguration erzeugen; 3. Auf PostgreSQL umstellen; 4. HTTPS und Föderation; 5. Benutzer anlegen und die Registrierung sperren; 6. Clients und Sorgfalt
Die Schritte dieser Anleitung in der Reihenfolge.

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.