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.
Further configuration is documented under synapse.
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.