====== Matrix / Synapse / Dendrite / Element (Riot) ======
[[https://www.golem.de/news/matrix-grundschule-forkt-messenger-2201-162562.amp.html|Grundschule forkt Messenger]] => eigener Matrix-Server + geforkter Matrix-Client "Fluffychat" => **"Hermannpost"** ist der neue Messenger für Grundschüler an der Gemeinschaftsgrundschule Hermannstraße in Stolberg
**[[https://status.matrix.org/]]**
===== Matrix (Protokoll) =====
* [[https://matrix.org/|Matrix]]
* [[https://matrix.org/docs/guides|Guides]] -> zum schlau lesen, empfohlen von //matrix.org//
* [[https://matrix.org/bridges|Bridges]] -> Kompatibilität mit anderen Diensten mithilfe einer Bridge
===== Synapse (Server) =====
* [[https://github.com/matrix-org/synapse]] -> 1st Gen Matrix homeserver (Python)
=== Installation ===
* [[https://github.com/matrix-org/synapse/blob/develop/INSTALL.md|Offizielle Anleitung zur Installation]]
* [[https://github.com/matrix-org/synapse/blob/develop/docs/reverse_proxy.md|Reverse Proxy aufsetzen]]
* [[https://github.com/matrix-org/synapse/blob/develop/docs/turn-howto.md|TURN Server benutzen (für zuverlässige IP-Telefonie)]]
== Linux Debian / Ubuntu (64-bit) ==
* Synapse installieren: ''apt install matrix-synapse python''
* eine zufällige Zeichenkette erzeugen: ''head -c 100 /dev/urandom | base64 | tr -cd '[:alnum:]' | cut -b-12''
* die gerade erzeugte zufällige Zeichenkette muss als Wert für die Variable ''registration_shared_secret'' eingetragen werden:
* ''vi /etc/matrix-synapse/homeserver.yaml''
* ''tls_certificate_path: "/etc/matrix-synapse/homeserver.tls.crt"''
* ''tls_private_key_path: "/etc/matrix-synapse/homeserver.tls.key"''
* ''tls_dh_params_path: "/etc/matrix-synapse/homeserver.tls.dh"''
* ''enable_registration: true''
* ''registration_shared_secret: "2VfccrQJr7OHNOZg44wqWRxVSGT9nc9q"''
* Die Ports ''8008'' (HTTP) und ''8448'' (HTTPS) im Router/Firewall freischalten -> **besser: Portweiterleitung mit Port ''443'' und nginx als reverse proxy für die internen Ports ''8008'' und ''8448''**
* ''service matrix-synapse start'' //das hat bei mir nicht funktioniert//
* ''/usr/bin/python3 -m synapse.app.homeserver -****-config-path=/etc/matrix-synapse/homeserver.yaml -****-config-path=/etc/matrix-synapse/conf.d/''
== FreeBSD 13.0 (64-bit) ==
> cd /usr/ports/net-im/py-matrix-synapse/ && make config
# This file is auto-generated by 'make config'.
# Options for py37-matrix-synapse-1.31.0
_OPTIONS_READ=py37-matrix-synapse-1.31.0
_FILE_COMPLETE_OPTIONS_LIST=DOCS LDAP OIDC PGSQL REDIS SQLITE URLPREVIEW
OPTIONS_FILE_SET+=DOCS
OPTIONS_FILE_UNSET+=LDAP
OPTIONS_FILE_UNSET+=OIDC
OPTIONS_FILE_SET+=PGSQL
OPTIONS_FILE_UNSET+=REDIS
OPTIONS_FILE_SET+=SQLITE
OPTIONS_FILE_SET+=URLPREVIEW
> cd /usr/ports/net-im/py-matrix-synapse/ && make clean && make && make install ; make clean
== FreeBSD 13.2 (64-bit) ==
> cd /usr/ports/textproc/py-tomli && make clean ; make deinstall ; make install ; make clean
> cd /usr/ports/devel/py-immutabledict && make clean ; make deinstall ; make install ; make clean
> cd /usr/ports/devel/py-packaging && make clean ; make deinstall ; make install ; make clean
> cd /usr/ports/print/libraqm && make clean ; make deinstall ; make install ; make clean
> cd /usr/ports/net-im/py-matrix-synapse/ && make config
> cd /usr/ports/net-im/py-matrix-synapse && make clean ; make deinstall ; make install ; make clean
=== Konfiguration ===
== FreeBSD 13.0 (64-bit) ==
Es wirtd auch ein gültiges SSL-Zertifikat benötigt.
Das kann man sich per [[::letsencrypt]] erstellen.
> vi /usr/local/etc/matrix-synapse/homeserver.yaml
server_name: "meinim.de"
pid_file: /var/run/matrix-synapse/homeserver.pid
public_baseurl: https://meinim.de/
allow_public_rooms_without_auth: true
allow_public_rooms_over_federation: true
listeners:
- port: 8008
tls: false
type: http
x_forwarded: true
bind_addresses: ['127.0.0.1']
resources:
- names: [client, federation]
compress: false
## TLS ##
acme:
account_key_file: /var/db/matrix-synapse/acme_account.key
database:
name: sqlite3
args:
database: /var/db/matrix-synapse/homeserver.db
log_config: "/usr/local/etc/matrix-synapse/meinim.de.log.config"
media_store_path: "/var/db/matrix-synapse/media_store"
max_upload_size: 50M
url_preview_accept_language:
- de
- en
enable_registration: true
registrations_require_3pid:
- email
default_identity_server: https://matrix.org
auto_join_rooms:
- "#public:meinim.de"
signing_key_path: "/usr/local/etc/matrix-synapse/meinim.de.signing.key"
trusted_key_servers:
- server_name: "matrix.org"
email:
smtp_host: mailout.emaildomain.de
smtp_port: 587
smtp_user: "emailbenutzer"
smtp_pass: "emailgeheim"
require_transport_security: true
notif_from: "meinim.de %(app)s Server "
> mkdir -p /var/db/matrix-synapse/media_store/
> chown -R synapse:synapse /var/db/matrix-synapse/
> service synapse restart
> service synapse status
> ls -lha /var/db/matrix-synapse/
zusätzliche Konfiguration für den [[::nginx]] reverse proxy:
location ~* ^(\/_matrix|\/_synapse\/client) {
proxy_pass http://localhost:8008;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $host;
# Nginx by default only allows file uploads up to 1M in size
# Increase client_max_body_size to match max_upload_size defined in homeserver.yaml
client_max_body_size 50M;
}
===== Dendrite (Server) =====
* [[https://github.com/matrix-org/dendrite]] -> 2nd Gen Matrix homeserver (Go) **noch alpha**
===== Element (Client) =====
* [[https://element.io/|Element (ehemals Riot)]]
* [[https://app.element.io/|Element WebApp]] -> Client
=== Installation ===
* [[https://element.io/get-started]]
== Linux Debian / Ubuntu (64-bit) ==
Vorbereitung:
apt install -y wget apt-transport-https
bis Ubuntu 20.04:
apt-key adv --recv-keys --keyserver keyserver.ubuntu.com C2850B265AC085BD
apt-key export C2850B265AC085BD > /etc/apt/trusted.gpg.d/element-desktop.asc
ab Ubuntu 22.04:
wget -qO /etc/apt/trusted.gpg.d/element-desktop.asc https://packages.element.io/debian/element-io-archive-keyring.asc
echo "deb [signed-by=/etc/apt/trusted.gpg.d/element-desktop.asc] https://packages.riot.im/debian default main" | tee /etc/apt/sources.list.d/element-desktop.list
oder
apt install ubuntu-dbgsym-keyring
echo 'deb [ signed-by=/usr/share/keyrings/element-io-archive-keyring.gpg ] https://packages.element.io/debian default main' | tee /etc/apt/sources.list.d/element-desktop.list
Installation:
apt install --only-upgrade ubuntu-dbgsym-keyring
apt update
apt install element-desktop