82 lines
2.6 KiB
Markdown
82 lines
2.6 KiB
Markdown
---
|
|
gitea: none
|
|
include_toc: true
|
|
---
|
|
|
|
# A complete Matrix installation
|
|
|
|
This is going to be a Matrix installation with all bells and whistles. Not
|
|
just the server, but every other bit that you need or want.
|
|
|
|
We're building it with workers, so it will scale.
|
|
|
|
## Overview
|
|
|
|
* [Synapse](https://element-hq.github.io/synapse/latest/)
|
|
* Webclient
|
|
* Element Call
|
|
* Management with [Synapse-Admin](https://github.com/Awesome-Technologies/synapse-admin)
|
|
* Moderation with [Draupnir](https://github.com/the-draupnir-project/Draupnir)
|
|
* [Consent
|
|
tracking](https://element-hq.github.io/synapse/latest/consent_tracking.html)
|
|
* Authentication via
|
|
[OpenID](https://element-hq.github.io/synapse/latest/openid.html)
|
|
* Several bridges
|
|
|
|
|
|
# Synapse
|
|
|
|
We'll use Synapse, using the workers architecture to make it scalable, flexible and reusable.
|
|
|
|
Mind you: this an installation on Debian Linux (at least for now).
|
|
|
|
Start by installing the latest Synapse server, see the [upstream
|
|
documentation](https://element-hq.github.io/synapse/latest/setup/installation.html).
|
|
|
|
```
|
|
apt install -y lsb-release wget apt-transport-https build-essential python3-dev libffi-dev \
|
|
python3-pip python3-setuptools sqlite3 \
|
|
libssl-dev virtualenv libjpeg-dev libxslt1-dev libicu-dev
|
|
|
|
wget -O /usr/share/keyrings/matrix-org-archive-keyring.gpg https://packages.matrix.org/debian/matrix-org-archive-keyring.gpg
|
|
|
|
echo "deb [signed-by=/usr/share/keyrings/matrix-org-archive-keyring.gpg] https://packages.matrix.org/debian/ $(lsb_release -cs) main" |
|
|
tee /etc/apt/sources.list.d/matrix-org.list
|
|
|
|
apt update
|
|
apt install matrix-synapse-py3
|
|
```
|
|
|
|
This leaves a very basic configuration in `/etc/matrix-synapse/homeserver.yaml`
|
|
and two settings under `/etc/conf.d`. All other configuration items will also
|
|
be configured with yaml-files in this directory.
|
|
|
|
Configure the domain you with to use in `/etc/matrix-synapse/conf.d/server_name.yaml`.
|
|
What you configure here will also be the global part of your Matrix handles
|
|
(the part after the colon).
|
|
|
|
You now have a standard Matrix server that uses sqlite. You really don't want
|
|
to use this in production, so probably want to replace this with PostgreSQL.
|
|
|
|
|
|
Configuration is documented under `synapse`, "monolithic"
|
|
for the standard installation, and "workers" for the advanced configuration.
|
|
|
|
|
|
## Logging
|
|
|
|
Logging is configured in `log.yaml`. Some logging should go to systemd, the
|
|
more specific logging to Synapse's own logfile(s).
|
|
|
|
|
|
# TURN
|
|
|
|
We'll need a TURN server, and we'll use
|
|
[coturn](https://github.com/coturn/coturn) for that.
|
|
|
|
|
|
# Wiki
|
|
|
|
Of course there's a wiki in this repository.
|
|
|