---
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

A complete Matrix environment consists of many parts. Other than the Matrix
server itself (Synapse) there are all kinds of other things that we need:

* [Synapse](https://element-hq.github.io/synapse/latest/)
* Webclient ([Element Web](https://github.com/element-hq/element-web))
* [Element Call](https://github.com/element-hq/element-call) for audio/video
conferencing
* 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](https://matrix.org/ecosystem/bridges/)


# Synapse

This is the core component: the Matrix server itself.

Installation and configuration is documented under [synapse](synapse).


# nginx

We need a webserver for several things, see how to [configure nginx](nginx)
here.


# Element Call

Element Call is the new way to have audio and video conferences, both
one-on-one and with groups. This does not use Jitsi and keeps E2EE intact. See
how to [setup and configure it](element-call).


# Element Web

This is the fully-fledged web client, which is very [easy to set
up](element-call).


# TURN

We may need a TURN server, and we'll use
[coturn](coturn) for that.

It's apparently also possible to use the built-in TURN server in Livekit,
which we'll use if we use [Element Call](call). It's either/or, so make sure
you pick the right approach.

You could possibly use both coturn and LiveKit, if you insist on being able to
use both legacy and Element Call functionality. This is not documented here
yet.


# Draupnir

With Draupnir you can do moderation. It requires a few changes to both Synapse
and nginx, here's how to [install and configure Draupnir](draupnir).