Madic-.matrix-synapse-auto-deploy
Automatische Bereitstellung für matrix-org/synapse
Diese Ansible-Rolle installiert automatisch einen einsatzbereiten Matrix Server auf jedem Server. Im Gegensatz zu den matrix-docker-ansible-deploy Rollen wird hier kein Docker verwendet, sondern stattdessen eine Python3 virtuelle Umgebung, zumindest für Synapse.
Dienste
Diese Rolle konfiguriert die folgenden Dienste auf deinem Server:
Synapse: Die Referenzimplementierung des "Homeservers" von Matrix vom Kernentwicklungsteam bei matrix.org
Coturn: STUN/TURN Server für WebRTC Audio-/Videokonferenzen
mxisd: Föderierter Matrix-Identitätsserver, zur Verbesserung der Privatsphäre (Dokumentation)
nginx: Webserver für riot.web und Reverse Proxy für Synapse und mxisd
postgresql: Datenbank für Synapse und mxisd
Riot: Weboberfläche, die für deinen Homeserver vorkonfiguriert ist
Let's Encrypt: TLS-Zertifikat für Riot und Synapse
Kleines Architekturübersicht
Voraussetzungen
- Git
- Ansible >= 2.6
- DNS-Einträge
- A-Einträge
- A-Eintrag für matrix-machine.yourdomain.tld.
- A-Eintrag für riot-webclient.yourdomain.tld.
- SRV-Eintrag
_matrix._tcp.yourdomain.tld. 3600 IN SRV 10 5 443 matrix-machine.yourdomain.tld.
_matrix-identity._tcp.yourdomain.tld. 3600 IN SRV 10 5 443 matrix-machine.yourdomain.tld.
- A-Einträge
Du solltest einen SRV-Eintrag wie diesen haben, um anderen Homeservern mitzuteilen, auf welchem Port sie kommunizieren müssen. Zusätzlich werden .well-known Dateien unter {{ matrix_well_known_location }} erstellt. Es liegt an dir, diese Dateien auf den Server zu verschieben, der deine Hauptdomain bedient.
Unterstützte Betriebssysteme
- Ubuntu 18.04
- Debian 9
Es sollte auch auf jedem Systemd-basierten Betriebssystem problemlos laufen. Du kannst gerne testen und mir Feedback geben (oder einen PR einreichen, um Unterstützung für dein Lieblingssystem hinzuzufügen).
Installation
Alle Variablen sind unter roles/matrix-synapse-auto-deploy/defaults/main.yml definiert. Du musst sie an deine Bedürfnisse anpassen. Schau dir die Datei playbook.example.yml für die wichtigsten Variablen an.
ansible-playbook playbook.example.yml --extra-vars "host=matrix.domain.com" -b -K
Viel Spaß
Du kannst jetzt über den Riot-Webclient oder durch Angabe deines Homeservers auf jeden anderen Client mit deinem Homeserver verbinden.