--- 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. Further configuration is documented under [synapse](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](https://github.com/coturn/coturn) for that. # Wiki Of course there's a wiki in this repository.