synapse | ||
.gitignore | ||
README.md |
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
- Webclient
- Element Call
- Management with Synapse-Admin
- Moderation with Draupnir
- Consent tracking
- Authentication via OpenID
- 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.
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 for that.
Wiki
Of course there's a wiki in this repository.