aboutsummaryrefslogtreecommitdiff
path: root/dendrite/README
blob: e311f02df2095ebe670ab7fc4d746b8b590e659b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
Dendrite is a second-generation Matrix homeserver written in Go. It intends to
provide an efficient, reliable and scalable alternative to Synapse:

 - Efficient: A small memory footprint with better baseline performance than an
   out-of-the-box Synapse.
 - Reliable: Implements the Matrix specification as written, using the same
   test suite as Synapse as well as a brand new Go test suite.
 - Scalable: can run on multiple machines and eventually scale to massive
   homeserver deployments.

Dendrite is beta software, which means:

 - Dendrite is ready for early adopters. We recommend running Dendrite with a
   PostgreSQL database.
 - Dendrite has periodic releases. We intend to release new versions as we fix
   bugs and land significant features.
 - Dendrite supports database schema upgrades between releases. This means you
   should never lose your messages when upgrading Dendrite.

This does not mean:

 - Dendrite is bug-free. It has not yet been battle-tested in the real world
   and so will be error prone initially.
 - Dendrite is feature-complete. There may be client or federation APIs that
   are not implemented.
 - Dendrite is ready for massive homeserver deployments. There is no
   high-availability/clustering support.

# Configuration

A database must be created with UTF-8 encoding configured, or you will likely
run into problems with your Dendrite deployment.

```
sudo -u postgres createuser --pwprompt dendrite
sudo -u postgres createdb --owner=dendrite --encoding=UTF-8 dendrite
```

All Matrix homeservers require a signing private key, which will be used to
authenticate federation requests and events.

_Important Warning_ You must treat this key as if it is highly sensitive and
private, so never share it with anyone. No one should ever ask you for this key
for any reason, even to debug a problematic Dendrite server.

Make sure take a safe backup of this key. You will likely need it if you want
to reinstall Dendrite, or any other Matrix homeserver, on the same domain name
in the future. If you lose this key, you may have trouble joining federated
rooms.

```
sudo -u dendrite generate-keys -private-key /etc/dendrite/matrix_key.pem
```