<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.hostsharing.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Lki00-christoph</id>
	<title>Hostsharing Wiki - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.hostsharing.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Lki00-christoph"/>
	<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Spezial:Beitr%C3%A4ge/Lki00-christoph"/>
	<updated>2026-04-25T22:41:20Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Matrix_Synapse_installieren&amp;diff=4999</id>
		<title>Matrix Synapse installieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Matrix_Synapse_installieren&amp;diff=4999"/>
		<updated>2019-10-29T10:04:46Z</updated>

		<summary type="html">&lt;p&gt;Lki00-christoph: Worker eingefügt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Der Matrix Server &#039;&#039;Synapse&#039;&#039;, der sogenannte &#039;Homeserver&#039;, ist aktuell die einzige vollständige serverseitige Implementierung des Matrix-Protokolls.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Textkasten|gelb|Work in Progress|Leider funktioniert die Server-zu-Server-Kommunikation von Synapse hinter dem Apache-Proxy mit den genannten Rewrite-Rules nicht. Ausweg wären ein eigener Apache Webserver oder die Konfiguration der Server-zu-Server-Kommunikation auf einem anderen Port ohne Proxy}}&lt;br /&gt;
&lt;br /&gt;
Synapse wird bei Hostsharing als &#039;&#039;eigener Daemon&#039;&#039; betrieben. Der Betrieb ist im Shared Hosting anmelde- und kostenpflichtig. Daher emfpehlen wir für den Betrieb einen &#039;&#039;Managed Server&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Diese Anleitung beschreibt, wie man den Matrix-Homeserver Synapse auf der Managed Hosting Plattform von Hostsharing installieren kann. Dabei sind die User-IDs nach dem Schema @user:beispiel.de aufgebaut, der Homeserver an sich ist unter matrix.beispiel.de erreichbar.&lt;br /&gt;
&lt;br /&gt;
== Vorbereitungen ==&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe von HSAdmin werden angelegt:&lt;br /&gt;
# Ein User als Service-User mit &#039;&#039;/bin/bash&#039;&#039; als Shell, zum Beispiel Beispiel: &#039;&#039;xyz00-matrix&#039;&#039;&lt;br /&gt;
# Eine Domain mit &#039;&#039;xyz00-matrix&#039;&#039; als Domain-Administrator, zum Beispiel &#039;&#039;matrix.beispiel.de&#039;&#039;&lt;br /&gt;
# Einen Postgresql-User &#039;&#039;xyz00_matrixuser&#039;&#039; mit Passwort &#039;&#039;meinPasswort&#039;&#039;&lt;br /&gt;
# Eine Postgresql-Datenbank &#039;&#039;xyz00_matrixdb&#039;&#039; mit Datenbank-Owner &#039;&#039;xyz00_matrixuser&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Verwendete IP-Ports der Server-Dienste:&lt;br /&gt;
# Monit: xyz00.hostsharing.net:32800&lt;br /&gt;
# Synapse: localhost:32801&lt;br /&gt;
&lt;br /&gt;
== Installation von Synapse ==&lt;br /&gt;
&lt;br /&gt;
Installationsanleitung basierend auf https://github.com/matrix-org/synapse/blob/master/INSTALL.md#installing-from-source&lt;br /&gt;
&lt;br /&gt;
Als User &#039;&#039;xyz00-matrix&amp;quot; ein Python3 virtualenv erstellen&lt;br /&gt;
&lt;br /&gt;
 mkdir -p ~/synapse&lt;br /&gt;
 virtualenv -p python3 ~/synapse/env&lt;br /&gt;
 source ~/synapse/env/bin/activate&lt;br /&gt;
 pip install --upgrade pip&lt;br /&gt;
 pip install --upgrade setuptools&lt;br /&gt;
&lt;br /&gt;
Synapse und Postgres-Dependencies installieren&lt;br /&gt;
&lt;br /&gt;
 pip install matrix-synapse[postgres]&lt;br /&gt;
&lt;br /&gt;
Initiale Konfiguration mit richtigem server-name &amp;quot;beispiel.de&amp;quot; generieren, außerdem im laufenden Betrieb keine Statistiken an Matrix.org senden&lt;br /&gt;
&lt;br /&gt;
 cd ~/synapse&lt;br /&gt;
 python -m synapse.app.homeserver --server-name beispiel.de --config-path homeserver.yaml --generate-config --report-stats=no&lt;br /&gt;
&lt;br /&gt;
== Konfiguration von Synapse ==&lt;br /&gt;
&lt;br /&gt;
In die initial generierte Konfiguration muss noch die Port- und Datenbank-Konfiguration eingetragen werden:&lt;br /&gt;
&lt;br /&gt;
Port: Innerhalb der listener-section den Port 8008 auf 32801 (wie initial definiert) ändern, alles andere beibehalten:&lt;br /&gt;
&lt;br /&gt;
      - port: 32801&lt;br /&gt;
        tls: false&lt;br /&gt;
        bind_addresses: [&#039;::1&#039;, &#039;127.0.0.1&#039;]&lt;br /&gt;
        type: http&lt;br /&gt;
        x_forwarded: true&lt;br /&gt;
&lt;br /&gt;
Postgres-Datenbank:&lt;br /&gt;
&lt;br /&gt;
    database:&lt;br /&gt;
      # The database engine name&lt;br /&gt;
      name: &amp;quot;psycopg2&amp;quot;&lt;br /&gt;
      # Arguments to pass to the engine&lt;br /&gt;
      args:&lt;br /&gt;
        host: &amp;quot;localhost&amp;quot;&lt;br /&gt;
        database: &amp;quot;xyz00_matrixdb&amp;quot;&lt;br /&gt;
        user: &amp;quot;xyz00_matrixuser&amp;quot;&lt;br /&gt;
        password: &amp;quot;meinPasswort&amp;quot;&lt;br /&gt;
        cp_min: 5&lt;br /&gt;
        cp_max: 10&lt;br /&gt;
&lt;br /&gt;
== Starten der Dienste  ==&lt;br /&gt;
&lt;br /&gt;
Zum Start aller notwendigen Dienste wird in dieser Anleitung &#039;&#039;monit&#039;&#039; benutzt. Hier ein Beispiel für eine Datei &#039;&#039;.monitrc&#039;&#039; (überlange Zeilen werden hier im Wiki umgebrochen)&lt;br /&gt;
&lt;br /&gt;
Das monitpassword auf jeden Fall durch ein sicheres Passwort ersetzen:&lt;br /&gt;
&lt;br /&gt;
 set daemon 60&lt;br /&gt;
     with start delay 120&lt;br /&gt;
 set logfile /home/pacs/xyz00/users/matrix/monit/var/monit.log&lt;br /&gt;
 set idfile /home/pacs/xyz00/users/matrix/monit/var/monit.id&lt;br /&gt;
 set statefile /home/pacs/xyz00/users/matrix/monit/var/monit.state&lt;br /&gt;
 set mailserver localhost&lt;br /&gt;
 set mail-format { from: monit@matrix.beispiel.de }&lt;br /&gt;
 set alert matrix@matrix.beispiel.de&lt;br /&gt;
 set httpd port 32800 address xyz00.hostsharing.net &lt;br /&gt;
     allow matrix:monitpassword&lt;br /&gt;
 check process synapse with pidfile /home/pacs/xyz00/users/matrix/synapse/homeserver.pid&lt;br /&gt;
     start program &amp;quot;/bin/bash -c &#039;export VIRTUAL_ENV=$HOME/synapse/env &amp;amp;&amp;amp; export PATH=$VIRTUAL_ENV/bin:$PATH &amp;amp;&amp;amp; cd $HOME/synapse &amp;amp;&amp;amp; synctl start&#039;&amp;quot;&lt;br /&gt;
     stop program &amp;quot;/bin/bash -c &#039;/bin/kill $( cat $HOME/synapse/homeserver.pid )&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Cronjobs ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Cron&#039;&#039; wird für eine Aufgabe genutzt:&lt;br /&gt;
* Start von monit nach einem Server Reboot&lt;br /&gt;
&lt;br /&gt;
Einrichten der crontab mit &#039;&#039;cronttab -e&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 HOME=/home/pacs/xyz00/users/matrix&lt;br /&gt;
 MAILTO=matrix@matrix.beispiel.de&lt;br /&gt;
 &lt;br /&gt;
 @reboot /usr/bin/monit -c $HOME/.monitrc&lt;br /&gt;
&lt;br /&gt;
== Einrichten des Apache VHost ==&lt;br /&gt;
&lt;br /&gt;
Die &#039;&#039;~/doms/matrix.beispiel.de/.htaccess&#039;&#039; mit dem Editor der Wahl öffnen und &lt;br /&gt;
folgende Konfiguration einfügen:&lt;br /&gt;
&lt;br /&gt;
 DirectoryIndex disabled&lt;br /&gt;
 RewriteEngine On&lt;br /&gt;
 RewriteBase /&lt;br /&gt;
 RewriteCond %{REQUEST_FILENAME} !-f&lt;br /&gt;
 RewriteCond %{REQUEST_FILENAME} !-l&lt;br /&gt;
 RewriteRule .* http://localhost:32801%{REQUEST_URI} [NE,proxy]&lt;br /&gt;
 RequestHeader set X-Forwarded-Proto &amp;quot;https&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Well-Known unter beispiel.de ==&lt;br /&gt;
&lt;br /&gt;
Damit die User-Accounts das Format @user:beispiel.de haben, der Server aber unter matrix.beispiel.de erreichbar ist, müssen noch folgende zwei Dateien unter der Domain beispiel.de abgelegt werden:&lt;br /&gt;
&lt;br /&gt;
https://beispiel.de/.well-known/matrix/server&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;m.server&amp;quot;: &amp;quot;matrix.beispiel.de:443&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
https://beispiel.de/.well-known/matrix/client&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;m.homeserver&amp;quot;: {&lt;br /&gt;
     &amp;quot;base_url&amp;quot;: &amp;quot;https://matrix.beispiel.de&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;m.identity_server&amp;quot;: {&lt;br /&gt;
     &amp;quot;base_url&amp;quot;: &amp;quot;https://vector.im&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Für die muss noch der CORS-Header Access-Control-Allow-Origin &amp;quot;*&amp;quot; gesetzt werden, damit die Datei aus beliebigem Riot-Web im Browser abrufbar ist. Dazu in den Ordner .well-known/matrix/ folgende .htaccess anlegen:&lt;br /&gt;
&lt;br /&gt;
 Header set Access-Control-Allow-Origin &amp;quot;*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Die Dokumentation dazu findet man unter https://matrix.org/docs/spec/server_server/r0.1.2#get-well-known-matrix-server und https://matrix.org/docs/spec/client_server/r0.5.0#get-well-known-matrix-client&lt;br /&gt;
&lt;br /&gt;
== Update von Synapse ==&lt;br /&gt;
&lt;br /&gt;
 source ~/synapse/env/bin/activate&lt;br /&gt;
 pip install -U matrix-synapse[postgres]&lt;br /&gt;
 monit restart synapse&lt;br /&gt;
&lt;br /&gt;
== Riot-Web ==&lt;br /&gt;
&lt;br /&gt;
Riot-Web ist aus Server-Seite eine rein statische html+javascript-Kombination, daher:&lt;br /&gt;
&lt;br /&gt;
* Account und Domain anlegen (separat von der Synapse-Domain)&lt;br /&gt;
* aktuelles riot-web release .tgz herunterladen&lt;br /&gt;
* Symlink von htdocs-ssl auf entpacktes riot-web-Verzeichnis&lt;br /&gt;
* config.sample.json in config.json kopieren und Matrix-Homeserver-Einträge anpassen&lt;br /&gt;
* Piwik aus config.json entfernen&lt;br /&gt;
&lt;br /&gt;
== SAML mit Synapse ==&lt;br /&gt;
&lt;br /&gt;
Synapse unterstützt mit Version 1.1.0 SAML. Dazu wie folgt vorgehen:&lt;br /&gt;
&lt;br /&gt;
Das Paket xmlsec1 muss installiert sein:&lt;br /&gt;
&lt;br /&gt;
 $ xmlsec1  --version&lt;br /&gt;
 xmlsec1 1.2.23 (openssl)&lt;br /&gt;
&lt;br /&gt;
Das Python-Paket pysaml2 installieren&lt;br /&gt;
&lt;br /&gt;
 source synapse/env/bin/activate&lt;br /&gt;
 pip install pysaml2&lt;br /&gt;
&lt;br /&gt;
In der homeserver.yaml die SAML-Direktiven einkommentieren, hier mit dem Beispiel eines SAML IdP unter https://login.beispiel.de/simplesaml/saml2/idp/metadata.php:&lt;br /&gt;
&lt;br /&gt;
 # Once SAML support is enabled, a metadata file will be exposed at&lt;br /&gt;
 # https://&amp;lt;server&amp;gt;:&amp;lt;port&amp;gt;/_matrix/saml2/metadata.xml, which you may be able to &lt;br /&gt;
 # use to configure your SAML IdP with. Alternatively, you can manually configure&lt;br /&gt;
 # the IdP to use an ACS location of&lt;br /&gt;
 # https://&amp;lt;server&amp;gt;:&amp;lt;port&amp;gt;/_matrix/saml2/authn_response.&lt;br /&gt;
 #&lt;br /&gt;
 saml2_config:&lt;br /&gt;
   sp_config:&lt;br /&gt;
     # point this to the IdP&#039;s metadata. You can use either a local file or&lt;br /&gt;
     # (preferably) a URL.&lt;br /&gt;
     metadata:&lt;br /&gt;
       #local: [&amp;quot;saml2/idp.xml&amp;quot;]&lt;br /&gt;
       remote:&lt;br /&gt;
         - url: https://login.beispiel.de/simplesaml/saml2/idp/metadata.php&lt;br /&gt;
&lt;br /&gt;
Wichtig ist außerdem, dass die public_baseurl in der homeserver.yaml gesetzt ist, damit Synapse weiß, wie es erreichbar ist und dies in seine SP-Metadaten einbauen kann:&lt;br /&gt;
&lt;br /&gt;
 public_baseurl: https://matrix.beispiel.de/&lt;br /&gt;
&lt;br /&gt;
Die Service-Provider-Konfiguration als XML bekommt man von Synapse dann wie schon in der homeserver.yaml als Kommentar beschrieben, unter https://matrix.beispiel.de/_matrix/saml2/metadata.xml&lt;br /&gt;
&lt;br /&gt;
Diese dann in den SAML-IdP-importieren und dann sollte der Single-Sign-On via SAML funktionieren.&lt;br /&gt;
&lt;br /&gt;
== Federation Sender Worker für Synapse ==&lt;br /&gt;
&lt;br /&gt;
Zur Parallelisierung bietet Synapse das Konzept &amp;quot;Worker&amp;quot; an, die spezifische Aufgaben übernehmen, damit der Hauptprozess diese nicht durchführen muss.&lt;br /&gt;
&lt;br /&gt;
Details dazu: https://github.com/matrix-org/synapse/blob/master/docs/workers.md&lt;br /&gt;
&lt;br /&gt;
Ein einfach einzurichtender Worker, der auch viel Last abfedert, ist der Federation Sender Worker, da das Verschicken des Federation-Traffics 10-50% der Serverlast ausmacht.&lt;br /&gt;
&lt;br /&gt;
In der homeserver.yaml die Worker-Konfiguration aktivieren:&lt;br /&gt;
&lt;br /&gt;
 ## Worker ##&lt;br /&gt;
 worker_app: synapse.app.homeserver&lt;br /&gt;
 daemonize: true&lt;br /&gt;
&lt;br /&gt;
und dazugehörige Listener (Abschnitt listener:) aktivieren:&lt;br /&gt;
&lt;br /&gt;
 # The TCP replication port&lt;br /&gt;
 - port: 32892&lt;br /&gt;
   bind_address: &#039;127.0.0.1&#039;&lt;br /&gt;
   type: replication&lt;br /&gt;
 # The HTTP replication port&lt;br /&gt;
 - port: 32893&lt;br /&gt;
   bind_address: &#039;127.0.0.1&#039;&lt;br /&gt;
   type: http&lt;br /&gt;
   resources:&lt;br /&gt;
    - names: [replication]&lt;br /&gt;
&lt;br /&gt;
Funktionen, die Worker machen sollen, in der homeserver.yaml deaktivieren:&lt;br /&gt;
&lt;br /&gt;
 # disable federation sending here, use worker for it&lt;br /&gt;
 send_federation: False&lt;br /&gt;
&lt;br /&gt;
Dann Verzeichnis synapse/workers anlegen, darin federation_sender.yaml:&lt;br /&gt;
&lt;br /&gt;
 worker_app: synapse.app.federation_sender&lt;br /&gt;
 &lt;br /&gt;
 # The replication listener on the synapse to talk to.&lt;br /&gt;
 worker_replication_host: 127.0.0.1&lt;br /&gt;
 worker_replication_port: 32892&lt;br /&gt;
 worker_replication_http_port: 32893&lt;br /&gt;
 &lt;br /&gt;
 worker_daemonize: True&lt;br /&gt;
 worker_pid_file: /home/pacs/xyz00/users/matrix/synapse/federation_sender.pid&lt;br /&gt;
 worker_log_config: /home/pacs/xyz00/users/matrix/synapse/federation_sender.log.config&lt;br /&gt;
&lt;br /&gt;
.monitrc um worker erweitern:&lt;br /&gt;
&lt;br /&gt;
 check process federation_sender with pidfile /home/pacs/xyz00/users/matrix/synapse/federation_sender.pid&lt;br /&gt;
    start program &amp;quot;/bin/bash -c &#039;export VIRTUAL_ENV=$HOME/synapse/env &amp;amp;&amp;amp; export PATH=$VIRTUAL_ENV/bin:$PATH &amp;amp;&amp;amp; cd $HOME/synapse &amp;amp;&amp;amp; synctl -w workers/federation_sender.yaml start&#039;&amp;quot;&lt;br /&gt;
    stop program &amp;quot;/bin/bash -c &#039;/bin/kill $( cat $HOME/synapse/federation_sender.pid )&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Monit neu laden und synapse und federation_sender neustarten:&lt;br /&gt;
&lt;br /&gt;
 monit reload&lt;br /&gt;
 monit restart all&lt;br /&gt;
&lt;br /&gt;
Nach Updates ebenfalls immer Hauptprozess und alle Worker neustarten&lt;br /&gt;
&lt;br /&gt;
 monit restart all&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* https://matrix.org/docs/projects/server/synapse &lt;br /&gt;
* https://github.com/matrix-org/synapse&lt;br /&gt;
* https://github.com/matrix-org/synapse/blob/master/INSTALL.md&lt;br /&gt;
* https://matrix.org/docs/spec/&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;/div&gt;</summary>
		<author><name>Lki00-christoph</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Matrix_Synapse_installieren&amp;diff=4998</id>
		<title>Matrix Synapse installieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Matrix_Synapse_installieren&amp;diff=4998"/>
		<updated>2019-10-29T09:46:17Z</updated>

		<summary type="html">&lt;p&gt;Lki00-christoph: /* Installation von Synapse */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Der Matrix Server &#039;&#039;Synapse&#039;&#039;, der sogenannte &#039;Homeserver&#039;, ist aktuell die einzige vollständige serverseitige Implementierung des Matrix-Protokolls.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Textkasten|gelb|Work in Progress|Leider funktioniert die Server-zu-Server-Kommunikation von Synapse hinter dem Apache-Proxy mit den genannten Rewrite-Rules nicht. Ausweg wären ein eigener Apache Webserver oder die Konfiguration der Server-zu-Server-Kommunikation auf einem anderen Port ohne Proxy}}&lt;br /&gt;
&lt;br /&gt;
Synapse wird bei Hostsharing als &#039;&#039;eigener Daemon&#039;&#039; betrieben. Der Betrieb ist im Shared Hosting anmelde- und kostenpflichtig. Daher emfpehlen wir für den Betrieb einen &#039;&#039;Managed Server&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Diese Anleitung beschreibt, wie man den Matrix-Homeserver Synapse auf der Managed Hosting Plattform von Hostsharing installieren kann. Dabei sind die User-IDs nach dem Schema @user:beispiel.de aufgebaut, der Homeserver an sich ist unter matrix.beispiel.de erreichbar.&lt;br /&gt;
&lt;br /&gt;
== Vorbereitungen ==&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe von HSAdmin werden angelegt:&lt;br /&gt;
# Ein User als Service-User mit &#039;&#039;/bin/bash&#039;&#039; als Shell, zum Beispiel Beispiel: &#039;&#039;xyz00-matrix&#039;&#039;&lt;br /&gt;
# Eine Domain mit &#039;&#039;xyz00-matrix&#039;&#039; als Domain-Administrator, zum Beispiel &#039;&#039;matrix.beispiel.de&#039;&#039;&lt;br /&gt;
# Einen Postgresql-User &#039;&#039;xyz00_matrixuser&#039;&#039; mit Passwort &#039;&#039;meinPasswort&#039;&#039;&lt;br /&gt;
# Eine Postgresql-Datenbank &#039;&#039;xyz00_matrixdb&#039;&#039; mit Datenbank-Owner &#039;&#039;xyz00_matrixuser&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Verwendete IP-Ports der Server-Dienste:&lt;br /&gt;
# Monit: xyz00.hostsharing.net:32800&lt;br /&gt;
# Synapse: localhost:32801&lt;br /&gt;
&lt;br /&gt;
== Installation von Synapse ==&lt;br /&gt;
&lt;br /&gt;
Installationsanleitung basierend auf https://github.com/matrix-org/synapse/blob/master/INSTALL.md#installing-from-source&lt;br /&gt;
&lt;br /&gt;
Als User &#039;&#039;xyz00-matrix&amp;quot; ein Python3 virtualenv erstellen&lt;br /&gt;
&lt;br /&gt;
 mkdir -p ~/synapse&lt;br /&gt;
 virtualenv -p python3 ~/synapse/env&lt;br /&gt;
 source ~/synapse/env/bin/activate&lt;br /&gt;
 pip install --upgrade pip&lt;br /&gt;
 pip install --upgrade setuptools&lt;br /&gt;
&lt;br /&gt;
Synapse und Postgres-Dependencies installieren&lt;br /&gt;
&lt;br /&gt;
 pip install matrix-synapse[postgres]&lt;br /&gt;
&lt;br /&gt;
Initiale Konfiguration mit richtigem server-name &amp;quot;beispiel.de&amp;quot; generieren, außerdem im laufenden Betrieb keine Statistiken an Matrix.org senden&lt;br /&gt;
&lt;br /&gt;
 cd ~/synapse&lt;br /&gt;
 python -m synapse.app.homeserver --server-name beispiel.de --config-path homeserver.yaml --generate-config --report-stats=no&lt;br /&gt;
&lt;br /&gt;
== Konfiguration von Synapse ==&lt;br /&gt;
&lt;br /&gt;
In die initial generierte Konfiguration muss noch die Port- und Datenbank-Konfiguration eingetragen werden:&lt;br /&gt;
&lt;br /&gt;
Port: Innerhalb der listener-section den Port 8008 auf 32801 (wie initial definiert) ändern, alles andere beibehalten:&lt;br /&gt;
&lt;br /&gt;
      - port: 32801&lt;br /&gt;
        tls: false&lt;br /&gt;
        bind_addresses: [&#039;::1&#039;, &#039;127.0.0.1&#039;]&lt;br /&gt;
        type: http&lt;br /&gt;
        x_forwarded: true&lt;br /&gt;
&lt;br /&gt;
Postgres-Datenbank:&lt;br /&gt;
&lt;br /&gt;
    database:&lt;br /&gt;
      # The database engine name&lt;br /&gt;
      name: &amp;quot;psycopg2&amp;quot;&lt;br /&gt;
      # Arguments to pass to the engine&lt;br /&gt;
      args:&lt;br /&gt;
        host: &amp;quot;localhost&amp;quot;&lt;br /&gt;
        database: &amp;quot;xyz00_matrixdb&amp;quot;&lt;br /&gt;
        user: &amp;quot;xyz00_matrixuser&amp;quot;&lt;br /&gt;
        password: &amp;quot;meinPasswort&amp;quot;&lt;br /&gt;
        cp_min: 5&lt;br /&gt;
        cp_max: 10&lt;br /&gt;
&lt;br /&gt;
== Starten der Dienste  ==&lt;br /&gt;
&lt;br /&gt;
Zum Start aller notwendigen Dienste wird in dieser Anleitung &#039;&#039;monit&#039;&#039; benutzt. Hier ein Beispiel für eine Datei &#039;&#039;.monitrc&#039;&#039; (überlange Zeilen werden hier im Wiki umgebrochen)&lt;br /&gt;
&lt;br /&gt;
Das monitpassword auf jeden Fall durch ein sicheres Passwort ersetzen:&lt;br /&gt;
&lt;br /&gt;
 set daemon 60&lt;br /&gt;
     with start delay 120&lt;br /&gt;
 set logfile /home/pacs/xyz00/users/matrix/monit/var/monit.log&lt;br /&gt;
 set idfile /home/pacs/xyz00/users/matrix/monit/var/monit.id&lt;br /&gt;
 set statefile /home/pacs/xyz00/users/matrix/monit/var/monit.state&lt;br /&gt;
 set mailserver localhost&lt;br /&gt;
 set mail-format { from: monit@matrix.beispiel.de }&lt;br /&gt;
 set alert matrix@matrix.beispiel.de&lt;br /&gt;
 set httpd port 32800 address xyz00.hostsharing.net &lt;br /&gt;
     allow matrix:monitpassword&lt;br /&gt;
 check process synapse with pidfile /home/pacs/xyz00/users/matrix/synapse/homeserver.pid&lt;br /&gt;
     start program &amp;quot;/bin/bash -c &#039;export VIRTUAL_ENV=$HOME/synapse/env &amp;amp;&amp;amp; export PATH=$VIRTUAL_ENV/bin:$PATH &amp;amp;&amp;amp; cd $HOME/synapse &amp;amp;&amp;amp; synctl start&#039;&amp;quot;&lt;br /&gt;
     stop program &amp;quot;/bin/bash -c &#039;/bin/kill $( cat $HOME/synapse/homeserver.pid )&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Cronjobs ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Cron&#039;&#039; wird für eine Aufgabe genutzt:&lt;br /&gt;
* Start von monit nach einem Server Reboot&lt;br /&gt;
&lt;br /&gt;
Einrichten der crontab mit &#039;&#039;cronttab -e&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 HOME=/home/pacs/xyz00/users/matrix&lt;br /&gt;
 MAILTO=matrix@matrix.beispiel.de&lt;br /&gt;
 &lt;br /&gt;
 @reboot /usr/bin/monit -c $HOME/.monitrc&lt;br /&gt;
&lt;br /&gt;
== Einrichten des Apache VHost ==&lt;br /&gt;
&lt;br /&gt;
Die &#039;&#039;~/doms/matrix.beispiel.de/.htaccess&#039;&#039; mit dem Editor der Wahl öffnen und &lt;br /&gt;
folgende Konfiguration einfügen:&lt;br /&gt;
&lt;br /&gt;
 DirectoryIndex disabled&lt;br /&gt;
 RewriteEngine On&lt;br /&gt;
 RewriteBase /&lt;br /&gt;
 RewriteCond %{REQUEST_FILENAME} !-f&lt;br /&gt;
 RewriteCond %{REQUEST_FILENAME} !-l&lt;br /&gt;
 RewriteRule .* http://localhost:32801%{REQUEST_URI} [NE,proxy]&lt;br /&gt;
 RequestHeader set X-Forwarded-Proto &amp;quot;https&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Well-Known unter beispiel.de ==&lt;br /&gt;
&lt;br /&gt;
Damit die User-Accounts das Format @user:beispiel.de haben, der Server aber unter matrix.beispiel.de erreichbar ist, müssen noch folgende zwei Dateien unter der Domain beispiel.de abgelegt werden:&lt;br /&gt;
&lt;br /&gt;
https://beispiel.de/.well-known/matrix/server&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;m.server&amp;quot;: &amp;quot;matrix.beispiel.de:443&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
https://beispiel.de/.well-known/matrix/client&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;m.homeserver&amp;quot;: {&lt;br /&gt;
     &amp;quot;base_url&amp;quot;: &amp;quot;https://matrix.beispiel.de&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;m.identity_server&amp;quot;: {&lt;br /&gt;
     &amp;quot;base_url&amp;quot;: &amp;quot;https://vector.im&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Für die muss noch der CORS-Header Access-Control-Allow-Origin &amp;quot;*&amp;quot; gesetzt werden, damit die Datei aus beliebigem Riot-Web im Browser abrufbar ist. Dazu in den Ordner .well-known/matrix/ folgende .htaccess anlegen:&lt;br /&gt;
&lt;br /&gt;
 Header set Access-Control-Allow-Origin &amp;quot;*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Die Dokumentation dazu findet man unter https://matrix.org/docs/spec/server_server/r0.1.2#get-well-known-matrix-server und https://matrix.org/docs/spec/client_server/r0.5.0#get-well-known-matrix-client&lt;br /&gt;
&lt;br /&gt;
== Update von Synapse ==&lt;br /&gt;
&lt;br /&gt;
 source ~/synapse/env/bin/activate&lt;br /&gt;
 pip install -U matrix-synapse&lt;br /&gt;
 monit restart synapse&lt;br /&gt;
&lt;br /&gt;
== Riot-Web ==&lt;br /&gt;
&lt;br /&gt;
Riot-Web ist aus Server-Seite eine rein statische html+javascript-Kombination, daher:&lt;br /&gt;
&lt;br /&gt;
* Account und Domain anlegen (separat von der Synapse-Domain)&lt;br /&gt;
* aktuelles riot-web release .tgz herunterladen&lt;br /&gt;
* Symlink von htdocs-ssl auf entpacktes riot-web-Verzeichnis&lt;br /&gt;
* config.sample.json in config.json kopieren und Matrix-Homeserver-Einträge anpassen&lt;br /&gt;
* Piwik aus config.json entfernen&lt;br /&gt;
&lt;br /&gt;
== SAML mit Synapse ==&lt;br /&gt;
&lt;br /&gt;
Synapse unterstützt mit Version 1.1.0 SAML. Dazu wie folgt vorgehen:&lt;br /&gt;
&lt;br /&gt;
Das Paket xmlsec1 muss installiert sein:&lt;br /&gt;
&lt;br /&gt;
 $ xmlsec1  --version&lt;br /&gt;
 xmlsec1 1.2.23 (openssl)&lt;br /&gt;
&lt;br /&gt;
Das Python-Paket pysaml2 installieren&lt;br /&gt;
&lt;br /&gt;
 source synapse/env/bin/activate&lt;br /&gt;
 pip install pysaml2&lt;br /&gt;
&lt;br /&gt;
In der homeserver.yaml die SAML-Direktiven einkommentieren, hier mit dem Beispiel eines SAML IdP unter https://login.beispiel.de/simplesaml/saml2/idp/metadata.php:&lt;br /&gt;
&lt;br /&gt;
 # Once SAML support is enabled, a metadata file will be exposed at&lt;br /&gt;
 # https://&amp;lt;server&amp;gt;:&amp;lt;port&amp;gt;/_matrix/saml2/metadata.xml, which you may be able to &lt;br /&gt;
 # use to configure your SAML IdP with. Alternatively, you can manually configure&lt;br /&gt;
 # the IdP to use an ACS location of&lt;br /&gt;
 # https://&amp;lt;server&amp;gt;:&amp;lt;port&amp;gt;/_matrix/saml2/authn_response.&lt;br /&gt;
 #&lt;br /&gt;
 saml2_config:&lt;br /&gt;
   sp_config:&lt;br /&gt;
     # point this to the IdP&#039;s metadata. You can use either a local file or&lt;br /&gt;
     # (preferably) a URL.&lt;br /&gt;
     metadata:&lt;br /&gt;
       #local: [&amp;quot;saml2/idp.xml&amp;quot;]&lt;br /&gt;
       remote:&lt;br /&gt;
         - url: https://login.beispiel.de/simplesaml/saml2/idp/metadata.php&lt;br /&gt;
&lt;br /&gt;
Wichtig ist außerdem, dass die public_baseurl in der homeserver.yaml gesetzt ist, damit Synapse weiß, wie es erreichbar ist und dies in seine SP-Metadaten einbauen kann:&lt;br /&gt;
&lt;br /&gt;
 public_baseurl: https://matrix.beispiel.de/&lt;br /&gt;
&lt;br /&gt;
Die Service-Provider-Konfiguration als XML bekommt man von Synapse dann wie schon in der homeserver.yaml als Kommentar beschrieben, unter https://matrix.beispiel.de/_matrix/saml2/metadata.xml&lt;br /&gt;
&lt;br /&gt;
Diese dann in den SAML-IdP-importieren und dann sollte der Single-Sign-On via SAML funktionieren.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* https://matrix.org/docs/projects/server/synapse &lt;br /&gt;
* https://github.com/matrix-org/synapse&lt;br /&gt;
* https://github.com/matrix-org/synapse/blob/master/INSTALL.md&lt;br /&gt;
* https://matrix.org/docs/spec/&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;/div&gt;</summary>
		<author><name>Lki00-christoph</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=NodeJS&amp;diff=4997</id>
		<title>NodeJS</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=NodeJS&amp;diff=4997"/>
		<updated>2019-10-24T16:00:50Z</updated>

		<summary type="html">&lt;p&gt;Lki00-christoph: /* Eigene NodeJS Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Eigene NodeJS Installation ==&lt;br /&gt;
&lt;br /&gt;
Die JavaScript-Umgebung NodeJS für das Ausführen von JavaScript auf dem Server unterliegt noch einer rasanten Entwicklung.&lt;br /&gt;
Daher ist die Debian-Version, die bei Hostsharing vorinstalliert ist, oft zu alt für aktuelle Software.&lt;br /&gt;
&lt;br /&gt;
Ein kurze Anleitung für die eigene NodeJS-Installation für einen User.&lt;br /&gt;
&lt;br /&gt;
=== Installation von nvm ===&lt;br /&gt;
&lt;br /&gt;
Heute ist die Version v0.35.0  aktuell, siehe auch https://github.com/creationix/nvm/releases&lt;br /&gt;
&lt;br /&gt;
    $ touch ~/.profile&lt;br /&gt;
    $ chmod u+x ~/.profile&lt;br /&gt;
    $ cd /tmp&lt;br /&gt;
    $ wget https://raw.githubusercontent.com/creationix/nvm/v0.35.0/install.sh&lt;br /&gt;
    $ chmod u+x install.sh &lt;br /&gt;
    $ ./install.sh &lt;br /&gt;
&lt;br /&gt;
An dieser Stelle ab- und wieder anmelden oder die Befehle ausführen:&lt;br /&gt;
&lt;br /&gt;
    $ export NVM_DIR=&amp;quot;/home/pacs/xyz00/users/example/.nvm&amp;quot;&lt;br /&gt;
    $ [ -s &amp;quot;$NVM_DIR/nvm.sh&amp;quot; ] &amp;amp;&amp;amp; \. &amp;quot;$NVM_DIR/nvm.sh&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Bitte auf die bei der Installation ausgegebenen Zeilen am Ende achten, &lt;br /&gt;
denn neuere nvm-Versionen benötigen ggf. etwas andere Schritte zur sofortigen Aktivierung.&lt;br /&gt;
&lt;br /&gt;
=== Installation von NodeJS ===&lt;br /&gt;
&lt;br /&gt;
Zunächst prüfen, ob ein 32bit oder 64bit Linux auf dem jeweiligen Hostsharing-Host installiert ist:&lt;br /&gt;
&lt;br /&gt;
    dpkg --print-architecture&lt;br /&gt;
&lt;br /&gt;
==== Binärinstallation ====&lt;br /&gt;
&lt;br /&gt;
Diese Variante funktioniert  bei Hostsharing nur auf amd64 Systemen (64bit Linux auf 64bit CPU).&lt;br /&gt;
&lt;br /&gt;
    $ nvm install 4&lt;br /&gt;
    $ nvm alias default 4&lt;br /&gt;
&lt;br /&gt;
installiert (zum Beispiel) sehr einfach NodeJS in der Version 4.8.6 (27.11.2017).&lt;br /&gt;
&lt;br /&gt;
analog für die Version 6.x:&lt;br /&gt;
&lt;br /&gt;
    $ nvm install 6&lt;br /&gt;
    $ nvm alias default 6&lt;br /&gt;
&lt;br /&gt;
Hinweis: Auf i386 Systemen würde von nvn immer ein 64bit Node installiert werden, &lt;br /&gt;
das führt dann zu der Fehlermeldung: &amp;quot;libstdc++.so.6: cannot open shared object file&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== Soucecode-basierte Installation auf einem 32bit Linux ====&lt;br /&gt;
&lt;br /&gt;
Diese Variante funktioniert sowohl auf amd64 als auch auf i386 Systemen (32bit Linux auf 64bit CPU).&lt;br /&gt;
&lt;br /&gt;
    $ nvm install -s 8.9.1 --dest-cpu=ia32&lt;br /&gt;
    $ nvm alias default 8.9.1&lt;br /&gt;
&lt;br /&gt;
Die Sourcecode-basierte Installation benötigt temporär sehr viel Speicherplatz und bis zu 1 Stunde für Downloads und Kompilation.&lt;br /&gt;
Der Speicherplatz kann nach Fertigstellung wieder freigegeben werden, z.B.:&lt;br /&gt;
&lt;br /&gt;
    $ rm -r ~/.node  ~/.nvm/.cache/src/node-v8.9.1&lt;br /&gt;
&lt;br /&gt;
==== Überprüfung der Installation ====&lt;br /&gt;
&lt;br /&gt;
Der Befehl&lt;br /&gt;
&lt;br /&gt;
    $ node -v&lt;br /&gt;
&lt;br /&gt;
gibt die Version des aktiven NodeJS aus.&lt;br /&gt;
&lt;br /&gt;
=== NodeJS Web-Applikation ===&lt;br /&gt;
&lt;br /&gt;
Zur Integration der eigenen NodeJS-Installation in den Apache erfolgt über das  Apache-Modul &amp;quot;Passenger&amp;quot;.&lt;br /&gt;
Vor der Nutzung dieses Moduls bitte unbedingt die 	&lt;br /&gt;
[[Phusion Passenger|Hinweise zur Nutzung beachten]].&lt;br /&gt;
&lt;br /&gt;
Den Pfad zum node-Binärprogramm konfiguriert man in einer &amp;quot;.htaccess&amp;quot;-Datei im&lt;br /&gt;
Verzeichnis der Domain &amp;quot;/home/pacs/xyz00/users/example/doms/example.com/.htaccess&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
  PassengerNodejs /home/pacs/xyz00/users/example/.nvm/versions/node/v4.8.6/bin/node&lt;br /&gt;
&lt;br /&gt;
bzw.&lt;br /&gt;
&lt;br /&gt;
  PassengerNodejs /home/pacs/xyz00/users/example/.nvm/versions/node/v6.12.0/bin/node&lt;br /&gt;
&lt;br /&gt;
Für&#039;s Debugging ist die zusätzlich Option &lt;br /&gt;
&lt;br /&gt;
  PassengerFriendlyErrorPages On&lt;br /&gt;
&lt;br /&gt;
hilfreich.&lt;br /&gt;
&lt;br /&gt;
Zum Testen kann man eine &amp;quot;app.js&amp;quot; ins Verzeichnis &amp;quot;/home/pacs/xyz00/users/example/doms/example.com/app-ssl/&amp;quot; &lt;br /&gt;
ablegen.&lt;br /&gt;
&lt;br /&gt;
Eine minimale &amp;quot;app.js&amp;quot; zur Anzeige der NodeJS Version:&lt;br /&gt;
&lt;br /&gt;
    var http = require(&amp;quot;http&amp;quot;);&lt;br /&gt;
    http.createServer(function (request, response) {&lt;br /&gt;
       response.writeHead(200, {&#039;Content-Type&#039;: &#039;text/plain&#039;});&lt;br /&gt;
       response.write(&#039;node version &#039; + process.version + &#039;\n&#039;);&lt;br /&gt;
       response.end();&lt;br /&gt;
    }).listen(3000);&lt;br /&gt;
&lt;br /&gt;
Um diese App zu deaktivieren, muss die Datei gelöscht werden.&lt;br /&gt;
Es reicht nicht aus, eine etwaige Konfiguration aus der .htaccess zu entfernen.&lt;br /&gt;
&lt;br /&gt;
=== Weitere Installationen ===&lt;br /&gt;
&lt;br /&gt;
Mit dem &amp;quot;Node Package Manager&amp;quot; npm läßt sich weitere Software in die Node-Umgebung installieren:&lt;br /&gt;
&lt;br /&gt;
    $ npm install -g gulp&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Passenger]]&lt;br /&gt;
[[Kategorie:NodeJS]]&lt;/div&gt;</summary>
		<author><name>Lki00-christoph</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Matrix_Synapse_installieren&amp;diff=4924</id>
		<title>Matrix Synapse installieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Matrix_Synapse_installieren&amp;diff=4924"/>
		<updated>2019-07-09T19:43:03Z</updated>

		<summary type="html">&lt;p&gt;Lki00-christoph: /* Installation von Synapse */ Jinja2 ist seit 1.10 Teil der Default-Abhängigkeiten&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Der Matrix Server &#039;&#039;Synapse&#039;&#039;, der sogenannte &#039;Homeserver&#039;, ist aktuell die einzige vollständige serverseitige Implementierung des Matrix-Protokolls.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Textkasten|gelb|Work in Progress|Leider funktioniert die Server-zu-Server-Kommunikation von Synapse hinter dem Apache-Proxy mit den genannten Rewrite-Rules nicht. Ausweg wären ein eigener Apache Webserver oder die Konfiguration der Server-zu-Server-Kommunikation auf einem anderen Port ohne Proxy}}&lt;br /&gt;
&lt;br /&gt;
Synapse wird bei Hostsharing als &#039;&#039;eigener Daemon&#039;&#039; betrieben. Der Betrieb ist im Shared Hosting anmelde- und kostenpflichtig. Daher emfpehlen wir für den Betrieb einen &#039;&#039;Managed Server&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Diese Anleitung beschreibt, wie man den Matrix-Homeserver Synapse auf der Managed Hosting Plattform von Hostsharing installieren kann. Dabei sind die User-IDs nach dem Schema @user:beispiel.de aufgebaut, der Homeserver an sich ist unter matrix.beispiel.de erreichbar.&lt;br /&gt;
&lt;br /&gt;
== Vorbereitungen ==&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe von HSAdmin werden angelegt:&lt;br /&gt;
# Ein User als Service-User mit &#039;&#039;/bin/bash&#039;&#039; als Shell, zum Beispiel Beispiel: &#039;&#039;xyz00-matrix&#039;&#039;&lt;br /&gt;
# Eine Domain mit &#039;&#039;xyz00-matrix&#039;&#039; als Domain-Administrator, zum Beispiel &#039;&#039;matrix.beispiel.de&#039;&#039;&lt;br /&gt;
# Einen Postgresql-User &#039;&#039;xyz00_matrixuser&#039;&#039; mit Passwort &#039;&#039;meinPasswort&#039;&#039;&lt;br /&gt;
# Eine Postgresql-Datenbank &#039;&#039;xyz00_matrixdb&#039;&#039; mit Datenbank-Owner &#039;&#039;xyz00_matrixuser&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Verwendete IP-Ports der Server-Dienste:&lt;br /&gt;
# Monit: xyz00.hostsharing.net:32800&lt;br /&gt;
# Synapse: localhost:32801&lt;br /&gt;
&lt;br /&gt;
== Installation von Synapse ==&lt;br /&gt;
&lt;br /&gt;
Installationsanleitung basierend auf https://github.com/matrix-org/synapse/blob/master/INSTALL.md#installing-from-source&lt;br /&gt;
&lt;br /&gt;
Als User &#039;&#039;xyz00-matrix&amp;quot; ein Python3 virtualenv erstellen&lt;br /&gt;
&lt;br /&gt;
 mkdir -p ~/synapse&lt;br /&gt;
 virtualenv -p python3 ~/synapse/env&lt;br /&gt;
 source ~/synapse/env/bin/activate&lt;br /&gt;
 pip install --upgrade pip&lt;br /&gt;
 pip install --upgrade setuptools&lt;br /&gt;
&lt;br /&gt;
Synapse an sich installieren&lt;br /&gt;
&lt;br /&gt;
 pip install matrix-synapse&lt;br /&gt;
&lt;br /&gt;
Jinja2 und Postgres-Python-Bindings installieren&lt;br /&gt;
&lt;br /&gt;
 pip install psycopg2&lt;br /&gt;
&lt;br /&gt;
Initiale Konfiguration generieren, im laufenden Betrieb keine Statistiken an Matrix.org senden&lt;br /&gt;
&lt;br /&gt;
 cd ~/synapse&lt;br /&gt;
 python -m synapse.app.homeserver --server-name beispiel.de --config-path homeserver.yaml --generate-config --report-stats=no&lt;br /&gt;
&lt;br /&gt;
== Konfiguration von Synapse ==&lt;br /&gt;
&lt;br /&gt;
In die initial generierte Konfiguration muss noch die Port- und Datenbank-Konfiguration eingetragen werden:&lt;br /&gt;
&lt;br /&gt;
Port: Innerhalb der listener-section den Port 8008 auf 32801 (wie initial definiert) ändern, alles andere beibehalten:&lt;br /&gt;
&lt;br /&gt;
      - port: 32801&lt;br /&gt;
        tls: false&lt;br /&gt;
        bind_addresses: [&#039;::1&#039;, &#039;127.0.0.1&#039;]&lt;br /&gt;
        type: http&lt;br /&gt;
        x_forwarded: true&lt;br /&gt;
&lt;br /&gt;
Postgres-Datenbank:&lt;br /&gt;
&lt;br /&gt;
    database:&lt;br /&gt;
      # The database engine name&lt;br /&gt;
      name: &amp;quot;psycopg2&amp;quot;&lt;br /&gt;
      # Arguments to pass to the engine&lt;br /&gt;
      args:&lt;br /&gt;
        host: &amp;quot;localhost&amp;quot;&lt;br /&gt;
        database: &amp;quot;xyz00_matrixdb&amp;quot;&lt;br /&gt;
        user: &amp;quot;xyz00_matrixuser&amp;quot;&lt;br /&gt;
        password: &amp;quot;meinPasswort&amp;quot;&lt;br /&gt;
        cp_min: 5&lt;br /&gt;
        cp_max: 10&lt;br /&gt;
&lt;br /&gt;
== Starten der Dienste  ==&lt;br /&gt;
&lt;br /&gt;
Zum Start aller notwendigen Dienste wird in dieser Anleitung &#039;&#039;monit&#039;&#039; benutzt. Hier ein Beispiel für eine Datei &#039;&#039;.monitrc&#039;&#039; (überlange Zeilen werden hier im Wiki umgebrochen)&lt;br /&gt;
&lt;br /&gt;
Das monitpassword auf jeden Fall durch ein sicheres Passwort ersetzen:&lt;br /&gt;
&lt;br /&gt;
 set daemon 60&lt;br /&gt;
     with start delay 120&lt;br /&gt;
 set logfile /home/pacs/xyz00/users/matrix/monit/var/monit.log&lt;br /&gt;
 set idfile /home/pacs/xyz00/users/matrix/monit/var/monit.id&lt;br /&gt;
 set statefile /home/pacs/xyz00/users/matrix/monit/var/monit.state&lt;br /&gt;
 set mailserver localhost&lt;br /&gt;
 set mail-format { from: monit@matrix.beispiel.de }&lt;br /&gt;
 set alert matrix@matrix.beispiel.de&lt;br /&gt;
 set httpd port 32800 address xyz00.hostsharing.net &lt;br /&gt;
     allow matrix:monitpassword&lt;br /&gt;
 check process synapse with pidfile /home/pacs/xyz00/users/matrix/synapse/homeserver.pid&lt;br /&gt;
     start program &amp;quot;/bin/bash -c &#039;export VIRTUAL_ENV=$HOME/synapse/env &amp;amp;&amp;amp; export PATH=$VIRTUAL_ENV/bin:$PATH &amp;amp;&amp;amp; cd $HOME/synapse &amp;amp;&amp;amp; synctl start&#039;&amp;quot;&lt;br /&gt;
     stop program &amp;quot;/bin/bash -c &#039;/bin/kill $( cat $HOME/synapse/homeserver.pid )&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Cronjobs ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Cron&#039;&#039; wird für eine Aufgabe genutzt:&lt;br /&gt;
* Start von monit nach einem Server Reboot&lt;br /&gt;
&lt;br /&gt;
Einrichten der crontab mit &#039;&#039;cronttab -e&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 HOME=/home/pacs/xyz00/users/matrix&lt;br /&gt;
 MAILTO=matrix@matrix.beispiel.de&lt;br /&gt;
 &lt;br /&gt;
 @reboot /usr/bin/monit -c $HOME/.monitrc&lt;br /&gt;
&lt;br /&gt;
== Einrichten des Apache VHost ==&lt;br /&gt;
&lt;br /&gt;
Die &#039;&#039;~/doms/matrix.beispiel.de/.htaccess&#039;&#039; mit dem Editor der Wahl öffnen und &lt;br /&gt;
folgende Konfiguration einfügen:&lt;br /&gt;
&lt;br /&gt;
 DirectoryIndex disabled&lt;br /&gt;
 RewriteEngine On&lt;br /&gt;
 RewriteBase /&lt;br /&gt;
 RewriteCond %{REQUEST_FILENAME} !-f&lt;br /&gt;
 RewriteCond %{REQUEST_FILENAME} !-l&lt;br /&gt;
 RewriteRule .* http://localhost:32801%{REQUEST_URI} [NE,proxy]&lt;br /&gt;
 RequestHeader set X-Forwarded-Proto &amp;quot;https&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Well-Known unter beispiel.de ==&lt;br /&gt;
&lt;br /&gt;
Damit die User-Accounts das Format @user:beispiel.de haben, der Server aber unter matrix.beispiel.de erreichbar ist, müssen noch folgende zwei Dateien unter der Domain beispiel.de abgelegt werden:&lt;br /&gt;
&lt;br /&gt;
https://beispiel.de/.well-known/matrix/server&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;m.server&amp;quot;: &amp;quot;matrix.beispiel.de:443&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
https://beispiel.de/.well-known/matrix/client&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;m.homeserver&amp;quot;: {&lt;br /&gt;
     &amp;quot;base_url&amp;quot;: &amp;quot;https://matrix.beispiel.de&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;m.identity_server&amp;quot;: {&lt;br /&gt;
     &amp;quot;base_url&amp;quot;: &amp;quot;https://vector.im&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Für die muss noch der CORS-Header Access-Control-Allow-Origin &amp;quot;*&amp;quot; gesetzt werden, damit die Datei aus beliebigem Riot-Web im Browser abrufbar ist. Dazu in den Ordner .well-known/matrix/ folgende .htaccess anlegen:&lt;br /&gt;
&lt;br /&gt;
 Header set Access-Control-Allow-Origin &amp;quot;*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Die Dokumentation dazu findet man unter https://matrix.org/docs/spec/server_server/r0.1.2#get-well-known-matrix-server und https://matrix.org/docs/spec/client_server/r0.5.0#get-well-known-matrix-client&lt;br /&gt;
&lt;br /&gt;
== Update von Synapse ==&lt;br /&gt;
&lt;br /&gt;
 source ~/synapse/env/bin/activate&lt;br /&gt;
 pip install -U matrix-synapse&lt;br /&gt;
 monit restart synapse&lt;br /&gt;
&lt;br /&gt;
== Riot-Web ==&lt;br /&gt;
&lt;br /&gt;
Riot-Web ist aus Server-Seite eine rein statische html+javascript-Kombination, daher:&lt;br /&gt;
&lt;br /&gt;
* Account und Domain anlegen (separat von der Synapse-Domain)&lt;br /&gt;
* aktuelles riot-web release .tgz herunterladen&lt;br /&gt;
* Symlink von htdocs-ssl auf entpacktes riot-web-Verzeichnis&lt;br /&gt;
* config.sample.json in config.json kopieren und Matrix-Homeserver-Einträge anpassen&lt;br /&gt;
* Piwik aus config.json entfernen&lt;br /&gt;
&lt;br /&gt;
== SAML mit Synapse ==&lt;br /&gt;
&lt;br /&gt;
Synapse unterstützt mit Version 1.1.0 SAML. Dazu wie folgt vorgehen:&lt;br /&gt;
&lt;br /&gt;
Das Paket xmlsec1 muss installiert sein:&lt;br /&gt;
&lt;br /&gt;
 $ xmlsec1  --version&lt;br /&gt;
 xmlsec1 1.2.23 (openssl)&lt;br /&gt;
&lt;br /&gt;
Das Python-Paket pysaml2 installieren&lt;br /&gt;
&lt;br /&gt;
 source synapse/env/bin/activate&lt;br /&gt;
 pip install pysaml2&lt;br /&gt;
&lt;br /&gt;
In der homeserver.yaml die SAML-Direktiven einkommentieren, hier mit dem Beispiel eines SAML IdP unter https://login.beispiel.de/simplesaml/saml2/idp/metadata.php:&lt;br /&gt;
&lt;br /&gt;
 # Once SAML support is enabled, a metadata file will be exposed at&lt;br /&gt;
 # https://&amp;lt;server&amp;gt;:&amp;lt;port&amp;gt;/_matrix/saml2/metadata.xml, which you may be able to &lt;br /&gt;
 # use to configure your SAML IdP with. Alternatively, you can manually configure&lt;br /&gt;
 # the IdP to use an ACS location of&lt;br /&gt;
 # https://&amp;lt;server&amp;gt;:&amp;lt;port&amp;gt;/_matrix/saml2/authn_response.&lt;br /&gt;
 #&lt;br /&gt;
 saml2_config:&lt;br /&gt;
   sp_config:&lt;br /&gt;
     # point this to the IdP&#039;s metadata. You can use either a local file or&lt;br /&gt;
     # (preferably) a URL.&lt;br /&gt;
     metadata:&lt;br /&gt;
       #local: [&amp;quot;saml2/idp.xml&amp;quot;]&lt;br /&gt;
       remote:&lt;br /&gt;
         - url: https://login.beispiel.de/simplesaml/saml2/idp/metadata.php&lt;br /&gt;
&lt;br /&gt;
Wichtig ist außerdem, dass die public_baseurl in der homeserver.yaml gesetzt ist, damit Synapse weiß, wie es erreichbar ist und dies in seine SP-Metadaten einbauen kann:&lt;br /&gt;
&lt;br /&gt;
 public_baseurl: https://matrix.beispiel.de/&lt;br /&gt;
&lt;br /&gt;
Die Service-Provider-Konfiguration als XML bekommt man von Synapse dann wie schon in der homeserver.yaml als Kommentar beschrieben, unter https://matrix.beispiel.de/_matrix/saml2/metadata.xml&lt;br /&gt;
&lt;br /&gt;
Diese dann in den SAML-IdP-importieren und dann sollte der Single-Sign-On via SAML funktionieren.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* https://matrix.org/docs/projects/server/synapse &lt;br /&gt;
* https://github.com/matrix-org/synapse&lt;br /&gt;
* https://github.com/matrix-org/synapse/blob/master/INSTALL.md&lt;br /&gt;
* https://matrix.org/docs/spec/&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;/div&gt;</summary>
		<author><name>Lki00-christoph</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Matrix_Synapse_installieren&amp;diff=4923</id>
		<title>Matrix Synapse installieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Matrix_Synapse_installieren&amp;diff=4923"/>
		<updated>2019-07-09T19:41:26Z</updated>

		<summary type="html">&lt;p&gt;Lki00-christoph: SAML&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Der Matrix Server &#039;&#039;Synapse&#039;&#039;, der sogenannte &#039;Homeserver&#039;, ist aktuell die einzige vollständige serverseitige Implementierung des Matrix-Protokolls.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Textkasten|gelb|Work in Progress|Leider funktioniert die Server-zu-Server-Kommunikation von Synapse hinter dem Apache-Proxy mit den genannten Rewrite-Rules nicht. Ausweg wären ein eigener Apache Webserver oder die Konfiguration der Server-zu-Server-Kommunikation auf einem anderen Port ohne Proxy}}&lt;br /&gt;
&lt;br /&gt;
Synapse wird bei Hostsharing als &#039;&#039;eigener Daemon&#039;&#039; betrieben. Der Betrieb ist im Shared Hosting anmelde- und kostenpflichtig. Daher emfpehlen wir für den Betrieb einen &#039;&#039;Managed Server&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Diese Anleitung beschreibt, wie man den Matrix-Homeserver Synapse auf der Managed Hosting Plattform von Hostsharing installieren kann. Dabei sind die User-IDs nach dem Schema @user:beispiel.de aufgebaut, der Homeserver an sich ist unter matrix.beispiel.de erreichbar.&lt;br /&gt;
&lt;br /&gt;
== Vorbereitungen ==&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe von HSAdmin werden angelegt:&lt;br /&gt;
# Ein User als Service-User mit &#039;&#039;/bin/bash&#039;&#039; als Shell, zum Beispiel Beispiel: &#039;&#039;xyz00-matrix&#039;&#039;&lt;br /&gt;
# Eine Domain mit &#039;&#039;xyz00-matrix&#039;&#039; als Domain-Administrator, zum Beispiel &#039;&#039;matrix.beispiel.de&#039;&#039;&lt;br /&gt;
# Einen Postgresql-User &#039;&#039;xyz00_matrixuser&#039;&#039; mit Passwort &#039;&#039;meinPasswort&#039;&#039;&lt;br /&gt;
# Eine Postgresql-Datenbank &#039;&#039;xyz00_matrixdb&#039;&#039; mit Datenbank-Owner &#039;&#039;xyz00_matrixuser&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Verwendete IP-Ports der Server-Dienste:&lt;br /&gt;
# Monit: xyz00.hostsharing.net:32800&lt;br /&gt;
# Synapse: localhost:32801&lt;br /&gt;
&lt;br /&gt;
== Installation von Synapse ==&lt;br /&gt;
&lt;br /&gt;
Installationsanleitung basierend auf https://github.com/matrix-org/synapse/blob/master/INSTALL.md#installing-from-source&lt;br /&gt;
&lt;br /&gt;
Als User &#039;&#039;xyz00-matrix&amp;quot; ein Python3 virtualenv erstellen&lt;br /&gt;
&lt;br /&gt;
 mkdir -p ~/synapse&lt;br /&gt;
 virtualenv -p python3 ~/synapse/env&lt;br /&gt;
 source ~/synapse/env/bin/activate&lt;br /&gt;
 pip install --upgrade pip&lt;br /&gt;
 pip install --upgrade setuptools&lt;br /&gt;
&lt;br /&gt;
Synapse an sich installieren&lt;br /&gt;
&lt;br /&gt;
 pip install matrix-synapse&lt;br /&gt;
&lt;br /&gt;
Jinja2 und Postgres-Python-Bindings installieren&lt;br /&gt;
&lt;br /&gt;
 pip install jinja2 psycopg2&lt;br /&gt;
&lt;br /&gt;
Initiale Konfiguration generieren, im laufenden Betrieb keine Statistiken an Matrix.org senden&lt;br /&gt;
&lt;br /&gt;
 cd ~/synapse&lt;br /&gt;
 python -m synapse.app.homeserver --server-name beispiel.de --config-path homeserver.yaml --generate-config --report-stats=no&lt;br /&gt;
&lt;br /&gt;
== Konfiguration von Synapse ==&lt;br /&gt;
&lt;br /&gt;
In die initial generierte Konfiguration muss noch die Port- und Datenbank-Konfiguration eingetragen werden:&lt;br /&gt;
&lt;br /&gt;
Port: Innerhalb der listener-section den Port 8008 auf 32801 (wie initial definiert) ändern, alles andere beibehalten:&lt;br /&gt;
&lt;br /&gt;
      - port: 32801&lt;br /&gt;
        tls: false&lt;br /&gt;
        bind_addresses: [&#039;::1&#039;, &#039;127.0.0.1&#039;]&lt;br /&gt;
        type: http&lt;br /&gt;
        x_forwarded: true&lt;br /&gt;
&lt;br /&gt;
Postgres-Datenbank:&lt;br /&gt;
&lt;br /&gt;
    database:&lt;br /&gt;
      # The database engine name&lt;br /&gt;
      name: &amp;quot;psycopg2&amp;quot;&lt;br /&gt;
      # Arguments to pass to the engine&lt;br /&gt;
      args:&lt;br /&gt;
        host: &amp;quot;localhost&amp;quot;&lt;br /&gt;
        database: &amp;quot;xyz00_matrixdb&amp;quot;&lt;br /&gt;
        user: &amp;quot;xyz00_matrixuser&amp;quot;&lt;br /&gt;
        password: &amp;quot;meinPasswort&amp;quot;&lt;br /&gt;
        cp_min: 5&lt;br /&gt;
        cp_max: 10&lt;br /&gt;
&lt;br /&gt;
== Starten der Dienste  ==&lt;br /&gt;
&lt;br /&gt;
Zum Start aller notwendigen Dienste wird in dieser Anleitung &#039;&#039;monit&#039;&#039; benutzt. Hier ein Beispiel für eine Datei &#039;&#039;.monitrc&#039;&#039; (überlange Zeilen werden hier im Wiki umgebrochen)&lt;br /&gt;
&lt;br /&gt;
Das monitpassword auf jeden Fall durch ein sicheres Passwort ersetzen:&lt;br /&gt;
&lt;br /&gt;
 set daemon 60&lt;br /&gt;
     with start delay 120&lt;br /&gt;
 set logfile /home/pacs/xyz00/users/matrix/monit/var/monit.log&lt;br /&gt;
 set idfile /home/pacs/xyz00/users/matrix/monit/var/monit.id&lt;br /&gt;
 set statefile /home/pacs/xyz00/users/matrix/monit/var/monit.state&lt;br /&gt;
 set mailserver localhost&lt;br /&gt;
 set mail-format { from: monit@matrix.beispiel.de }&lt;br /&gt;
 set alert matrix@matrix.beispiel.de&lt;br /&gt;
 set httpd port 32800 address xyz00.hostsharing.net &lt;br /&gt;
     allow matrix:monitpassword&lt;br /&gt;
 check process synapse with pidfile /home/pacs/xyz00/users/matrix/synapse/homeserver.pid&lt;br /&gt;
     start program &amp;quot;/bin/bash -c &#039;export VIRTUAL_ENV=$HOME/synapse/env &amp;amp;&amp;amp; export PATH=$VIRTUAL_ENV/bin:$PATH &amp;amp;&amp;amp; cd $HOME/synapse &amp;amp;&amp;amp; synctl start&#039;&amp;quot;&lt;br /&gt;
     stop program &amp;quot;/bin/bash -c &#039;/bin/kill $( cat $HOME/synapse/homeserver.pid )&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Cronjobs ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Cron&#039;&#039; wird für eine Aufgabe genutzt:&lt;br /&gt;
* Start von monit nach einem Server Reboot&lt;br /&gt;
&lt;br /&gt;
Einrichten der crontab mit &#039;&#039;cronttab -e&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 HOME=/home/pacs/xyz00/users/matrix&lt;br /&gt;
 MAILTO=matrix@matrix.beispiel.de&lt;br /&gt;
 &lt;br /&gt;
 @reboot /usr/bin/monit -c $HOME/.monitrc&lt;br /&gt;
&lt;br /&gt;
== Einrichten des Apache VHost ==&lt;br /&gt;
&lt;br /&gt;
Die &#039;&#039;~/doms/matrix.beispiel.de/.htaccess&#039;&#039; mit dem Editor der Wahl öffnen und &lt;br /&gt;
folgende Konfiguration einfügen:&lt;br /&gt;
&lt;br /&gt;
 DirectoryIndex disabled&lt;br /&gt;
 RewriteEngine On&lt;br /&gt;
 RewriteBase /&lt;br /&gt;
 RewriteCond %{REQUEST_FILENAME} !-f&lt;br /&gt;
 RewriteCond %{REQUEST_FILENAME} !-l&lt;br /&gt;
 RewriteRule .* http://localhost:32801%{REQUEST_URI} [NE,proxy]&lt;br /&gt;
 RequestHeader set X-Forwarded-Proto &amp;quot;https&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Well-Known unter beispiel.de ==&lt;br /&gt;
&lt;br /&gt;
Damit die User-Accounts das Format @user:beispiel.de haben, der Server aber unter matrix.beispiel.de erreichbar ist, müssen noch folgende zwei Dateien unter der Domain beispiel.de abgelegt werden:&lt;br /&gt;
&lt;br /&gt;
https://beispiel.de/.well-known/matrix/server&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;m.server&amp;quot;: &amp;quot;matrix.beispiel.de:443&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
https://beispiel.de/.well-known/matrix/client&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;m.homeserver&amp;quot;: {&lt;br /&gt;
     &amp;quot;base_url&amp;quot;: &amp;quot;https://matrix.beispiel.de&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;m.identity_server&amp;quot;: {&lt;br /&gt;
     &amp;quot;base_url&amp;quot;: &amp;quot;https://vector.im&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Für die muss noch der CORS-Header Access-Control-Allow-Origin &amp;quot;*&amp;quot; gesetzt werden, damit die Datei aus beliebigem Riot-Web im Browser abrufbar ist. Dazu in den Ordner .well-known/matrix/ folgende .htaccess anlegen:&lt;br /&gt;
&lt;br /&gt;
 Header set Access-Control-Allow-Origin &amp;quot;*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Die Dokumentation dazu findet man unter https://matrix.org/docs/spec/server_server/r0.1.2#get-well-known-matrix-server und https://matrix.org/docs/spec/client_server/r0.5.0#get-well-known-matrix-client&lt;br /&gt;
&lt;br /&gt;
== Update von Synapse ==&lt;br /&gt;
&lt;br /&gt;
 source ~/synapse/env/bin/activate&lt;br /&gt;
 pip install -U matrix-synapse&lt;br /&gt;
 monit restart synapse&lt;br /&gt;
&lt;br /&gt;
== Riot-Web ==&lt;br /&gt;
&lt;br /&gt;
Riot-Web ist aus Server-Seite eine rein statische html+javascript-Kombination, daher:&lt;br /&gt;
&lt;br /&gt;
* Account und Domain anlegen (separat von der Synapse-Domain)&lt;br /&gt;
* aktuelles riot-web release .tgz herunterladen&lt;br /&gt;
* Symlink von htdocs-ssl auf entpacktes riot-web-Verzeichnis&lt;br /&gt;
* config.sample.json in config.json kopieren und Matrix-Homeserver-Einträge anpassen&lt;br /&gt;
* Piwik aus config.json entfernen&lt;br /&gt;
&lt;br /&gt;
== SAML mit Synapse ==&lt;br /&gt;
&lt;br /&gt;
Synapse unterstützt mit Version 1.1.0 SAML. Dazu wie folgt vorgehen:&lt;br /&gt;
&lt;br /&gt;
Das Paket xmlsec1 muss installiert sein:&lt;br /&gt;
&lt;br /&gt;
 $ xmlsec1  --version&lt;br /&gt;
 xmlsec1 1.2.23 (openssl)&lt;br /&gt;
&lt;br /&gt;
Das Python-Paket pysaml2 installieren&lt;br /&gt;
&lt;br /&gt;
 source synapse/env/bin/activate&lt;br /&gt;
 pip install pysaml2&lt;br /&gt;
&lt;br /&gt;
In der homeserver.yaml die SAML-Direktiven einkommentieren, hier mit dem Beispiel eines SAML IdP unter https://login.beispiel.de/simplesaml/saml2/idp/metadata.php:&lt;br /&gt;
&lt;br /&gt;
 # Once SAML support is enabled, a metadata file will be exposed at&lt;br /&gt;
 # https://&amp;lt;server&amp;gt;:&amp;lt;port&amp;gt;/_matrix/saml2/metadata.xml, which you may be able to &lt;br /&gt;
 # use to configure your SAML IdP with. Alternatively, you can manually configure&lt;br /&gt;
 # the IdP to use an ACS location of&lt;br /&gt;
 # https://&amp;lt;server&amp;gt;:&amp;lt;port&amp;gt;/_matrix/saml2/authn_response.&lt;br /&gt;
 #&lt;br /&gt;
 saml2_config:&lt;br /&gt;
   sp_config:&lt;br /&gt;
     # point this to the IdP&#039;s metadata. You can use either a local file or&lt;br /&gt;
     # (preferably) a URL.&lt;br /&gt;
     metadata:&lt;br /&gt;
       #local: [&amp;quot;saml2/idp.xml&amp;quot;]&lt;br /&gt;
       remote:&lt;br /&gt;
         - url: https://login.beispiel.de/simplesaml/saml2/idp/metadata.php&lt;br /&gt;
&lt;br /&gt;
Wichtig ist außerdem, dass die public_baseurl in der homeserver.yaml gesetzt ist, damit Synapse weiß, wie es erreichbar ist und dies in seine SP-Metadaten einbauen kann:&lt;br /&gt;
&lt;br /&gt;
 public_baseurl: https://matrix.beispiel.de/&lt;br /&gt;
&lt;br /&gt;
Die Service-Provider-Konfiguration als XML bekommt man von Synapse dann wie schon in der homeserver.yaml als Kommentar beschrieben, unter https://matrix.beispiel.de/_matrix/saml2/metadata.xml&lt;br /&gt;
&lt;br /&gt;
Diese dann in den SAML-IdP-importieren und dann sollte der Single-Sign-On via SAML funktionieren.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* https://matrix.org/docs/projects/server/synapse &lt;br /&gt;
* https://github.com/matrix-org/synapse&lt;br /&gt;
* https://github.com/matrix-org/synapse/blob/master/INSTALL.md&lt;br /&gt;
* https://matrix.org/docs/spec/&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;/div&gt;</summary>
		<author><name>Lki00-christoph</name></author>
	</entry>
</feed>